Distributed systems

Teacher Marco Peressotti https://marcoperessotti.com/
Period Spring 2022
ECTS 5 credits
Code DM883 (https://odin.sdu.dk/sitecore/index.php?a=searchfagbesk&internkode=DM883)
Prerequisites Students taking the course are expected to be familiar with the basics of operating systems, network and security, and concurrent programming e.g., by having followed DM510, DM557, and DM563.
Office hours Open door.


The course aims to provide students with the foundations and tools for the design and implementation of distributed systems. For this purpose, the course is organised into three main parts:

  • The first covers architectural aspects of distributed systems by analysing the main paradigms and patterns.
  • The second covers communication models that can be adopted in these distributed systems and the corresponding middleware solutions.
  • The third deals with the main problems that commonly arise in distributed programming, such as achievement of consensus, detection of failures and deadlocks, resource management and replication, by providing adequate techniques and algorithmic solutions.

In relation to the competence profile of the degree it is the explicit focus of the course to:
  • Give the competence to: plan and carry out scientific projects at a high professional level, including managing work and development situations that are complex, unpredictable, and require new solutions.
  • Give skills to: describe, analyse, and solve advanced computational problems using the learned models; develop new variants of the methods learned.
  • Give knowledge and understanding of: a variety of specialized models and methods developed in computer science, based on the highest international research, including topics from the subject's research front; a scientific basis to reflect on the subject area and to identify scientific issues.

Selected topics

The following main topics are contained in the course:

  • Logical time and global state in distributed systems.
  • Communication paradigms, message ordering, and group communication.
  • Distributed coordination and shared memory.
  • Consensus and agreement in distributed systems.
  • Replication, consistency, and fault tolerance.
  • Decentralised and peer-to-peer architectures.


Reeding material
Tanenbaum, A.S. and Steen, M. van 2023. Distributed Systems. Maarten van Steenl.
Kshemkalyani, A.D. and Singhal, M. 2011. Distributed computing: principles, algorithms, and systems. Cambridge University Press.
Exercises, slides, tutorials
Available on SDU's e-learning platform.


Open door

Students can come to us at any time to discuss issues, ask questions, get or give feedback.

Late submissions

No late submissions will be accepted/graded unless the instructor is contacted in advance with a reasonable explanation for the delay.

If the instructor approves late acceptance of a submission, the submission will incur a late penalty per late day (up to a maximum of 3 days). Submissions received 3 days or more after the due date will not be graded. The actual late penalty is at the instructor's discretion and may vary (based on the reason for the delay and how early the instructor was informed).


All submissions must be your own work. No collaboration is permitted on project write-ups (except with your project partner if you have one). No collaboration is permitted on exams. We will default to SDU's academic policies unless stated otherwise above.