Advanced topics in computer science 3 (#236603, Fall 1996):

Theoretical aspects of distributed systems

Unofficial prerequisite: Distributed algorithms (#236357).
Time and place: Monday, 14:30-16:30 (Ullman 104)
Lecturer: Dr. Hagit Attiya.
Office hours: Monday, 16:30-17:30, Fishbach 455.

The course presents several examples where a good theoretical concept (algorithm, definition, impossibility result) influence the way distributed systems can be built.The course will include the following topics:

  • Scalable and lock-free synchronization.
  • Broadcast and multicast.
  • Replication.
  • Distributed shared memory.
  • Distributed file systems.

And additional topics, as time permits and the lecturer wishes…

The course will deal with systems, but it is not a programming course—its methodology is theoretical.

The course is research-oriented: It covers mostly recent papers and emphasizes open problems.

Grading policy:

The grade will be based on the following factors

  • Homework exercises (not many)
  • Mid-term examination
  • Presenting a paper in class or writing a good summary (in pairs).


Partial bibliography.
This course borrows some of its material from Maurice Herlihy’s course at Brown University.
See also Nir Shavit’s course at MIT.