Principles of Distributed Computing
This page is no longer maintained. Up-to-date versions of lecture and exercise material can be found here.
Distributed computing is essential in modern computing and communications systems.
Examples are on the one hand large-scale networks such as the Internet,
and on the other hand multiprocessors such as your new multi-core laptop.
This course introduces the principles of distributed computing, emphasizing the
fundamental issues underlying the design of distributed systems and networks: communication,
coordination, fault-tolerance, locality, parallelism, self-organization, symmetry breaking,
synchronization, uncertainty. We explore essential algorithmic ideas and lower bound techniques,
basically the "pearls" of distributed computing. We will cover a fresh topic every week.
Course pre-requisites: Interest in algorithmic problems. (No particular course needed.)
Course language: English.
Roger Wattenhofer Wednesday 8.15-10.00 @ CAB G 51.
Exercises organized by
Philipp Brandes, Exercise A: Wednesday 10.15-12.00 @ CAB G 52; Exercise B: Wednesday 13.15 - 15.00 @ LFW C 11
A reading assignment (PDF) complements the course.
The content covered in the assignment will be part of the exam.
We offer a Q&A session in CAB G51 on August 17 from 3pm to 5pm. Please send your questions to Michael König until August 13.
Sample exams: 2003, 2004, 2005, 2006, 2007, 2009
Please note that the topics covered in this course change from year to year and thus some of the questions in those exams are not covered this year.
These books are available at CS text book collection.
Distributed Computing: A Locality-Sensitive Approach
Society for Industrial and Applied Mathematics (SIAM), 2000, ISBN 0-89871-464-8
Distributed Computing: Fundamentals, Simulations and Advanced Topics
Hagit Attiya, Jennifer Welch.
McGraw-Hill Publishing, 1998, ISBN 0-07-709352 6
Dissemination of Information in Communication Networks
Juraj Hromkovic, Ralf Klasing, Andrzej Pelc, Peter Ruzicka, Walter Unger.
Springer-Verlag, Berlin Heidelberg, 2005, ISBN 3-540-00846-2
Introduction to Parallel Algorithms and Architectures: Arrays, Trees, Hypercubes
Frank Thomson Leighton.
Morgan Kaufmann Publishers Inc., San Francisco, CA, 1991, ISBN 1-55860-117-1
Introduction to Algorithms
Thomas Cormen, Charles Leiserson, Ronald Rivest.
The MIT Press, 1998, ISBN 0-262-53091-0 oder 0-262-03141-8