CS-495 Distributed Systems
1890 Maple Ave, Room 334
Office Hours: TBD.
1890 Maple Ave, Room 246
+1 847 491-7060
Office Hours: TBD.
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.
this course we will discuss some of the basic principles behind
distributed systems and review some of the main paradigms used to
As it will be expected from our department, this is a
learn-by-doing kind of course. A major component of this class
will be a large project, done as a team, that will address some
interesting distributed systems issues.
Location and Time
Tuesdays and Thursdays - 2:00-3:20.
Lectures will be held in 1890 Maple, Room 342.
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 email@example.com. SSD
is located in the basement of Scott Hall. Additionally, I am
available to discuss disability-related needs during office hours
or by appointment.
- CS-343 Operating Systems or equivalent undergraduate OS course.
- CS-340 Introduction to Networking or equivalent undergraduate networking course.
There will be a number of communication channels set up for
- We will use the course web site (
to post announcements related to the course. You should check
this regularly for schedule changes, clarifications and
corrections to assignments, and other course-related
- There is a newsgroup cs.495-ds,
served off news.cs.northwestern.edu) intended to foster
communication outside the classroom.
- Finally, there will be an email alias ( cs-495-ds@cs)
for the staff that you should use for questions that would be
inappropriate to post on the newsgroup/discussion-board (source
code being a good example).
- I have created a newsgroup (cs.495-ds) so that we can continue our
- I have placed selected reviews for each paper in the outline page.
- There is a pointer to the book site in "material".
- Distributed Systems: Principles and Paradigms.,
Andrew S. Tanenbaum and Maarten van Steen, Prentice Hall, Upper
Saddle River, NJ, 2002. (``DSP2'' from now on.)
- Papers: A set of papers that
will be made available.
- Project: 40%
- Class participation: 10%
- In class presentation: 15%
- Final, take-home, exam: 35%
There will be only one, take-home, final exam for this
We will start each new section with an introduction of the
basic problems/ideas/solutions, followed by students presentations
of at least two papers on 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 those papers
before each class.
When reading papers it is normally useful to write down a
summary of about a page. Your summary should include at least:
- Paper title and its author(s).
- Brief one-line summary.
- A paragraph of the most important ideas: perhaps a
combination of their motivations, observations,
interesting parts of the design, or clever parts of their
- 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.
- 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.
We have changed the organization of the class based on the
experience collected during the first couple of weeks. In order to
ensure enough time for our usual interesting discussions, from now
- We will hold the lecture on Tuesdays together with one
paper presentation. Thursdays will be solely dedicated to paper
presentations and discussion.
- We will impose a hard limit of 10' on the presentations
themselves and allow 5' for clarification questions.
- We will have one moderator per topic (you will take turns
to fill the position). The moderator will be responsible
- Sending the instructor a list of 3 questions/issues she/he
feels will be interesting for our discussion.
- Getting the discussion started and guiding it.
- Keeping the discussion focused and ensuring everybody is
given a chance to contribute.
- Summarizing the discussion during the last 3' for the rest
of the group.
Every presentation should include at least one slide for
motivation, one for main ideas and contributions and one for open
You must send me the slides for review at least
24hrs before your presentation.
I am putting together some notes on in-class
presentations and useful web-pages on the general topic of
technical presentations. This is still a work-in-progress!
Projects (done in groups of size 2+) 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.
Projects must be written up in a term paper and teams will
present their results at the end of the course in a poster session
This is a small list of potential ideas for projects
(access restricted to inside Northwestern U.). Feel free to use
one, propose something completelely different, or refine one of
these into your own idea.
Project Deliverables and Deadlines
- Proposal - January 29: 2-3 pages describing the
purpose of the project, work to be done and potential load
distribution, expected outcome/results, ....
- Literature Survey - February 5: 2-3 pages (plus
references) describing context and related work for the proposed
- Design Document - February 18: 4-5 pages with a
detailed description of the software design, load distribution
among group members. Construct a detailed sketch of your
evaluation plan - what hypothesis is to be tested, how will you
control the test circumstances, what workloads will you apply,
why will this test enable resolution of the hypothesis, and what
and how will specific metrics be measured.
- Final Report - March 18: The final report is a
workshop-level paper describing your work, evaluation, related
research, potential avenues to explore, etc. Code should be
Last modified: Fri Jul 17 08:21:44 CDT 2009