EECS-345 Distributed Systems
Winter 2008

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

Administrative Information


Fabián E. Bustamante
2145 Sheridan Road, Room 345
+1 847 491-2745
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.

Location and Time

Tuesdays and Thursdays - 2:00-3:20PM, place Ford SB-340.

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:


Remember to check this regularly!



Course Organization

The course is organized as a series of lectures, homework assignments, a single term-long project and a take-home exam. During lectures, we will cover introductory material during the first 50' and discuss a related seminal paper during the last 30'.

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.


There will be one single project on which you will work throughout the quarter. As part of this project you will develop a simple monitoring service for distributed systems including a visualization tool for it. Scalable system monitoring is a fundamental abstraction for large-scale distributed systems. It serves as basic building block for a variety of applications -- from financial services to online gaming. You will do your work in PlanetLab (, a global-scale testbed for distributed systems experimentation consisting of over 800 nodes.


There will be two kinds of homework assignments given throughout the class: paper reading assignments and textbook-style questions. You should have finished reading the assigned paper before coming to lecture. In addition, there will be a set of written homework assignments inteded to ensure that you keep up with the reading. Each assignment will consist of about 3 short questions, to be done alone and turned in by midnight on the due date (see course policies below).

Homework Out In Solution
1: From motivation to naming 02/04 02/12
2: From synchronization to security 03/06 03/13


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: Mon Dec 7 13:26:41 CST 2009