Module Handbook

  • Dynamischer Default-Fachbereich geändert auf INF

Module INF-32-56-M-6

Programming Distributed Systems (M, 8.0 LP)

Module Identification

Module Number Module Name CP (Effort)
INF-32-56-M-6 Programming Distributed Systems 8.0 CP (240 h)


CP, Effort 8.0 CP = 240 h
Position of the semester 1 Sem. in SuSe
Level [6] Master (General)
Language [EN] English
Module Manager
Area of study [INF-SE] Software-Engineering
Reference course of study [INF-88.79-SG] M.Sc. Computer Science
Livecycle-State [NORM] Active


Type/SWS Course Number Title Choice in
Presence-Time /
SL SL is
required for exa.
PL CP Sem.
3V+3U INF-32-56-K-6
Programming Distributed Systems
P 84 h 156 h
ja PL1 8.0 SuSe
  • About [INF-32-56-K-6]: Title: "Programming Distributed Systems"; Presence-Time: 84 h; Self-Study: 156 h
  • About [INF-32-56-K-6]: The study achievement "[U-Schein] proof of successful participation in the exercise classes (ungraded)" must be obtained.
    • It is a prerequisite for the examination for PL1.

Examination achievement PL1

  • Form of examination: oral examination (20-60 Min.)
  • Examination Frequency: Examination only within the course
  • Examination number: 63256 ("Programming Distributed Systems")

Evaluation of grades

The grade of the module examination is also the module grade.


Basic primitives in programming distributed systems
  • Leader election
  • Consistent snapshots
  • Consensus
  • Distributed state machine replication

Theoretical foundation

  • Failure modes
  • Time (vector clocks, Lamport clocks)
  • Process calculi (e.g. CSP, CCS, pi calculus, TLA)
  • Consistency models

Programming paradigms for Distributed Systems

  • RPC
  • Futures and promises
  • Message passing and actors
  • CRDTs
  • Streaming / Data-Flow

Competencies / intended learning achievements

Students are 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 in a programming language,
  • explain the virtues and limitations of major distributed programming paradigms.


  • Bernadette Charron-Bost, Fernando Pedone, André Schiper: Replication: Theory and Practice. Lecture Notes in Computer Science 5959, Springer 2010, ISBN 978-3-642-11293-5.
  • Christian Cachin, Rachid Guerraoui, Luís E. T. Rodrigues: Introduction to Reliable and Secure Distributed Programming (2. ed.). Springer 2011, ISBN 978-3-642-15259-7, pp. I-XIX, 1-367.

Requirements for attendance of the module (informal)


Requirements for attendance of the module (formal)


References to Module / Module Number [INF-32-56-M-6]

Course of Study Section Choice/Obligation
[INF-88.79-SG] M.Sc. Computer Science [Specialisation] Specialization 1 [WP] Compulsory Elective