CS-345 Distributed Systems
Winter 2005

[Communication | Announcements | Projects | Outline | Schedule| Materials]

Administrative Information


Fabián E. Bustamante
1890 Maple Ave, Room 334
+1 847 491-2745
Office Hours: By appointment only - email me!


Stefan Birrer
1890 Maple Ave, Room 246
+1 847 491-7060
Office Hours: TBD.

Course Description

Distributed systems consists of a collection of independent computers that appears to its users as a single coherent system. While their early development followed the emergence of high-speed local area computer networks at the beginning of 1970s, the recent availability of powerful and cheap microprocessors and pervasive connectivity has brought the topic to everyone's attention.
In this course we will discuss some of the basic principles behind distributed systems and review some of the main paradigms used to organized them.

Throughout the quarter, you will also design, build and evaluate an interesting distributed system that addresses issues, solves problems and exploits techniques from classroom discussions and readings. Based on this project, you will write a high-quality paper with which you will go through a peer-review process similar to what you would experience if submitting it to one of the major systems conferences.

The course follows a mixed lecture-style/seminar model for class instruction, with the students and the instructor sharing some of the teaching load. Every new topic is started with an introduction of the basic problems/ideas/solutions, followed by student presentations of seminal work and current research in the topic. Although there are no homework assignments, you will be responsible for reading the material before coming to class (to ensure lively discussion) and for submitting a one-page summary of the papers covered. In addition, there will be only one exam - a take-home final given in the last week of class.

Location and Time

Tuesdays and Thursdays - 2:00-3:20OM, place TBD.

In compliance with Section 504 of the 1973 Rehabilitation Act and the Americans with Disabilities 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.

Course Prerequisites

Communication Channels

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


Remember to check this regularly!



Course Organization

Paper Presentation

We will start each new section with an introduction of the basic problems/ideas/solutions (first lecture), followed by students presentations of seminal work and current research in the topic. To ensure lively discussions, you will be responsible for reading and preparing a short (typed) summary of one or two papers before each class. The summaries will be due by 11:59PM of the previous day so that the staff has time to read them and bring your comments into next class' discussion.

Each lecture will consist of a formal presentation, and is expected to go into considerable depth by focusing on some aspect of the material and treating it thoroughly. We'll be using slides that will be made available on the course site. A presentation will normally last between 30 and 40 minutes (presenters are required to meet with either me or the TA before class in order to discuss the slides). The lecture period will be followed by a broader discussion that myself or the TA will lead. During the discussion following each presentation, we'll try to understand the broader context and importance of each result. All students in the class are expected to participate.

Reading Papers

When reading papers it is normally useful to write down a summary of about a page. Your summary should include at least:

  1. Paper title and its author(s).
  2. Brief one-line summary.
  3. A paragraph of the most important ideas: perhaps a combination of their motivations, observations, interesting parts of the design, or clever parts of their implementation.
  4. A paragraph of the largest flaws; maybe an experiment was poorly designed or the main idea had a narrow scope or applicability. Being able to assess weaknesses as well as strengths is an important skill for this course and beyond.
  5. A last paragraph where you state the relevance of the ideas today, potential future research suggested by the article, etc.

You may find the following brochure useful: Efficient reading of papers in Science and Technology by Michael J. Hanson, 1990, revised 2000 Dylan McNamee.


Projects are a critical component of this course. Your goal is to design, build and evaluate interesting systems that address issues, solve problems and exploit techniques from classroom discussions and readings.

We will save the last part of our Thursdays' lectures to talk about your projects (brainstorming, reporting progress, discussing problems you have found, etc.).

You will write a high-quality paper on your project. The paper has to conform to the format and submission rules used by the Workshop on Hot Topics in Operating Systems. For tips on preparing the paper, refer to Levin & Redell, An evaluation of the ninth SOSP submissions -or- How (and how not) to write a good systems paper.
The paper will be done in four steps:

Papers will be review by 2-3 people, including one or two of your classmates (assigned by the instructor) and someone from the staff.

General Advice


There will be a take-home, final given in the last week of class.


Class Outline

Last modified: Fri Jul 17 08:21:12 CDT 2009