Principles of Distributed Computing (FS 2016)
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.
In case you have missed a lecture, the Sections 5.3 and 7.2 were discussed very briefly in the lecture. We skipped Algorithm 6.7 and Theorem 6.8 of Section 6.2. Keep this in mind when preparing for the exam.
If you are not in Zurich for the exam, please contact Prof. Wattenhofer via e-mail to get the confirmation you need to apply for a distance exam. The examination office will help you with any question you might have.
Sample exams: 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2015, 2016 (including a sample solution)
There will be a Q&A session in CAB G 51 on August 12 at 2pm. Please send your questions until August 10 (11:59pm) to Philipp Brandes.
You can take a look at your corrected exam on Monday, the 19th of September (from 9am to 12pm), and on Thursday, the 29th of September (from 12pm to 3pm). The exam review will take place in the office of our secretary Friederike Brütsch (office ETZ G88).