Distributed Systems
Carlos Maltzahn

(contact, news)



The goal for this course is to provide an in-depth overview of research topics in distributed systems. Topics will include:

• Communication mechanisms 

• Processes and mobile code

• Naming

• Synchronization

• Scalability

• Consistency, replication, and caching 

• Fault tolerance

• Security and access controls

Issues in these topic areas will be illustrated through examples of real world distributed systems, including cloud computing systems, distributed file and storage systems, peer to peer systems, and distributed and clustered operating systems. Readings for the class will be taken from the current research literature and articles of historical significance.

Additional topics may be covered, depending on the interests of the students and the professor.

Course Requirements

One or more articles will be assigned as reading prior to each class meeting - usually two per class. These articles should be read carefully, and a short summary of each article and a few questions or insightful comments about the material (at least 3 per paper) prepared for the following class meeting. The summary of each article consists of brief answers to the following seven questions:

   1. What is the problem the authors are trying to solve?

   2. What other approaches or solutions existed at the time that this work was done?

   3. What was wrong with the other approaches or solutions?

   4. What is the authors' approach or solution?

   5. Why is it better than the other approaches or solutions?

   6. How does it perform?

   7. Why is this work important?

   8. 3+ comments/questions

Each student will give a presentation on two papers during the quarter. The presentations will thoroughly cover the material in the paper including the goals of the research, important background information, the details of the research, the results, and the significance of those results. The presenter will also be prepared to lead the class discussion about the paper.

You will be required to write a report on a topic in the area of distributed systems. This report should be the results of a project, original research (preferred), or a strong survey of prior art. Reporting work done for another course is not acceptable. You must choose a topic by second week of the quarter. Each student will give a final presentation on their project at the end of the quarter.

Your grade in the course is based 25% on preparedness and class participation, 25% for presentations, and 50% for your term project and report.


Class attendance is required. This is a discussion-based seminar course and you will not pass if you routinely miss class.

Academic Honesty

All the work you turn in must be your own. If you get ideas or material from any source other than your own mind (even from conversations with others), you must cite that source. Failure to do so constitutes plagiarism and will not be tolerated - you will not pass the course.