Credits: 5

Schedule: 12.09.2017 - 14.12.2017

Teaching Period (valid 01.08.2018-31.07.2020): 

I - II (Autumn)

Learning Outcomes (valid 01.08.2018-31.07.2020): 

After this course, you will be able to design and analyse efficient distributed algorithms for many different kinds of problems that are related to computer networks and other distributed systems. You will also know how to prove that your algorithm is as fast as possible, i.e., the same problem cannot be solved faster with any distributed algorithm. You will be able to use reductions between computational problems in the context of distributed computing, construct covering relations between graphs in order to prove impossibility results, and apply Ramsey’s theorem to prove lower bounds on distributed time complexity.

Content (valid 01.08.2018-31.07.2020): 

This course provides an introduction to the theory of distributed algorithms. The topics include algorithmic techniques that can be used to solve graph problems efficiently in extremely large networks, as well as fundamental impossibility results that set limits to distributed computing.

Assessment Methods and Criteria (valid 01.08.2018-31.07.2020): 

Exams and exercises.

Study Material (valid 01.08.2018-31.07.2020): 

Available online.

Substitutes for Courses (valid 01.08.2018-31.07.2020): 

ICS-E5020 Distributed Algorithms

Prerequisites (valid 01.08.2018-31.07.2020): 

Bachelor’s degree in computer science (or equivalent). No prior knowledge of distributed systems is needed, but students are expected to have an interest in algorithmic problems and a basic knowledge of discrete mathematics.

Grading Scale (valid 01.08.2018-31.07.2020):