ECPE / COMP 177 - Computer Networking - Fall 2013
Office: Anderson Hall 205
Phone: (209) 946-2302
Email: jshafer at pacific dot edu
Office Hours: Wednesday 1-3pm, Thursday 2-4pm, Other times/days by appointment
|Class Hours:||Chambers 115, Tuesday/Thursday, 10-11:45am|
|Lab Hours:||Baun 214 (Cisco Networking Lab), Tuesday 2-4:50pm|
COMP 53 (Data Structures) and ECPE 170 (Computer Systems and Networks).
When enrolling in this course, you should already understand the basics of binary numbers, digital electronics, and serial and parallel digital communications. Further, you should be comfortable programming in a high-level language such as C, C++, or Java and understand the basics of loops, arrays, structures, pointers, and function calls.
No textbook is required.
http://pacific.rsmart.com (Sakai site only for gradebook)
Students study computer networks and the Internet. Topics include LAN and WAN architectures, packet switched networks and routing, the 7-layer OSI model and Internet protocol stack, socket programming and client/server systems as well as network security. The course includes a laboratory.
The vision for this course is: What do I, as an application programmer, need to understand about computer networks (including software and hardware both on your computer and elsewhere on the network) in order to write efficient, high-performing programs?
You will have many different opportunities to gain this knowledge through:
- Hands-on laboratory exercises using commercial routers and switches
- Programming projects where you implement networked applications in C and Python from scratch
- Student presentations
- Class lectures and discussions
After taking this course, you should be able to:
- Implement client and server network applications using standard Berkeley sockets in C (C99 langage standard)
- Implement client and server network applications using standard Berkeley sockets in Python (Python 3.2+ language standard)
- Implement network applications that interoperate with existing commercial or open-source applications, and interoperate with your classmates' applications
- Explain the difference between a server and a client.
- Explain the difference between the client/server and Peer-to-Peer models of operation
- Compare the operation of, and the services provided by, connection-oriented transport (TCP) and connectionless transport (UDP).
- Demonstrate a basic knowledge of binary, decimal, and hexadecimal number systems
- Demonstrate a working knowledge of big endian and little endian data representations, and their application in network protocols
- Convert a classless (CIDR) network address (e.g. 192.168.0.0/24) to its IP address/mask equivalent (e.g. 192.168.0.0 255.255.255.0) and vice versa.
- Describe and compare the basic operation of switches and routers.
- Describe the operation of DHCP (Dynamic Host Configuration Protocol).
- Describe the operation of DNS (Domain Name Service)
- Explain how DNS resolves a hostname when the corresponding IP address is known only by the corresponding authoritative name server.
- Describe the operation of ARP (Address Resolution Protocol).
- Describe the operation of an email communication channel, identifying when and why each email protocol (POP, SMTP, and IMAP) is used.
- Explain how the traceroute program works.
- Name and list the major functions of each layer of the 5-layer Internet protocol stack.
- Match header fields to their purpose and to the protocol (IP, TCP, UDP, Ethernet), that uses them.
- Describe the movement of a ping (both the request and reply) through a LAN, identifying how far each will get, given a network architecture and specific static routing and/or dynamic routing scenarios.
- Describe the operation of IPv6 and contrast its packet header format again IPv4
- Describe how SSL provides for secure communications over the Internet.
- Describe how firewalls, IDS, and other tools improve computer and network security.
With regards to the lab and the lab practical exam, you should be able to:
- Configure a Windows PC and a Linux PC to operate in a given LAN architecture.
- Configure a router to operate in a given LAN architecture, using static routing.
- Configure a router to operate in a given LAN architecture, using RIP to implement dynamic routing.
- Configure a switch to have multiple VLANs.
- Configure a firewall in a router.
- Identify the cable type (serial, straight-through, or cross-over) used in each link of a given network.
- Use Wireshark to monitor the operation of a computer or network.
- Use Nmap to scan a network to determine its open ports and the IP addresses it uses.
Regular class attendance is strongly encouraged. Students who miss class meetings are responsible for keeping up with the class. The course website and companion Sakai site will be used to assist in instruction. You are responsible for keeping up with lab/homework assignments, lecture notes, announcements, and other materials that may be posted on the course website or sent via email (at your email address posted in Sakai).
Grades for the course are assigned on the scale below:
Your course grade is based on the following items:
- In-Class Presentations (worth 8%)
- There will be two in-class presentations during the semester. Each is worth 4%.
- Programming Projects (worth 50%)
- There will be five programming projects throughout the semester. Each is worth 10%.
- Exams (worth 30%)
- There will be a midterm exam (worth 10%), a final exam (worth 10%), and a final "lab practical" exam demonstrating familiarity with lab concepts (worth 10%).
- Labs (worth 12%)
- Hands-on labs will be conducted throughout the semester using the network test-bed in Baun Hall. Each lab will be worth equal weight.
Please note that copies of student work may be retained by the instructor to assess how the learning objectives of the course are met.
The only acceptable excuses for missing an assignment due date, lab, or exam are serious illness, death in the immediate family or important professional activities. Illness or death in the family may require documentation. Excuses for professional activities must be approved by the instructor in advance.
Late assignments will be accepted with a 2% deduction in points for every day late. Late assignments will not be accepted more than 5 days past the deadline. You will have plenty of time to do assignments, but only if you start when they are assigned.
Honor Code Policy
The Honor Code at the University of the Pacific calls upon each student to exhibit a high degree of maturity, responsibility, and personal integrity. Students are expected to:
- Act honestly in all matters
- Actively encourage academic integrity
- Discourage any form of cheating or dishonesty by others
- Inform the instructor and appropriate university administrator if she or he has a reasonable and good faith belief and substantial evidence that a violation of the Academic Honesty Policy has occurred.
Violations will be referred to and investigated by the Office of Student Conduct and Community Standards. If a student is found responsible, it will be documented as part of her or his permanent academic record. A student may receive a range of penalties, including failure of an assignment, failure of the course, suspension, or dismissal from the University. The Academic Honesty Policy is located in Tiger Lore and online at http://www.pacific.edu/Campus-Life/Safety-and-Conduct/Student-Conduct/Tiger-Lore-Student-Handbook-.html
ECPE 177-specific Honor Code Policy
Engineering is generally a cooperative endeavor and collaborative learning can be a valuable experience for all involved. However, proper assessment (i.e., grading) requires that work be done by individuals. To balance these two requirements, the following policy will apply:
- Collaborative work on course assignments is encouraged. This includes working together on planning solution strategies and helping each other to debug programs.
- Collaboration must stop short of someone else writing your assignment. You may not directly copy the work of another student. You also may not copy the work of another student, and then modify it so that it does not look the same as the original author's work. It is your responsibility to ensure that the work you submit is an honest representation of your own understanding of the material.
Marginal cases will be resolved by oral examination of the student(s) involved. If they each understand the material in the assignment, it will be considered honest collaboration. If they do not, then it will be considered academic dishonesty.
In many cases, it may be possible to identify reusable source code from textbooks, web sites or other resources that can help you with assignments. You are permitted to use such references provided that:
- The amount of code reused does not exceed 25% of the total assignment length, and
- In the source code comments, you clearly identify any code that you did not write, state where it came from, and to what extent you modified it.
You are responsible for understanding the theory behind all algorithms or source code used, regardless of their source.
Accommodations for Students with Disabilities
If you are a student with a disability who requires accommodations, please contact the Director of the Office of Services for Students with Disabilities (SSD) for information on how to obtain an Accommodations Request Letter.
3-Step Accommodation Process:
- Student meets with the SSD Director and provides documentation and completes registration forms.
- Student requests accommodation(s) each semester by completing the Request for Accommodations Form.
- Student arranges to meet with his/her professors to discuss the accommodation(s) and to sign the Accommodation Request Letter
To ensure timeliness of services, it is preferable that you obtain the accommodation letter(s) from the Office of SSD during the first week of class. After the instructor receives the accommodation letter, please schedule a meeting with the instructor during office hours or some other mutually convenient time to arrange the accommodation(s).
The University of the Pacific does not discriminate in the administration of any of its educational programs, admissions, scholarships, loans, athletics, or other University activities or programs on the basis of race, color, national and ethnic origin, handicap, sexual orientation or preference, sex or age.