Lectures
- Message board is just available from Monday to Friday
Lectures will take place following the (tentative) schedule below.
Overall: The course is structured into three parts: covering fundamental concepts, underlying algorithms, and the development and maintenance of distributed systems.
PART1: BASIC - fundamental and core concepts: This part establishes key terminology, fundamental concepts, and underlying assumptions essential for developing distributed systems.
- Lecture 1 (09.02) - Course overview and fundamentals
- Lecture 2 (16.02) - System models
- Expected behavior and assumptions (Slides)
- (23.02) - No lecture :(
- National holiday
- Lecture 3 (02.03) - Communications: RPC and threads
- Concurrency and scheduling (Slides)
- Lecture 4 (09.03) - Time, clocks and ordering of events
- Computer synchronization and causality (Slides)
PART2: INTERMEDIATE - Underlying mechanisms and algorithms: This part focuses on understanding the mechanisms and algorithms that are underlying of any distributed system.
- Lecture 5 (16.03) - Logical time algorithms
- Broadcast algorithms, Lamport and vector clocks (Slides)
- Lecture 6 (23.03) - Coordination
- Election algorithms (Slides)
- Lecture 7 (31.03) - Replication
- Quorum (Slides)
- Mid term exam (Beginning of April - To be specified)
- The exam covers content from Lectures 1 to 7.
- It will take place from 10:15 to 12:00 and will start sharply (Please be on time)
- The exam is written and closed-book, requiring both text-based answers and diagrams.
- Quizzes are available to reinforce your understanding and help you reflect on the key principles and core concepts covered in the exam.
- Exam questions require to apply concepts over specific defined problems. Same as exercises done in class during lectures.
- Lecture 8 (13.04) - Consistency
- Consistency models (Slides)
- Lecture 9 (20.04) - Consensus
- Paxos, Raft and Chain replication (Slides)
- Lecture 10 (27.04) - Distributed transactions
- ACID, isolation, serializability, and linearizability (Slides)
PART3: ADVANCED - System Development and Operationalization: This section focuses on designing, deploying, and ensuring the maintainability of your distributed system.
- Lecture 11 (04.05) - Modern system architectures This lecture will be delivered in room 1021
- Lecture 12 (11.05) - Scalability
- Functional decomposition, partitioning and duplication (Slides)
- Lecture 13 (18.05) - Monitoring
- Lecture 14 (25.05) - Planning
- System performance metrics (Slides)
EVALUATION
Please register in ÕIS for the final/resit exam!
- Final exam - general information: Exams are on-site and closed book. Please register to the exam in õis2.
- The exam covers content from Lectures 8 to 14
- It will start sharply, please check the exam time when registering via õis2
- Quizzes are available to reinforce your understanding and help you reflect on the key principles and core concepts covered in the exam.
- Exam questions require to apply concepts over specific defined problems. Same as exercises done in class during lectures.
Dates
- Two options in June, and one resit