Chapter 0
Chapter 0
1
2
them when we use them. Towards the end of the course a general picture should
emerge, hopefully!
Course Overview
This course introduces the basic principles of distributed computing, highlight-
ing common themes and techniques. In particular, we study some of the funda-
mental issues underlying the design of distributed systems:
• Parallelism: How fast can you solve a task if you increase your computa-
tional power, e.g., by increasing the number of nodes that can share the
workload? How much parallelism is possible for a given problem?
Finally, there are also a few areas that we will not cover in this course,
mostly because these topics have become so important that they deserve their
own courses. Examples for such topics are distributed programming or secu-
rity/cryptography.
In summary, in this class we explore essential algorithmic ideas and lower
bound techniques, basically the “pearls” of distributed computing and network
algorithms. We will cover a fresh topic every week.
Have fun!
BIBLIOGRAPHY 3
Chapter Notes
Many excellent text books have been written on the subject. The book closest
to this course is by David Peleg [Pel00], as it shares about half of the material. A
main focus of Peleg’s book are network partitions, covers, decompositions, and
spanners – an interesting area that we will only touch in this course. There exist
a multitude of other text books that overlap with one or two chapters of this
course, e.g., [Lei92, Bar96, Lyn96, Tel01, AW04, HKP+ 05, CLRS09, Suo12].
Another related course is by James Aspnes [Asp] and one by Jukka Suomela
[Suo14].
Some chapters of this course have been developed in collaboration with (for-
mer) Ph.D. students, see chapter notes for details. Many students have helped
to improve exercises and script. Thanks go to Philipp Brandes, Raphael Ei-
denbenz, Roland Flury, Klaus-Tycho Förster, Stephan Holzer, Barbara Keller,
Fabian Kuhn, Christoph Lenzen, Thomas Locher, Remo Meier, Thomas Mosci-
broda, Regina O’Dell, Yvonne-Anne Pignolet, Jochen Seidel, Stefan Schmid,
Johannes Schneider, Jara Uitto, Pascal von Rickenbach (in alphabetical order).
Bibliography
[Asp] James Aspnes. Notes on Theory of Distributed Systems.
[HKP+ 05] Juraj Hromkovic, Ralf Klasing, Andrzej Pelc, Peter Ruzicka, and
Walter Unger. Dissemination of Information in Communication
Networks - Broadcasting, Gossiping, Leader Election, and Fault-
Tolerance. Texts in Theoretical Computer Science. An EATCS Se-
ries. Springer, 2005.