Principles of Distributed Computing (FS 2013)
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.
The exam will take place on August 7th from 9 am to 11 am.
Lecture by
Yvonne-Anne Pignolet and Thomas Locher Wednesday 8.15-10.00 @ CAB G 51.
Exercises organized by
Philipp Brandes, Wednesday 10.15-12.00 @ CAB G 52.
Testat.
Your task is to create an exam question including a solution for one of the topics. See here for detailed information.
Note that this is your last chance to obtain the testat. You need it in order to participate in the exam.
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.
You can take a look at your corrected exam on Wednesday, the 11th of September, and on Monday, the 16th of September. To do so, please visit our secretary Friederike Brütsch(office ETZ G88) on one of these days.
Lecture material
Title | Lecture Notes | Exercises | Responsible Assistant | Additional Material | ||
Chapter 0 Introduction |
PDF 1:1 PDF 2:1 |
|
||||
Chapter 1 Vertex Coloring |
PDF 1:1 PDF 2:1 |
Exercises Solutions |
Philipp Brandes |
|
||
Chapter 2 Leader Election |
PDF 1:1 PDF 2:1 |
Exercises Solutions |
Pascal Bissig |
|
||
Chapter 3 Tree Algorithms |
PDF 1:1 PDF 2:1 |
Exercises Solutions |
Pascal Bissig |
|
||
Chapter 4 Distributed Sorting |
PDF 1:1 PDF 2:1 |
Exercises Solutions |
Stephan Holzer |
|
||
Chapter 5 Maximal Independent Set |
PDF 1:1 PDF 2:1 |
Exercises Solutions |
Jara Uitto |
|
||
Chapter 6 Locality Lower Bounds |
PDF 1:1 PDF 2:1 |
Exercises Solutions |
Stephan Holzer |
|
||
Chapter 7 All-to-All Communication |
PDF 1:1 PDF 2:1 |
Exercises Solutions |
Stephan Holzer |
|
||
Chapter 8 Social Networks |
PDF 1:1 PDF 2:1 |
Exercises Solutions |
Michael König |
|
||
Chapter 9 Shared Memory |
PDF 1:1 PDF 2:1 |
Exercises Solutions |
Jara Uitto |
|
||
Chapter 10 Shared Objects |
PDF 1:1 PDF 2:1 |
Exercises Solutions |
Jara Uitto |
|
||
Chapter 11 Wireless Protocols |
PDF 1:1 PDF 2:1 |
Exercises Solutions |
Silvio Frischknecht |
|
||
Chapter 12 Synchronizers |
PDF 1:1 PDF 2:1 |
Exercises Solutions |
Silvio Frischknecht |
|
||
Chapter 13 Peer-to-Peer Computing |
PDF 1:1 PDF 2:1 |
Exercises Solutions |
Michael König |
|
||
All Chapters Principles of Distributed Computing |
PDF 1:1 PDF 2:1 |
|||||