Distributed Programming Laboratory LPD

Distributed Algorithms

Master course, Fall 2016

Prerequisites: none.

Note: this course is independent from the course Concurrent Algorithms.


  • Endterm details added.
  • The final exam will cover everything except population protocols and FIFO links (basically, only concepts taught by Prof. Guerraoui).
  • Q&A sessions will be held on 23rd January (today) at CM 1 4 from 3:15pm till 6pm.
  • Prof. Guerraoui's new book on concurrent computing for interested readers: Concurrent computing.
  • Midterm grades are now published.
  • Exercise session for 5.12.16 will be on VS (Problem 2 in Ex08).
  • Midterm details added.
  • Links to Wandida short lectures on broadcast.
  • DA 2016 page is online.

Dates and schedule

  • The course is given on Mondays, 15:15−17:00, in ELA01.
  • The exercises are given on Mondays, 17:15-18:00, in BC01.
  • Midterm: 28/11/2016 between 15:15 - 17:00.


  • Date: 28/11/2016
  • Time: 15:15 - 17:00
  • Content: Material from all courses and exercise sessions up to, and including, 21st of November.
  • Rooms: CM 1 1, CO3.
  • Room assignment: seating_midterm.pdf
  • Midterm grades: Midterm2016_grades.pdf



  • Date: 31/01/2017
  • Time: 08:15 - 11:15
  • Content: Everything except population protocols and FIFO links (basically, only concepts taught by Prof. Guerraoui).
  • Rooms: CE 4, CE 6
  • Room assignment: seating_enterm.pdf

Teaching team


  • Rachid Guerraoui and Luis Rodrigues - Introduction to Reliable Distributed Programming, available at 'La Fontaine' (with a student discount) or at amazon.de.
  • Christian Cachin, Rachid Guerraoui and Luis Rodrigues - Introduction to Reliable and Secure Distributed Programming

Additional Material

  • We prepared a document describing the language used for module specification and implementation, the notion of layering, and the notion of process. (odt pdf)
  • A Latex sample for algorithm implementation can be found here: alg-sample.tex

Slides and exercises

Note that the slides will most likely be edited as the semester progresses, so make sure you have the latest version.

Lecture Slides Exercises
Introduction intro.pdf ex01.pdf logic101.pdf
sol01.pdf Logic101Solution.pdf
Reliable Broadcast rb.pdf ex02.pdf sol02.pdf
Causal Broadcast cb.pdf ex03.pdf sol03.pdf
ex04.pdf sol04.pdf
FIFO Links and Gossip fg.pdf
Total Order Broadcast tob.pdfex05.pdf sol05.pdf
Consensus consensus.pdf ex06.pdf sol06.pdf
Atomic Commit nbac.pdfex07.pdf sol07.pdf
ex08.pdf sol08.pdf
Population protocolspp01.pdf
ex09.pdf sol09.pdf
Shared memorypp01.pdf ex10.pdf sol10.pdf
Sample End-term quesiontsda14_endterm.pdf da15_endterm.pdf da15_final_sol.pdf

Information on exercises, grading, and exam

  • Exercises are made available on the course webpage each Monday.
  • Exercises are not graded and do not count towards the final grade. However, solving them helps you better understand the course material and prepare for the final exam.
  • Solutions to exercises will be given during the exercise sessions one week later after the exercises were given. Also, solutions will be available on the course webpage one week later after the exercises were given.
  • There will be a midterm in the second half of the semester. It is not mandatory, but it may improve the final grade (see below).
  • The final grade will be calculated using the formula max( 1/2*<midterm> + 1/2*<final> , <final> ), where <midterm> and <final> are the results of the midterm and the final exam, respectively. The final exam and the midterm will be written and closed-book.