Official course description:

Full info last published 15/05-24
Course info
ECTS points:
Course code:
Participants max:
Offered to guest students:
Offered to exchange students:
Offered as a single subject:
Price for EU/EEA citizens (Single Subject):
10625 DKK
MSc. Master
MSc in Software Design
Course manager
Associate Professor, Head of study programme
Part-time Lecturer
Course semester
Efterår 2024
26 August 2024
24 January 2025
Exam type
ekstern censur
Grade Scale
Exam Language
This course teaches the theoretical and practical foundations for distributed computing.

Programs of today typically exhibit aspects of concurrency (or parallelism), distribution, or mobility or even all of them. In a concurrent system parts of the programs proceed simultaneously - for example in different threads or using event dispatching. In a distributed system parts of the system are spread over a number of programs communicating over a network to cooperatively provide a service. The network may be anything from the local network in a building to the entire Internet.

The student will gain theoretical and practical experience in concurrency and distributed computing. 

The course covers a number of topics, including: 

  • Communication over the network leads to dropped and reordered packets which requires robust request/reply and multicast protocols. 
  • Since programs communicate over an open and potentially faulty network, it is difficult for them to synchronise on time, leaders, and data. Protocols for time synchronisation, logical time, consensus, and data distribution address such issues. 
  • In order to support changes and evolution of it-systems, loosely coupled architectures such as Service Oriented Architecture (e.g., Microservices) are employed, as well as process-oriented architectures for combining services in process flows in an adaptable way. 

Formal prerequisites

In order to participate at this course you must be able to use all major elements of a mainstream programming language (such as Java language) for implementing and testing medium sized programs, including threads, inheritance, packages, I/O, streams and serialisation. These competencies can be obtained by completing the mandatory programming module on the MSc programme Software Design or the first year of the BSc in Software Development.

Intended learning outcomes

After the course, the student should be able to:

  • Describe and use fundamental architectures, principles and models used in designing and constructing mobile and distributed systems.
  • Describe and use basic concepts in mobile and distributed systems for evaluation and designing of solutions to problems in the field
  • Implement distributed, and mobile systems in practice with the help of the above techniques
Learning activities

Lectures, exercise sessions, mandatory exercises and mini-projects. Exercises will emphasise theoretical work, mini-projects implementation work. Mandatory Activities: 6 mandatory hand-ins; all submitted in groups. All 6 mandatory submissions must be approved in order to be eligible for the exam. Deadlines will be listed on the course page. If your submission is not approved, you may resubmit. See deadline on the course page

Mandatory activities

6 mandatory hand-ins; all submitted in groups. All 6 mandatory submissions must be approved in order to be eligible for the exam. Deadlines will be listed on the course page. If your submission is not approved, you may resubmit. See deadline on the course page.

The student will receive the grade NA (not approved) at the ordinary exam, if the mandatory activities are not approved and the student will use an exam attempt.

Course literature

Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems (Martin Klappmann)

Student Activity Budget
Estimated distribution of learning activities for the typical student
  • Preparation for lectures and exercises: 10%
  • Lectures: 15%
  • Exercises: 15%
  • Assignments: 10%
  • Project work, supervision included: 20%
  • Exam with preparation: 30%
Ordinary exam
Exam type:
A: Written exam on premises, External (7-point scale)
Exam variation:
A33: Written exam on premises on paper with restrictions
Exam duration:
4 hours
Aids allowed for the exam:

Exam type:
X: Experimental form, External (7-point scale)
Exam variation:
X: Experimental form
Exam submission description:
If number of participants for the re-exam are 29 or lower, the re-exam is:
B1I: Oral exam with time for preparation. Inhouse (External - 7-point scale)
Duration of preparation: 20 minutes (No invigilator present for the preparation)
Duration of oral exam: 20 minutes

If number of participants are 30 or more, the re-exam is:
A33: Written exam on premises on paper with restrictions (External - 7-point scale)
Duration of exam: 4 hours
Allowed aids: Pen

Time and date
Ordinary Exam - on premises Thu, 9 Jan 2025, 09:00 - 13:00