Problem Sets



Shishir Nagaraja

Distributed Systems

Fall 2010

Course Essentials and Policies


A basic network programming course is a prerequisite. An equivalent course in Operating Systems or Networking is also acceptable with the approval of the instructor.

Basic Information

Lectures: TBD
Location: TBD
Units: 4
Mailing list: TBD

The newsgroup is for questions/discussion on homeworks and programming assignments. But do not post solutions (code or write-up) to the newsgroup! Use email only when you cannot use the newsgroup, e.g., for urgent/personal questions.

Main textbook
Couloris, G., Dollimore, J., Kindberg, T. Distributed Systems: Concepts and Design, Addison-Wesley, Fourth Edition, ISBN: 0201619180
Recommended purchase -- copies available at Illini Book Store. On reserve at Grainger library.

Note: The third edition ought to suffice for most of our material, but we will refer to chapter, section and problem numbers ONLY in the Fourth Edition. Correct interpretation/translation of these numbers in the 3rd edition is solely the students' responsibility (no excuses).
Fourth Edition Errata
Third Edition Errata

Reference book
Sukumar Ghosh. Distributed Systems: An Algorithmic Approach. 2006 CRC Press (ISBN 1584885645)
An excellent reference that's highly recommended especially for the graduate students attending this course.
Supplementary textbooks
  • Bacon, J. & Harris, T. (2003). Operating systems: distributed and concurrent software design. Addison-Wesley.
  • Tanenbaum, A.S. & van Steen, M. (2002). Distributed systems. Prentice Hall.
  • Mullender, S. (ed.) (1993). Distributed systems. Addison-Wesley (2nd ed.).


Class participation is important. You are expected to have read reading material for the lecture (e.g., sections of the textbook, papers) before the lecture. Grading for undergraduate and graduate students will be separated. Grades will be assigned on a curve (relative grading). Note that your performance in the homework and programming assignments will determine more than 50% of your grade, so please do not ignore them.

Homeworks and Assignments

Homework sets will be given out approximately every other week. Homeworks will be due at the beginning of the class on the day of the deadline. No late homework sets will be accepted (exceptions will have to be approved by the Dean). Homework solutions are required to be typed. We will not accept handwritten solutions. Figures and equations may be drawn by hand.

Homework efforts are individual efforts i.e. not group efforts and not copied off the Internet. Plagiarism is a violation of the student code and can result in an `F' grade in addition to other penalties. It will be detected proactively and reported.

Three programming assignments will be given throughout the semester, each requiring 2-4 weeks of effort. You may choose to work in groups of up to 3 students for each of the projects. You may change groupings from one assignment to the next, although we do not suggest you do so. You will only be graded for the code you have written as a group. The plagiarism warning applies here as well. You are encouraged to build on others' work (such as the use of function libraries) as long as due credit is given.


This course has been taught by several lecturers from whom I've learnt much over the years. In particular, I am most grateful to George Coulouris for his advice while I was at the University of Cambridge.