A survey of computer networks covering the end-to-end principle, multiplexing, virtualization, packet v. circuit switching, router design, network protocols, congestion control, internet routing architecture, network measurement, network management, and overlay networks. Survey of research papers from classic literature through contemporary research.
The course has five mandatory programming assignments, which are assigned approximately every 1-2 weeks. The assignments often build on each other; students must work individually on the first four assignments and may work in pairs for the fifth assignment. Groups of three or more are not permitted. Textbook reading for this course is required and is available free of charge in electronic format online.
The course has one take-home midterm exam, covering all material up to and including Lecture 12. There will be a comprehensive final exam that emphasizes material after Lecture 12.
This class is “flipped:” students are responsible for viewing lectures online in their own time before the associated class meeting, and should come to class meetings prepared to ask questions and work with their classmates on interactive exercises.
Prerequisites: Students must have taken COS 217 and one of COS 316, COS 333, COS 318, COS 418, or COS 432 prior to enrolling in this course. Exceptions require explicit permission from the instructor. The assignments in this class are in Go, C, and Python. You do not need to have experience with all of these languages before taking the course. However, you should be comfortable with learning new programming languages and finding resources on your own, independently as you attack problems. You will be exposed to new programming languages and environments.Students are expected to attend class meetings and precepts on time and be ready to participate fully. An excused absence will only be granted in the case of a religious observance, an ODS-approved accommodation, or—as verified by your residential college—a serious illness or an exceptional circumstance.