Instruction

Name Cr Method of study Time Location Organiser
Distributed Systems 5 Cr Examination 4.6.2021 - 4.6.2021
Name Cr Method of study Time Location Organiser
Distributed Systems 5 Cr Examination 8.4.2021 - 8.4.2021
Distributed Systems (U) (MOODLE) 5 Cr Examination 4.2.2021 - 4.2.2021
Distributed Systems 5 Cr Lecture Course 27.10.2020 - 11.12.2020
Distributed Systems 5 Cr Examination 10.9.2020 - 10.9.2020
Distributed Systems 5 Cr Online Examination 5.6.2020 - 5.6.2020
Cancelled CANCELLED: Distributed Systems 5 Cr General Examination 8.4.2020 - 8.4.2020
Distributed Systems (U) 5 Cr General Examination 6.2.2020 - 6.2.2020
Distributed Systems 5 Cr Course exam 18.12.2019 - 18.12.2019
Distributed Systems 5 Cr Lecture Course 29.10.2019 - 13.12.2019
Distributed Systems 5 Cr General Examination 12.9.2019 - 12.9.2019
Distributed Systems 5 Cr General Examination 7.6.2019 - 7.6.2019
Distributed Systems 5 Cr General Examination 10.4.2019 - 10.4.2019
Distributed Systems (U) 5 Cr General Examination 7.2.2019 - 7.2.2019
Distributed Systems 5 Cr Examination 19.12.2018 - 19.12.2018
Distributed Systems 5 Cr Lecture Course 30.10.2018 - 19.12.2018
Distributed Systems 5 Cr General Examination 13.9.2018 - 13.9.2018
Distributed Systems 5 Cr General Examination 8.6.2018 - 8.6.2018
Distributed Systems 5 Cr General Examination 6.4.2018 - 6.4.2018
Distributed Systems (U) 5 Cr General Examination 2.2.2018 - 2.2.2018
Distributed Systems 5 Cr Lecture Course 31.10.2017 - 15.12.2017

Target group

Course status: compulsory or optional

-Which degree programme is responsible for the course? Computer Science
-Which module does the course belong to? Computer science core
-Is the course available to students from other degree programmes? Yes

Course level (first-, second-, third-cycle/EQF levels 6, 7 and 8)

Level 7, advanced studies

Prerequisites

Students must have a Bachelors degree in computer science or related field.

More specifically students must have programming skills, knowledge about operating systems, networking and computer organisation/architectures including some basic understanding of concurrency issues in one computer.

Learning outcomes

During the course, students learn essential motivations and techniques for distributed systems.

Key challenges discussed include

  • The key principles of distributed system development
  • Applying the principles in evaluating major design paradigms used in implementing distributed systems
  • distributed decision-making;
  • Distributed systems related problems, including coordination, consistency and replication, fault tolerance
  • design and implement a small distributed system

On a more detailed level, students learn the basic distributed system techniques, including architectures, processes, communication, naming, modelling, synchronization, consistency and replication, and fault tolerance. In addition, the course covers advanced topics such as edge computing and blockchain. We propose solutions for these challenges on different levels of abstraction, in hardware, operating systems, middleware, and application-level architectures. The solutions address distributed processing and storage, their algorithms, mutual communication protocols, and failure situations with recovery options. Common solutions are discussed on replica management, data consistency models and management, and agreements between untrusted agents. Distribution benefits and disadvantages and effects of inter-dependencies of different solutions will be estimated.

Timing

Recommended time/stage of studies for completion

Immediately at the beginning of the Master's studies. During the first semester of Master's studies.

Term/teaching period when the course will be offered

Autumn term, second period, every year

Contents

This course covers key distribution systems topic areas as follows:

  • Basic principles of distributed systems
  • models of communication from interprocess communication to various forms of remote communication, group communication for different application types;
  • Coordination algorithms, including distributed consensus;
  • Time management in distributed or independent systems: logical clocks, partial ordering of events, causal ordering;
  • Mutual exclusion and shared use of resources;
  • Fault tolerant systems, including replica management (for data, for processing);
  • Formal models and verification as design tools for distributed solutions;
  • Advanced topics, such as edge computing and blockchain.

Activities and teaching methods in support of learning

Lecture course with exercise groups. Lectures open up key concepts and rationale for solutions, in exercises, details of the solutions become more familiar based on the students' group work on related tasks.

Study materials

The course is based on the course books, including Maarten van Steen and Andrew S Tanenbaum Distributed Systems – Principles and Paradigms, Third Edition, 2017, Sukumar Ghosh: Distributed systems an algorithmic approach, 2nd edition, Chapman&Hall/CRC, 2015. Any other distributed systems textbook covering the topics of the course is also possible to use.

Supplementary material will be provided during the course as needed.

Assessment practices and criteria

Grading 0-5.

The grade is a weighted combination of the course exam and mandatory course exercises.

Recommended optional studies

Almost all other Master's degree courses will widen the basic understanding gained in this course.

Completion methods

Will be offered as normal contact teaching, lecture course, with weekly lectures and exercise sessions. No distance learning option currently envisioned, but the course can be done as a stand-alone separate exam alternatively.

Attendance is optional, but there might be compulsory elements in the course which are discussed during the first lecture.

During the weekly exercises students solve problems, implement small distributed systems, and write short essays on given topics.