Programming Distributed Systems

News & Announcements


Lecturer: Dr. Annette Bieniusa

Assistant: Albert Schimpf

The lecture and course material will be in English.

Learning Paths


Please register for the exercises via mail to Albert Schimpf (subject: “Registration Progdist”).


  • Good programming knowledge, including usage of code repositories (git)

As this is a 8CP lecture, you will spend on average around 240 hours on the lecture and the exercises, including exam preparation. If you do not have much experience with programming systems of medium size, you need to plan to spend more time on the practical exercises! If you lack some of the theoretical prerequisites (definition of formal languages, finite-state machines), you should also incorporate this into your planning.


  • Oral exam

Exam dates: We will offer two exam dates; July 27th and week of September 7th. For the exam in July, you need to have finished your exercises by July 17th (last day of term). For the exam in September, you need to have the exercises finished by August 24th. These are hard deadlines.


You will be able to

  • explain the challenges regarding time and faults in a distributed system
  • provide formal definitions for time models, fault models and consistency models
  • comprehend and develop models of some distributed system in a process calculus
  • describe the algorithms for essential abstractions in programming distributed systems
  • implement basic abstractions for distributed programming
  • explain the virtues and limitations of major distributed programming paradigms