Course syllabus adopted 2024-01-26 by Head of Programme (or corresponding).
Overview
- Swedish nameDistribuerade system
- CodeTDA596
- Credits7.5 Credits
- OwnerMPCSN
- Education cycleSecond-cycle
- Main field of studyComputer Science and Engineering, Software Engineering
- DepartmentCOMPUTER SCIENCE AND ENGINEERING
- GradingTH - Pass with distinction (5), Pass with credit (4), Pass (3), Fail
Course round 1
- Teaching language English
- Application code 12122
- Block schedule
- Open for exchange studentsYes
Credit distribution
Module | Sp1 | Sp2 | Sp3 | Sp4 | Summer | Not Sp | Examination dates |
---|---|---|---|---|---|---|---|
0107 Examination 6 c Grading: TH | 6 c |
| |||||
0207 Laboratory 1.5 c Grading: UG | 1.5 c |
In programmes
- MPCSN - COMPUTER SYSTEMS AND NETWORKS, MSC PROGR, Year 1 (compulsory)
- MPDSC - DATA SCIENCE AND AI, MSC PROGR, Year 1 (elective)
- MPDSC - DATA SCIENCE AND AI, MSC PROGR, Year 2 (elective)
- MPHPC - HIGH-PERFORMANCE COMPUTER SYSTEMS, MSC PROGR, Year 1 (elective)
- MPHPC - HIGH-PERFORMANCE COMPUTER SYSTEMS, MSC PROGR, Year 2 (elective)
- MPSOF - SOFTWARE ENGINEERING AND TECHNOLOGY, MSC PROGR, Year 2 (elective)
- TIDAL - COMPUTER ENGINEERING - Common branch of study, Year 3 (compulsory elective)
- TKITE - SOFTWARE ENGINEERING, Year 3 (elective)
Examiner
- Romaric Duvignau
- Associate Professor, Computer and Network Systems, Computer Science and Engineering
Eligibility
General entry requirements for Master's level (second cycle)Applicants enrolled in a programme at Chalmers where the course is included in the study programme are exempted from fulfilling the requirements above.
Specific entry requirements
English 6 (or by other approved means with the equivalent proficiency level)Applicants enrolled in a programme at Chalmers where the course is included in the study programme are exempted from fulfilling the requirements above.
Course specific prerequisites
This course has the same prerequisites as the Master Program in Computer Systems and Networks. Thus, a student should have taken a course in computer communication or computer networks (or equivalent) including the TCP/IP protocol stack and have programming experience. In addition, a course in operating systems or concurrent programming (or equivalent) is required.Aim
Why are computing systems becoming increasingly distributed? How can we build reliable and fault-tolerant distributed systems? Why does the Internet scale to billions of users? How are modern distributed systems such as the cloud, the smart grid, or connected cars built? These are a few questions that our course on distributed systems addresses. The goal of the courses is to understand the design of distributed systems and discuss the underlying principles and mechanisms that drive today's distributed systems. Our lectures provide you with the required fundamentals, and our labs give you a hands-on experience in developing distributed systems and exploring their real-world challenges.Learning outcomes (after completion of the course the student should be able to)
1. Knowledge and understanding- Recall and apply knowledge of basic concepts of distributed systems and their challenges, naming and synchronization of systems, consistency and replication, and fault tolerance in distributed systems.
- Describe applications of distributed systems and the mechanisms these use to provide their services.
- Discuss and analyze the challenges and requirements that the different approaches have.
- Compare and summarize the strengths and weaknesses associated with the individual mechanisms.
- Develop and evaluate small-scale distributed systems using fundamental mechanisms introduced in the lectures.
- Showcase the ability to independently acquire the necessary knowledge and adeptly collaborate with peers to design and develop small-scale distributed systems.
- Demonstrate software developments in advanced settings including unreliable links and systems as well as limited bandwidth.
- Demonstrate lab results in oral and written presentation.
- Describe and analyze existing and new methods for distributed systems design. In particular, the systems' ability for scalability and fault tolerance.
- Discuss and value the social and ethical aspects of distributed systems and their applications.
Content
We begin the course with an introduction to the basic concepts of distributed systems and the challenges they pose. After that, we revisit the required background in communication systems and operating systems. We continue with the main course content and focus on:- Naming
- Mutual Exclusion and Election
- Clocks and Time
- Consistency and Replication
- Fault Tolerance in Distributed Systems
- Selected Applications in Distributed Systems
Organisation
Lectures and laboratory assignments.Literature
Andrew S. Tanenbaum, Marten van Steen, "Distributed Systems - Principles and Paradigms", PearsonExamination including compulsory elements
In order to be approved for the course, the compulsory laboratory part must be approved and a required total number of points must be reached (adding points from the laboratory work and a written exam). Based on the final number of points obtained, grades U, 3, 4 or 5 are given.The course examiner may assess individual students in other ways than what is stated above if there are special reasons for doing so, for example if a student has a decision from Chalmers on educational support due to disability.