
Principles of Distributed Computing (FS 2017)
Course catalogue • Previous year • PODC lecture collection
Distributed computing is essential in modern computing and communications systems.
Examples are on the one hand largescale networks such as the Internet,
and on the other hand multiprocessors such as your new multicore laptop.
This course introduces the principles of distributed computing, emphasizing the
fundamental issues underlying the design of distributed systems and networks: communication,
coordination, faulttolerance, locality, parallelism, selforganization, 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 prerequisites: Interest in algorithmic problems. (No particular course needed.)
 Course language: English
 Lecture by Roger Wattenhofer and Mohsen Ghaffari, Wednesdays 810 in
CAB G 11
 Exercises organized by Thomas Ulrich and Darya Melnyk (for Prof. Wattenhofer's part), and Manuela Fischer and Jara Uitto (for Prof. Ghaffari's part)
 Exercise A: Wednesdays 1012 in CAB G 56
 Exercise B: Wednesdays 1315 in LFW C 11
 Both exercise sessions offer identical content. Please go to the exercise session which better fits your personal schedule.
 March 2, 2017: The schedule of the lectures has been updated.
 March 6, 2017: Lecture notes, Algorithm 2.11 has been updated.
 May 15, 2017: Second bonus round announced
 June 1, 2017: We've uploaded some exams from previous years.
Exam
 The exam will take place on Monday, August 14, from 2pm to 4pm.
 You are allowed to bring any written material you like (lecture notes, books, personal notes,...), but no electronic devices whatsoever (no calculator, phone, laptop,...).
 We will do the exam as an online examination. It will take place in a computer room at ETH and you will answer the questions on a computer. There will also be paper available in case you want to draw a picture, write down some formulas or hand in some additional notes which you can't easily type on the computer.
 If you have additional questions about the exam, please write an email to Thomas.
Q&A session
There will be a Q&A session around 12 weeks before the exam. We will inform you once we have settled on an exact date.
Exam preparation
The following parts of the lecture notes have not been covered in the lecture and are therefore not relevant for the exam:
 Chapter 3: The proofs in Section 3.3 are not relevant.
 Chapter 4: Algorithm 4.7 and Theorem 4.8
Here are some old exams from previous years:
2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2015, 2016 (including a sample solution)
Please be aware that the topics covered in this course have changed several times over the years. Therefore, some questions in these exams don't match the content of this year's course.
These books are available at CS text book collection.
[peleg]

Distributed Computing: A LocalitySensitive Approach David Peleg. Society for Industrial and Applied Mathematics (SIAM), 2000, ISBN 0898714648 
[aw]

Distributed Computing: Fundamentals, Simulations and Advanced Topics
Hagit Attiya, Jennifer Welch.
McGrawHill Publishing, 1998, ISBN 007709352 6 
[hkpru]

Dissemination of Information in Communication Networks
Juraj Hromkovic, Ralf Klasing, Andrzej Pelc, Peter Ruzicka, Walter Unger.
SpringerVerlag, Berlin Heidelberg, 2005, ISBN 3540008462 
[leighton]

Introduction to Parallel Algorithms and Architectures: Arrays, Trees, Hypercubes
Frank Thomson Leighton.
Morgan Kaufmann Publishers Inc., San Francisco, CA, 1991, ISBN 1558601171 
[clr]

Introduction to Algorithms
Thomas Cormen, Charles Leiserson, Ronald Rivest.
The MIT Press, 1998, ISBN 0262530910 oder 0262031418 
