Back to all courses

Distributed systems

Individual course

Max amount of FITech students: 15

Persons without a valid study right to a Finnish university have preference to this course.

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

Course contents

  • 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 and design and implement a small distributed system

On a more detailed level, we discuss about the basic distributed system techniques, including architectures, processes, communication, naming, modelling, synchronization, consistency and replication, and fault tolerance. In addition, the course may covers advanced topics like edge computing or blockchains. 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.

Learning outcomes

After the course, a student can

  • explain the key principles of distributed system development
  • apply the principles in evaluating major design paradigms used in implementing distributed systems
  • describe distributed decision-making and some alternative used in it
  • explain challenges and solutions related to key issues of distributed systems, including coordination, consistency and replication, fault tolerance
  • design and implement a small distributed system
  • use different levels of abstraction in discussing about basic distributed system techniques and difficults as well as presenting solutions for these challenges
  • combine together the common solutions of different focused problem areas (like replica management, data consistency models and management, and agreements between untrusted agents)
  • identify distribution benefits and disadvantages and estimate effects of inter-dependencies of different solutions

In addition, student will learn general skills that include at least time management, group work, problem solving, documentation, implementation.

Learning material

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.

Completion methods

Participation in teaching:

  • Lectures Tue 12-14, Thu 10-12 (material will be available after the lectures)
  • Weekly exercise sessions Wed 12-14 (non-mandatory but yield course points)
  • Group project
  • Exam

The course can be passed by taking a separate exam after independent study of the course materials. This course may be arranged in a different format and with different assessment methods for open university students.

More information of the University of Helsinki course page.

You can get a digital badge after completing this course.

Responsible teacher

University of Helsinki
Tiina Nikander

Further information about the course and studying

University of Helsinki
Reijo Siven

Contact person for applications

FITech Network University
Fanny Qvickström, Student services specialist
Application period has ended
Application period has ended
Topics:
5G technology,
Internet technology
Course code:
CSM13001
Study credits:
5 ECTS
Price:
0 €
Course level:
Teaching period:
31.10.–23.12.2023
Application start date:
01.06.2023
Application deadline:
Application period has ended
Host university:
University of Helsinki
Who can apply:
Adult learner,
Degree student
Teaching method:
Contact
Place of contact learning:
Helsinki
Teaching language:
English
General prerequisites:
Students must have programming skills, knowledge about operating systems, networking and computer organisation/architectures including basic understanding of concurrency problems in uniprocessor environments.
Interested in this course? Subscribe and get updates about the course directly to your email. You can cancel subscription any time you want.