The goal of this course is to introduce basic knowledge to understand how modern distributed systems operate. Our focus will be on distributed algorithms and on practical aspects that should be considered when designing and implementing real systems. Some topics that will be covered are causality and logical clocks, synchronization and coordination algorithms, transactions and replication, and end-to-end system design. Although students will need to learn various distributed algorithms, this is not only a theoretical course. Thus, computer based assignments will be used extensively so that students will gain practical experience designing and implementing real systems. In addition the course will explore recent trends exemplified by current highly available and reliable distributed systems.
Univ: To be admitted you must have (or equivalent) 90 ECTS-credits including 60 ECTS-credits in Computing Science or two years of completed studies within a study programme (120 ECTS-credits). In both cases, including at least 7.5 ECTS-credits in operating systems (e.g. 5DV171) and at least 7.5 ECTS-credits on bechelor level in computer networks, (e.g. 5DV166).
Proficiency in English equivalent to Swedish upper Secondary course English A/5. Where the language of instruction is Swedish, applicants must prove proficiency in Swedish to the level required for basic eligibility for higher studies.