Programming Distributed Systems
News & Announcements
25.06.2020: Course material published for Learning path 9: Consistency and Replicated Data
23.06.2020: Slides on Programming Models
07.06.2020: Course material published for Learning path 8: Consensus
31.05.2020: Course material published for Learning path 7: TLA+
25.05.2020: Course material published for Learning path 6: Code Beam V Conference
16.05.2020: Course material published for Learning path 5: Fault-tolerance in Message-Passing Distributed Systems
08.05.2020: Course material published for Learning path 4: Erlang OTP
05.05.2020: An Erlang live coding session will be held on Monday, 11th of May at 10 AM
04.05.2020: Course material published for Learning path 3: Time in Distributed Systems
25.04.2020: Course material published for Learning path 2: Programming in Erlang
19.04.2020: Course material published for Learning path 1: Foundations
13.04.2020: Course material updated for Course Organisation
02.04.2020: Due to the current situation, content and exercises will be presented mostly online. Lectures are replaced by videos. The first week (13th - 17th) is going to be the setup week, where organizational issues and communication is addressed. After that, the lecture will start.
It is still required to register via email until the April 21 to Albert Schimpf (subject: “Registration Progdist”) to participate in the course.
Team
Lecturer: Dr. Annette Bieniusa
Assistant: Albert Schimpf
The lecture and course material will be in English.
Learning Paths
Registration
Please register for the exercises via mail to Albert Schimpf (subject: “Registration Progdist”).
Prerequisites
- 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.
Exam
- 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.
Objectives
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