Official course description, subject to change:
Preliminary info last published 17/05-21

Distributed Systems, BSc

Course info
Language:
English
ECTS points:
7.5
Course code:
BSDISYS1KU
Participants max:
195
Offered to guest students:
yes
Offered to exchange students:
yes
Offered as a single subject:
yes
Price (single subject):
10625 DKK (incl. vat)
Programme
Level:
Bachelor
Programme:
BSc in Software Development
Staff
Course semester
Semester
Efterår 2022
Start
29 August 2022
End
30 December 2022
Exam
Exam type
ordinær
Internal/External
ekstern censur
Grade Scale
7-trinsskala
Exam Language
GB
Abstract
This course teaches the theoretical and practical foundations for distributed computing.
Description

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 to this course, you must be able to use all major elements of a standard programming language (such as Java) for implementing medium sized programs, corresponding to the mandatory programming module on the MSc programme Software Design or the first year of the BSc in Software Development (in particular Introductory Programming and First Year Project).

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
Ordinary exam
Exam type:
A: Written exam on premises, External (7-point scale)
Exam variation:
A22: Written exam on premises with restrictions.