CS 640, Spring 2014


Course Description

Introduction to Networking focuses on common paradigms and protocols used in present day data communication. Through lectures, in-class activities, and hands-on projects, you will learn the theory and application of (1) medium access control, congestion control, flow control, and reliable transmission, (2) numerical and alternative addressing, (3) intra- and inter-domain routing, (4) widely used protocols such as Ethernet, IP, TCP, UDP, and HTTP, (5) security threats and common defensive techniques, and (6) specialized networks such as data centers, content delivery networks, and peer-to-peer networks, and software-defined networks.

Course Website



Aaron Gember
Email: agember {at} cs.wisc.edu
Office: Computer Sciences 7376
Office Hours: Tuesdays 12:15pm-1:15pm, Thursdays 3pm-4pm 4pm-5pm, or by appointment

Teaching Assistant

Zuyu Zhang
Email: zuyu {at} cs.wisc.edu
Office Hours: Wednesdays 1:20pm-2:20pm in Computer Sciences 1350 (mumble lab)

Class Meetings

Tuesdays and Thursdays 11:00am - 12:15pm in Computer Sciences 1221

Class meetings will consist of lecture, discussion, small group activities, and occasional scheduled quizzes (see Tentative Schedule below). You are expected to actively participate in class by responding to questions posed during lecture, working with peers to complete activities, and respecting and supporting your fellow classmates. In exchange, I will make class engaging, fun, and worth your while.


You should have taken CS 537 prior to this course, or have talked with me about enrolling without this prerequisite.

Required Materials

Computer Networks: A Systems Approach, Fifth Edition
Larry Peterson and Bruce Davie
Morgan Kauffmann, 2011, ISBN: 978-0123850591

The textbook is intended to serve as a complement to lectures, discussions, and in-class activities. You should read relevant sections before class to be able to fully participate in class and better understand the material. It may also be helpful for you to review relevant sections of the textbook when studying for quizzes and the final exam.

Learning Objectives

By the end of the course you should be able to:


Your grade in this course will be based on three types of assessments, with the following breakdown:

Projects (4) 50%120 points
Quizzes (6, excludes lowest score) 25%60 points
Final Exam 25%60 points
Total 100% 240 points

Grades will be posted on Learn@UW (https://learnuw.wisc.edu).


Projects will consist of both implementation and experimentation related to lectures and in-class activities. There will be 4 projects throughout the semester (see Tentative Schedule below). Each project will be due 2-3 weeks after it is assigned. Prior experience has shown that students who begin projects shortly after they are assigned are more likely to succeed. Projects submitted after the day and time they are are due will be penalized 5 points per day, unless you have made prior arrangements with me due to extenuating circumstances.

Projects must be completed in groups of 2-3 students. You should pick your own group members, but you may use the Piazza site for the course (http://piazza.com/wisc/secondsemester2014/cs640) to help find group members. You have the option of switching group members between projects. Completing a project individually requires my prior approval.

All code and results you submit must be the original work of your group. Cheating and plagiarism will not be tolerated and will be dealt with in accordance with University of Wisconsin policies and procedures (http://students.wisc.edu/doso/acadintegrity.html).


Scheduled quizzes will be given towards the end of class meetings approximately every 2 weeks (see Tentative Schedule below). Each quiz will consist of several short answer questions that focus on material covered in class and the textbook during the preceding 2-3 weeks. You should use quizzes to gauge your learning progress and identify areas requiring further study.

Your lowest quiz grade will be dropped at the end of the semester. Correspondingly, no makeup quizzes will be given.

Final Exam

The final exam will be cumulative. It is scheduled for Friday, May 16 at 10:05am; room information will be announced towards the end of the semester.


If you have questions on projects or material covered in class or the textbook, you should post your questions on the Piazza site for the course: http://piazza.com/wisc/secondsemester2014/cs640. When asking or answering project-related questions, do not post code or algorithms you or your group members have written.

Missing Class

You are expected to attend class, but sometimes life gets in the way. If you miss class, you should be sure to (1) read the relevant sections of the textbook, (2) ask a classmate for a copy of his/her notes, and (3) talk to me in-person to ask questions about things from class which are unclear. As noted above, no makeup quizzes will be given since one quiz score will be dropped.

Special Learning Accommodations

If you require special learning accommodations, please contact me in-person or via email within the first 2 weeks of the course so appropriate arrangements can be made. All information you share will remain confidential.

Tentative Schedule

Below is a tentative schedule for the semester; the detailed, up-to-date schedule is posted at http://cs.wisc.edu/~agember/cs640/s14/schedule. Quizzes will be given towards the end of class on the day they are listed. Projects will be due at 11:59pm on the day they are listed.

1Networking and Internet HistoryLife of a Packet
2Physical LayerEthernet; Quiz 1
4InternetworkingNumerical Addressing; Quiz 2
5Assigning and Resolving Addresses; Project 1 DueIntra-domain Routing
6Intra-domain RoutingInter-domain Routing; Quiz 3
7Inter-domain RoutingIP Potpourri
8Transport ProtocolsUDP; Quiz 4; Project 2 Due
9Spring Break
10Introduction to TCPTCP Flow Control
11TCP Congestion ControlTCP Potpourri; Quiz 5
12Alternative AddressingSDN Motivation
13SDN Fundamentals; Project 3 DueSDN Enhancements; Quiz 6
14Application ProtocolsContent Delivery
15Protecting DataProtecting Networks; Quiz 7
16Specialized NetworksWrap Up; Project 4 Due
17Final Exam (Friday, May 16 at 10:05am)