CS 497 Distributed Systems in Challenging Environments — Winter 2022

News and InformationOverviewCalendarReading, Writing, PresentingProjects


Remember to check this (and Canvas) regularly!


Fabián E. Bustamante
Seely Mudd, 3rd Floor
+1 847 491-2745


Lectures: Mondays and Wednesdays 3:30-4:50PM
Tech Institute Lecture Room 4
Professor Office Hours: by appointment


This seminar reviews interesting ideas and ongoing projects that are pushing distributed systems into new and challenging domains. The class is structured as a traditional seminar with readings, class discussion and a quarter-long research project.


CS 340 “Intro to Computer Networking” or CS 345 “Distributed Systems”.

If you have taken similar courses somewhere else or have not taken any of these courses, but would like to register for this seminar, please contact me.


 In compliance with Section 504 of the 1973 Rehabilitation Act and the Americans withDisabilities Act, Northwestern University is committed to providing equal access to all programming. Students with disabilities seeking accommodations are encouraged to contact the office of Services for Students with Disabilities (SSD) at +1 847 467-5530 or ssd@northwestern.edu. SSD is located in the basement of Scott Hall. Additionally, I am available to discuss disability-related needs during office hours or by appointment.

This class will review cool ideas and ongoing projects that are pushing distributed systems into new and challenging domains. This year the course will focus on the Internet’s own challenging environment, from connectivity and censorship to natural disasters and environmental impact.

The class consists of two major components: reading and reviewing papers and doing a research project on your own. For the research part of the course, you will team up to work on a research project throughout the quarter and either reproduce a result from a networking/distributed systems paper or work on an original research project in the area.


  • Connecting everyone and remaining connected
  • A changing, sometimes disappearing network
  • Centralization, from infrastructure to services and applications
  • Privacy, security and censorship
  • Environmental impact and natural disasters


The course is organized as a series of paper discussions and a single term-long project.

Most class meetings will be centered around one or two paper presentations and discussions. You should read each paper before coming to class and be prepared to discuss it.

I will post a question in Canvas about each paper 24hr before class. Your answer need only be long enough to demonstrate that you understand the paper. I will check your answers to make sure they make sense and they will count for part of the paper discussion grade. Please make sure to post your answers as private!

The class will run as a mini-conference with you as the Program Committee member. We will use the papers included in the schedule as our set of submissions. Each of you will write reviews for 3-4 of them. We will discuss the papers online and, a subset of them, in a single PC meeting (near the end of the quarter) to decide what paper “should be accepted” for publication.


There are a number of communication channels set up for this class:

  • We will use the course web site and Canvas to post announcements related to the course. You should check this regularly for schedule changes, clarifications and corrections to assignments, and other course-related announcements.
  • There is always email for questions that would be inappropriate to post on the newsgroup/discussion-board. When using email to contact the staff please start your subject line with “DSCE: helpful-comment” to ensure a prompt response.


I use a criterion-referenced method to assign your grade; in other words, your grade will be based on how well you do relative to predetermined performance levels, instead of in comparison with the rest of the class. Thus, if a test has 100 possible points, anyone with a score of 90 or greater will get an A, those with scores of 80 or greater will get a B, those with scores of 70 or greater will get a C, and so on. Notice that this means that if everyone works hard and gets >90, everyone gets an A.

Total scores (between 0 and 100) will be determined, roughly, as follows:

  • Paper discussion participation (and questions) 15%
  • Paper review and PC meeting participation 25%
  • Paper presentation 20%
  • Project 40%

Most weeks have three papers and at least one of them short (~6 pages).

Week Date Topics and Reading Due
01/03 Course introduction | Reading papers and writing reviews
Presenter: Fabián
Slides [pdf]
01/05 Connecting everyone
Form a group (01/07)
01/10 Network and systems reliability
01/17 MLK Day
01/19 The disappearing network Project proposals (01/21)
01/24 Accessing content
01/26 Infrastructure centralization
01/31 Service centralization
02/02 Project midterm presentations
02/7 Project midterm presentations
02/09 Radical changes
02/14 Security
02/16 Crime
02/21 Privacy
02/23 Censorship
02/28 Environmental impact
03/02 Large-scale events
03/07 Large-scale events 2
03/09 PC Meeting
Finals Week 03/15 Project Presentations



We will be reading two or more papers per week. The papers will be first presented to the group by one or more students and then discussed in a round-table manner.

To ensure lively discussions, you will be responsible for reading the assigned papers before each class. I will post a question about each paper 24hr before class. Your answer need only be long enough to demonstrate that you understand the paper; a paragraph should be enough. I will check your answers to make sure they make sense and they will count for part of the paper discussion grade.

Today, nearly all the papers have a video of the author’s conference presentation (I have added links to each in the calendar). Take advantage of this and watch it before attempting to read the paper.

You may find the following documents useful:


At one time or another, every researcher is asked to review papers submitted for publication at a conference or journal; a process known as peer review. We will work on this skill by running a mini-conference DSCE 2022.

All class members will be part of the “Programm Committee” for our mini-conference and we will consider all papers listed in our schedule as our submissions.

Each paper will receive three reviews. We will discuss all papers in a PC meeting (towards the end of the quarter) to decide what paper “should be accepted” for publication. Each paper discussion will be led by one of the reviewers (assigned by the PC chair).

You may find the following documents useful:

To enter your reviews go to WINE 2019 (Access is restricted to Northwestern).


Most class meetings will be centered around a paper presentation and discussion. Each student will be responsible for presenting one or two of the papers in the schedule (so, if you haven’t yet, please email me three ranked options).

Giving a good presentation is hard work. Please make sure to allocate enough time to prepare for yours.

I will make sure the papers you have to present are a subsets of those in your reviewing pile. You are required to present your review before the day of your paper presentation; think of it as part of your preparation!

There are some good pointers around that you may want to look at.

In general, your presentation should include the following key sections:

  • Introduction: Context and motivation for the work (why they did this?). Any background that you think the audience needs to understand the paper.
  • Methods: The methods that were used (how they did it?)
  • Results: The results obtained; the work main contributions (what did they find?)
  • Discussion: An interpretation of those results (what does this mean?)
  • Critique and class discussion: Your job as presenter is to not only present the paper, but to primarily lead class discussion of its strengths, weaknesses, and broader implications. To help focus the class discussion, end your presentation with a list of about three major questions/issues worthy of further discussion.
Beyond this, here is an incomplete list of dos and don’ts:

  • Don’t try to present the whole work; there simply is not enough time. Distill the papers down to their key ideas and results.
  • Think of your primary audience, your classmates, to decide what/what not to expand on.
  • Use examples to motivate the work and approach, and illustrate the key points.
  • Don’t just accept all of the statements in these papers at face value. Do you agree with the authors? Do their results support their conclusions?
  • Don’t put too much on a slide – prune and then prune again.
  • Don’t put too much on a slide – just one figure/graph per slide!
  • Don’t put too much on a slide – don’t waste the header/slide title!
  • Careful with use of animation – not for show, just for clarity
  • Seriously consider dropping the typical “overview/roadmap” slide
  • Saying enough without saying too much – enough depth to convey the main ideas, not so much as to overwhelm your audience


There will be one single project on which you will work throughout the quarter – this is a critical component of the course. Your goal is to propose and tackle a research problem in networks and distributed systems. You may choose to either reproduce a result from a networking paper or take on an original research project.


An original project can be a proof of concept of a new networked system, a new measurement effort, or an extension of existing work. Basically, any project that you could realistically extend to a conference-quality paper.

This part of the class is intentionally underspecified and you should select a project that you have the time and experience to accomplish. I will set up a time for brainstorming ideas with you and your team, but of course, great starting points are the papers you are reading for the class. Anything in future directions, open problems or things they have not tried? Could you remove some of the assumptions made? Could you change the context (e.g., CDN replica selection from wired to wireless networks)?


A reproduction project is slightly different. Obviously, you should first select a paper, either a classic or a recent one. Many of ACM conferences are now including badges for reproducibility (“Artifacts Available”, “Resutls Rerproduced”, “Results Replicated”, etc) which may mean a bit of an easier project.

Some questions you may want to tackle for a reproduction projects: Does the primary result in the paper hold up?, Can you generate a plot or graph that looks the same as one of the main figures in the original paper, and explain where it came from?, If you were able to reproduce the original result, could you change/extend/improve the work?.

This is borrowed from an excellent course initially started by Nick McKeown at Stanford U. You can look at some recent work done in the Stanford class to get an idea of how these projects look like. Here is one I found interesting on QUIC.


Projects must be written up in a term paper (due during finals week) and teams will present their results at the end of the course in a systems class mini-conference. Projects ideas will be suggested by the instructor, but you are strongly encouraged to come up with your own ideas. Based on the topic of your project, you will be assigned a project leader to help you through the quarter (you will meet weekly with them).

This is the schedule of meetings and deliverables (this is mainly to ensure steady progress):

  • Form a group: First week.
  • Project meeting with instructor: Second week.
  • Project proposal posted in Canvas (you should read the CSP project startup or look at the Questions that any project proposal should answer — the Heilmeier “Catechism”):
    Third week
  • Midterm presentation and report. The presentation should be 4 slides long, including (1) Project name and team members, (2) Revised statement of project goals and list of new/interesting concepts to be investigated, (3) List of issues addressed and pending, and (4) Updated project milestones, highlighting accomplishments to date, and schedule for the rest of the quarter: 
    Fifth week
  • Final presentation: Last class
  • Final report: Monday of finals week.

The final report has to conform to the format used by the Workshop on Hot Topics in Networks. Reports should be no longer than 6 pages (you can use appendices or a webpage to document details). The following structure is suggested:

  • Abstract: What did you do, why is important and what are your high-level results?
  • Problem statement: What is the problem you tried to solve?
  • Prior work: How others have addressed the problem before and why that was not enough?
  • Research approach: What was your approach to solving the problem? What did you design, build? What was your experimental methodology?
  • Results: What were your results? How did you evaluate your work? What were your figures of merit?
  • Lessons learned and future work: If you knew what you know now, what would you do differently? What questions are left for future work?
  • Summary and conclusions.