CS 3516: Computer Networks
Time: B-Term, Tuesdays and Fridays, 2:00pm to 3:50pm
Course Catalog Description
This course provides a broad view of computer networks. The course exposes students to all seven layers of OSI Reference Model while providing an introduction into newer topics such as wireless networking and Internet traffic concerns. The objective is to focus on an understanding of fundamental concepts of modern computer network architecture from a design and performance perspective. Topics covered include: physical layer considerations, network protocols, wide area networks, local area networks, wireless networks, switches and routing, congestion, Internet traffic and network security. Students will be expected to do systems/network programming and make use of simulation and measurement tools to gain an appreciation of current network design and performance issues. This course is also highly recommended for RBE and IMGD majors. Recommended background: CS 2303 or CS 2301.
Teaching Assistant: Evan Frenn
Email: ejfrenn at cs.wpi.edu
Office: Fuller Labs A22
Office Hours: Mondays, 2:30pm - 3:30pm; Tuesdays, 11:30am - 1:30pm; Wednesdays, 1:30pm - 3:30pm; Fridays, 12:30pm - 1:30pm
Teaching Assistant: Curtis Taylor
Email: crtaylor at cs.wpi.edu
Office: Fuller Labs A22
Office Hours: Mondays, 9am - 11am and 1pm - 2pm; Wednesdays, 10am - 11am; Thursday, 9am - 11am
Lecture Schedule and Readings
This schedule is subject to change. Any changes will be announced in class with at least one week's advance notice, when possible. All readings are out of Kurose and Ross unless otherwise noted. All readings are due before class on the date indicated. Students are expected to have read the readings prior to arriving for class. Note that a * indicates a difference between the 5th and 6th editions.
|Class Number||Date||Reading Required||Topic|
|1||Oct. 23||1.1, 1.2, 1.7||Objectives, Course Procedures, Introduction, Internet History|
|Oct. 23||Project 0 Assigned|
|Oct. 23||Project 1 Assigned|
|2||Oct. 26||1.5, 2.7*||OSI Architecture, Sockets|
|3||Oct. 30||1.3||Architecture, Network Switching|
|Oct. 30||Project 0 Due|
|Oct. 30||Project 1 Checkpoint|
|4||Nov. 2||1.4, 2.1||Performance Measures, Intro. to Physical Layer|
|5||Nov. 6||2.2||Physical and Application Layer, HTTP|
|Nov. 6||Project 1 Due|
|Nov. 6||Project 2 Assigned|
|6||Nov. 9||2.3, 2.4, 2.5||DNS, Review|
|7||Nov. 13||1.6*||Intro. to Security|
|Nov. 13||Project 2 Checkpoint|
|8||Nov. 16||3.1-3.4||Transport Layer, UDP, TCP|
|9||Nov. 20||Reliable Transport, Sliding Windows|
|Nov. 20||Project 2 Due|
|Nov. 20||Project 3 Assigned|
|Nov. 23||Thanksgiving Break - No Class|
|10||Nov. 27||3.6, 3.7||TCP Congestion Control|
|11||Nov. 30||4.4-4.7||Network Layer, Routing|
|Nov. 30||Project 3 Checkpoint|
|12||Dec. 4||4.1-4.3||Ethernet, ARP|
|13||Dec. 7||5.1-5.6||Wireless Networks, Review|
|Dec. 9||Project 3 Due|
|14||Dec. 11||6.1-6.4||Miscellaneous Topics|
Noteworthy differences between 5th and 6th edition in the readings:
- Chapter 1.6: Sixth edition does not discuss man-in-the-middle attacks whereas the fifth edition does.
- Chapter 2.7: Socket language change: Java (fifth edition) to Python (sixth edition). Sixth edition describes UDP first whereas fifth edition puts UDP in Chapter 2.8.
Course Policies and Procedures
The following represent the official policies and procedures for the course. Please review this information and discuss any questions with the professor as soon as possible.
Required: Computer Networks, A Top-Down Approach, by Kurose
and Ross. Both the Fifth and Sixth editions are acceptable.
Optional: Beej's Guide to Network Programming using Internet Sockets
Readings will be assigned from the required textbook. Students will be assessed on their readings at the beginning of each class. To succeed, students will need to have the book. This text will also be used in CS 4516 (Advanced Computer Networks) in C-Term, 2013.
Class discussion, class hand-outs, emails to the student's WPI email account, and the course Web pages are avenues for official course communication. Students are responsible for any information distributed through any of these venues.
Students must check their email daily. The class email list is automatically created based on official registration information. The instructor and TAs will use this mailing list to send information to the class.
Questions about the course should be sent to cs3516-staff at cs.wpi.edu. The teaching staff will monitor this list and answer detailed questions. The instructor will handle all policy issues.
The MyWPI system used university-wide does not meet the course's needs. Instead, we will be using InstructAssist, a homebrew course management tool. This system will be used for posting grades, submitting projects, obtaining slides, scheduling project demonstrations, and posting partner evaluations. It is available at https://ia.wpi.edu/cs3516/. InstructAssist uses a WPI SSL certificate for authenticity and encryption to protect student records.
The CS Department Documentation Format should be considered when programming. In general, code must be clean and organized. It must be appropriately commented as well. During project demonstrations, students may be graded on their ability to accurately describe what a code segment does, so students are well-advised to aim for clairity in their programming.
Submissions must include a README file and a Makefile for compilation. All programs must compile and execute on the provided virtual machines. Programs that do not compile, or programs lacking commenting, will not be graded and will be assigned a score of 0.
Students with a strong computer science background develop the ability to quickly pick up a new programming language as needed. This provides them the flexibility to adapt to changing work requirements and the ability to recognize the most efficient tool for the job. Students pick up these abilities through exposure to different programming languages, especially those that serve as the model for future languages.
In this course, we will be using C and/or C++. These languages are the basis of many common operating systems and network programs, with operating system APIs designed with these languages in mind. While most other languages have a networking component to them, they abstract the details and prevent students from realizing what is happening "under the covers."
Students without experience in these languages will have to develop it concurrently with learning network programming. This can be challenging, but is a good way to gain exposure to the language. The C Programming Language, by Kernighan and Ritchie, (ISBN: 0-13-110362-8) is the de facto standard guide to programming in C and provides a good reference in addition to the textbook.
Course Participation and Professionalism
During lectures, students are to be focused on the course. Students should not use materials or electronic devices that would inhibit their attention to the course lecture and discussion. Laptops may only be used for note-taking purposes; transmission capabilities on these devices must be disabled and only appropriate note-taking application may be used in class. Mobile devices, such as phones or PDAs, are not to be used in class. Significant penalities may be assessed for repeated infractions.
Students must treat each other and the teaching staff with respect at all times. Disagreement, debates, and criticism of ideas are healthy aspects of academic environments; however, students should avoid demeaning language or comments which can be taken personally. The ability to handle conflict professionally and work with a variety of people is an acquired skill, yet is increasingly important in technical careers.
Programming projects may be submitted late, but with significant penalties. Programs that are late by a certain amount of time, denoted as t, will incur the following penalties:
|0 minutes < t ≤ 1 day||10% deduction from maximum grade before the rest of the grading begins|
|1 day < t ≤ 3 days||30% deduction from maximum grade before the rest of the grading begins|
|3 days < t ≤ 5 days||50% deduction from maximum grade before the rest of the grading begins|
|5 days < t||no credit will be awarded|
I exclude weekend days (Saturday and Sunday) and university-recognized breaks from the count of late days. However, programs are due at the exact time specified.
Any programs submitted after 4pm on Thursday, December 13, 2012 will not be graded.
The course programming assignments and in-class quizzes form the basis for 80% of the course grade. The remaining 20% of the course grade will be attributed to in class participation and professionalism associated with the course. Details on each of these components are as follows:
- Quizzes (40%): The will be a 10-15 minute quiz at the
beginning of each class (except for the first day). The two lowest
quiz scores will automatically be dropped, allowing for absences,
illnesses, or simply "bad days". The quizzes will
be short, typically only two questions long. The first question will
cover material from reading due before class and will be more
factual (and simplistic) in nature. The second question will be more
application-oriented, requiring students to apply
concepts from prior class discussions to new
- Projects (40%): There will be multiple programming
projects in the course to allow students to apply concepts. These
projects may be done individually or in pairs unless otherwise
indicated. Projects may have different point values and projects may
have "checkpoint" deliverables in which students must show
substantial progress towards completing the project.
- Participation and Professionalism (20%): Students are
expected to be engaged in class, answer questions from the
instructor and asking questions when needed. Students must regularly
attend classes and show up to demonstration times they
schedule. Disregard for course policies or unprofessional conduct
with students or the teaching staff will be penalized. This grading
component is a signed value, allowing students to earn a negative
score for abusive behavior.
If you need course adaptations or accommodations because of a disability, or if you have medical information that you need to share with the instructor, please make an appointment with the instructor as soon as possible. If you have not already done so, students with disabilities who believe that they may need accommodations in this class are encouraged to contact the Office of Disability Services (ODS) as soon as possible to ensure that such accommodations are implemented in a timely fashion. This office is located in the West St. House (157 West St) and their phone number is 508.831.4908.
The WPI Academic Honesty Policy describes types of academic dishonesty and requirements in documentation. We take these matters seriously. In the case of academic dishonesty, the instructor is required to report the incident to the Dean of Student Affairs. The instructor's penalty for academic dishonesty is to assign a NR grade for the course.