Course Description

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.

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.

  • Canvas web site: link.
  • Registrar's class web page: link.
  • Class meeting: Tuesday, 10:00–10:50 AM in Room 104 Computer Science.
  • Precepts:
    • 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%), Participation (5%)
  • 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 Dean’s consultation.
  • 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 regulations. 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) ( 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.

Class Materials

  • Larry L. Peterson and Bruce S. Davie, Computer Networks: A Systems Approach, available online.
  • Systems Approach Substack.