Distributed Computing Group Distributed Computing Group
ETH Zurich Distributed Computing Group

HOME
MEMBERS  
PUBLICATIONS  
COURSES  
THESES  
WIKI  
CONTACT  
     
PROJECTS  
BitThief  
Conference Search  
jukefox  
Sinalgo  
SoundMate  
Spamato  
Theory  
TinyOS 2 IDE  
     
SPIN-OFFs  
StreamForge  
Wuala  

Principles of Distributed Computing (lecture collection)


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. The lecture notes on this webpage introduce 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. Each chapter covers a fresh topic.

Note that the order of the chapters is more or less arbitrary. Each chapter is mostly independent, with the occasional reference to another chapter.



Lecture material


Title Lecture Notes Exercises Additional Material

Chapter 0
Introduction
PDF 1:1
PDF 2:1

Chapter 1
Vertex Coloring
PDF 1:1
PDF 2:1
Exercises
Solutions
Slides by S.Schmid, TU Berlin

Chapter 2
Leader Election
PDF 1:1
PDF 2:1
Exercises
Solutions
Slides by S.Schmid, TU Berlin

Chapter 3
Tree Algorithms
PDF 1:1
PDF 2:1
Exercises
Solutions
Slides by S.Schmid, TU Berlin

Chapter 4
Distributed Sorting
PDF 1:1
PDF 2:1
Exercises
Solutions

Chapter 5
Shared Memory
PDF 1:1
PDF 2:1
Exercises
Solutions

Chapter 6
Shared Objects
PDF 1:1
PDF 2:1
Exercises
Solutions

Chapter 7
Maximal Independent Set
PDF 1:1
PDF 2:1
Exercises
Solutions
Slides by R. Wattenhofer
Slides by S.Schmid, TU Berlin

Chapter 8
Locality Lower Bounds
PDF 1:1
PDF 2:1
Exercises
Solutions
Slides by S.Schmid, TU Berlin
Ramsey Theory Slides by J. Suomela
Alternative Version thanks!

Chapter 9
Social Networks
PDF 1:1
PDF 2:1
Exercises
Solutions
Slides by S.Schmid, TU Berlin

Chapter 10
Synchronizers
PDF 1:1
PDF 2:1
Exercises
Solutions

Chapter 11
Hard Problems
PDF 1:1
PDF 2:1
Exercises
Solutions

Chapter 12
Stabilization
PDF 1:1
PDF 2:1
Exercises
Solutions

Chapter 13
Wireless Protocols
PDF 1:1
PDF 2:1
Exercises
Solutions

Chapter 14
Peer-to-Peer Computing
PDF 1:1
PDF 2:1
Exercises
Solutions
Slides by S.Schmid, TU Berlin
Slides from a talk at P2P

Chapter 15
Dynamic Networks
PDF 1:1
PDF 2:1
Exercises
Solutions

Chapter 16
All-to-All Communication
PDF 1:1
PDF 2:1
Exercises
Solutions
Slides

Chapter 17
Consensus
PDF 1:1
PDF 2:1
Exercises
Solutions
Slides

Chapter 18
Multi-Core Computing
PDF 1:1
PDF 2:1
Slides

Chapter 19
Dominating Set
PDF 1:1
PDF 2:1
Exercises
Solutions

Chapter 20
Routing
PDF 1:1
PDF 2:1

Chapter 21
Routing Strikes Back
PDF 1:1
PDF 2:1

All Chapters
Principles of Distributed Computing
PDF 1:1
PDF 2:1


 
© 2013 , Distributed Computing Group, Laboratory TIK, ETH Zurich | Imprint | Last updated: Thu, 16 Aug 2012 19:20 by Philipp Brandes.
   
top