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 10. There will be
a comprehensive final exam that
emphasizes the class material appearing after the midterm.
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.
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
- Canvas web site: link.
- Registrar's class web page: link.
- Class meeting: Tuesday,
10:00–10:50 AM in Room 104 Computer Science.
- P01 (TA Ryan): Thursday 12:30–1:20 PM at Computer Science 104.
- P02 (TA Murali): Friday 10:00–10:50 AM at Friend 109.
- P03 (TA Ryan): Thursday 7:30–8:20 PM at Computer Science 104
- Course Staff:
- Instructor: Kyle Jamieson
- Preceptors: Ryan Torok, Murali Ramanujam
- Course Assistants: TBA
- Office Hours:
- Instructor: Monday 9:00–10:00 AM (book).
- Ryan: Tuesday 1:00–2:00 PM (Friend 010)
- Murali: Wednesday 1:30–2:30 PM (Friend 010 on assignment deadline weeks, Zoom otherwise)
- Edward: Thursday 7:30–9:30 PM (Friend 010)
- Hetvi: Thursday 11 AM–12 PM (Friend 010)
- Additional Office Hours as announced on Ed Discussions
- Grading: Midterm Exam (20%), Take Home Final Exam (25%),
Programming Assignments (50% in total, each worth 10%),
- Deadlines: All coursework and exam deadlines are hard.
No extensions are granted
without an academic accommodation registered with the Office of
Disability Services, medically-documented illness, or a College
- Intellectual Honesty Policy: Intellectual honesty
is vital to an academic community and for the fair evaluation
of your work. All work submitted in this course must be your
own, completed in accordance with the University’s academic
You may not engage in unauthorized collaboration
or make use of ChatGPT or other AI composition software.
- Academic Accommodations: Students requesting
academic accommodations must register with the Office of
Disability Services (ODS) (ods@Princeton.edu or 258-8840) for
disability verification and determination of eligibility for
reasonable academic accommodations. If you are approved for
accommodations and would like to discuss their implementation,
please make an appointment to meet with the instructor to
maintain confidentiality when addressing your needs. Requests
to implement testing accommodations for this course should be
made at least two weeks in advance, or as soon as possible for
newly approved students, to make appropriate arrangements. No
accommodations may be given without authorization from ODS or
without reasonable notice. For further information pertaining
to programming assignments please refer to the assignments page.
- Larry L. Peterson and Bruce S. Davie, Computer Networks: A
Systems Approach, available online.
- Systems Approach Substack.