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.
- 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.
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.
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.
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
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.
Further information about the course and studying
Contact person for applications