EECS-345 Distributed Systems
Winter 2010

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


Remember to check this regularly!

Administrative Information


Fabián E. Bustamante
2145 Sheridan Road, Room 477
+1 847 491-2745
Office Hours: TBD



Course Description

Distributed systems are collections of networked computers that coordinate their actions through message exchanges. 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.

Location and Time

Mondays and Wednesdays - 3:30-4:50PM, Tech M128.

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 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:



Very Useful

Course Organization

The course is organized as a series of lecture and paper discussions, a small project, a term research proposal and a take home exam.

Reading Papers

We will be reading one paper per meeting; you should have read the assigned paper before coming to lecture. The paper will be first presented to the group by a student and then discussed in a round-table manner. A student assigned to play devil's advocate will help jumpstart the conversation. To ensure lively discussions, you will be responsible for reading and preparing a short (typed) summary of the assigned paper before each class. 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.

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.

Project and Research Proposal

This year we will follow a different model for the project component of the course. During the first half of the quarter you will work, in teams of two, on a small, focused project (e.g. setup and test your own DNS server). The project will help make some of our classrooms discussions a bit more concrete and allow you to gain some practical experience.

For this year project you are asked to develop a functional HTTP/1.0 server. The project will teach you the basics of distributed programming, client/server structures, and some of the many issues in building high performance servers. Each group will be evaluated on the basis of a demo to me. Please see the announcement section of the course web page for instructions on how to sign up for your demos.

Here is the handout for the project: A Simple Web Server - Due date: Feb. 10.

During the second half of the quarter, equipped with a better understanding of the interesting, open questions in the field, you will put together a research proposal (following John Wilkes' CSP guideline). The proposal document will be your only deliverable for this part; what you do with the proposal after the quarter is over is up to you. You could see it as a simply exercise on proposal writing or try pursue it through a EECS 395/495.


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


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:


Last modified: Fri Mar 12 09:39:28 CST 2010