Course Description

COS 561 is a graduate course in computer networking. Its goals are to understand the core concepts, as well as the state-of-the-art, of computer networking. Students will learn how to engage in networking research, and gain experience in critical reading and discussion of research papers. We will study a mix of classic papers and more recent work, and discuss them in small groups in the course precepts.

The course includes introductory lectures to related topics. These lectures are joint with COS 461, see lecture schedule and Ed page. The COS 561 course also includes a semester-long group project. The COS 561 students take the two midterm exams, but do not complete the COS 461 programming assignments.


  • Lecture: Tuesdays and Thursdays, 10:00am - 10:50am
  • Precepts:
  • Instructors:
  • Grading: midterm1 (15%), midterm2 (15%), precept participation (30%), project (40%)

Paper Discussion

A major component of this course is reading and discussing systems papers in the weekly precepts. We are only discussing one paper per week so we can discuss them in depth. You should closely read each paper and add comments and questions on Perusall before precept. Please plan to provide at least five comments or questions for each paper on Perusall ahead of the associated precept, and follow the comments from the other students and the course staff. Please come to precept prepared with several points that will substantially contribute to the group discussion. General tips on reading papers are here. Your precept participation grade will be determined based on attendance and, more importantly, substantial contributions to paper discussions both on Perusall and in precept. What we expect you to know and prepare before each discussion is here.

Precept attendance is required. That said, we understand that this is an unusual semester where students sometimes have little control over their personal circumstances. Do let the instructors know if you have to miss a precept, and we can accommodate the absence. If you are able to attend one of the other precepts on the same day, we can make those arrangements. Precepts will be conducted via Zoom, with breakout rooms for part of the time to enable a more lively discussion. We ask that students stay muted when not speaking. If you are comfortable having your video on, and have sufficient bandwidth, that would be great to enable discussion. We also ask that you have your Zoom name correspond to the name you are using for the course, so the course staff can recognize each student.

Paper Schedule


There will be two midterm exams based on lecture content that will be given jointly with COS 461. Information about the midterm exams will be posted on the schedule. You should also follow the COS 461 Ed page, so you can ask questions (and read answers) about lecture material and the exams. While much of the Ed discussion will concern the COS 461 assignments (which are not germane to the COS 561 students), but the rest of the material will be relevant.


The semester-long project in COS 561 is an systems-building project. Projects should be done in groups (either of size two or three, to be determined by the instructor after the course size finalized) and must involve some programming. All group students are expected to share equally in the implementation.

There is a significant departure this year in the scope of the project compared to most previous versions of COS 561. In particular, we expect most students to satisfy the group project by reimplementing and reproducing the results from a paper we read during the semester or on a like topic.

As in earlier years, students are also able to satisfy the project by performing novel research projects, but such projects must be closely related to the material and topics covered in the COS 461 lectures and COS 561 precepts.

Students uncertain as to the satisfiability of their project are urged to speak to instructor as soon as possible.


  • Team selection (9/28)
  • Project proposal (10/5)
  • Final project report (Dean’s Date of 12/8)

Project Proposal

There are two types of projects in this class: reproducing others’ research results, and novel research. Proposals should be submitted via a private note to the Instructor on Perusall.

Project Proposal: Reproducing Research

For reproducing research projects, students should write a note (a public one, so that your teammates can see/join in the discussion). There should be a few paragraphs that include the following information. Please tag these proposals as #proposal #reproduction.

  • Background
    • Name of paper
    • Brief summary of paper’s problem domain / challenge, goals, and technical approach
    • Summary of paper’s current implementation, evaluation strategy, and key results
  • Plan:
    • Proposed implementation (language, framework, etc.)
    • Evaluation strategy (testing platform/setup, simulated data/traces, etc.)
    • Key results trying to reproduce
    • Discussion of how you can compare your findings (quantitatively, qualitatively) with previously published results
    • New questions/settings trying to evaluate that are not addressed in the original paper

As the final plan mentions, it is important when reading a paper to ask what questions and/or settings are not included in an evaluation. For example, what happens if a workload shifts from being uniformly distributed to Zipfian? What if failures occur in a different fashion than evaluated? What if the data in a big data processing system has a different structure than evaluated (e.g., the "graph" that the data represents has a different edge distribution)? And so forth…

Project Proposal: Novel Research

For novel research projects, students should write a note (a public one, so that your teammates can see/join in the discussion). The should be a few paragraphs that include the following information. Please tag these proposals as #proposal #novel.

  • Background
    • What problem is research attempting to solve?
    • Why is the problem important?
    • How does this relate directly to topics or papers covered in class
  • Novelty
    • What is the current state-of-the-art in related work, and why are they insufficient?
    • What is your (novel) technical insight/approach to solving this problem
  • Plan
    • Proposed implementation (language, framework, etc.)
    • Key questions that evaluation will address
    • Evaluation strategy (testing platform/setup, simulated data/traces, etc.)
    • What does “success” look like? How do you quantify/compare results to alternative approaches / related work?

If students are concerned that their proposal project might not be sufficiently relevant to COS 561 to satisfy the topical criteria, please contact instructors earlier than later. Proposals not closely related to the topical matter may be rejected outright as not appropriate.

Project selection

The project proposal from above will be finalized. This may involve one or more back-and-forth between instructors and group (likely via Perusall).

Final report

The final report will be in the form of a paper written in Latex and submitted as a PDF file.

For reproduction projects, the report should have a particular focus and discussion on the evaluation (setup, comparative results, discussion of differences, and so forth).