COMP3026E Distributed Systems

Spring 2026, International Undergraduate Class

Course Instructor

Dr. James Jianqiao Yu 余剑峤

Course Description

Distributed Systems is a fundamental course for majors in computer science and software engineering, presenting the core principles, architectures, and engineering methods of modern distributed systems from the perspective of system designers and practitioners. The course focuses on the essential characteristics of distributed environments, namely, multiple processes, multiple nodes, and non-shared address spaces, and explains key issues in architecture design, data consistency, communication mechanisms, fault tolerance, and scalability, helping students build a holistic understanding of large-scale system coordination. Course topics include distributed system architectures, distributed time synchronization, socket communication and remote method invocation, group communication, mutual exclusion and election algorithms, replication and consistency models, network interconnection, and the Domain Name System. Through these topics, students will understand the challenges and solutions related to node coordination, event ordering, fault recovery, data replication, naming and lookup, and multi-node consistency in distributed environments, enabling them to analyze correctness, performance bottlenecks, scalability, and security risks from a system perspective, and to acquire the ability to design reliable, highly available, and large-scale distributed systems.

Logistics

Course Materials

There is no required text for this course. A reference textbook is “Distributed Systems: Concepts and Design” by George Coulouris, Jean Dollimore, Tim Kindberg and Gordon Blair. Lecture notes and other materials will be posted periodically on this page.

Coursework

There will be two written assignments and a final examination. We try very hard to make questions unambiguous, but some ambiguities may remain. Ask if confused or state your assumptions explicitly. Reasonable assumptions will be accepted in case of ambiguous questions.

Grade Breakdown

  • 20% Lecture participation
  • 20% Assignments
  • 60% Final exam

Schedule and Syllabus

Unless otherwise specified, the lectures are held twice a week: 14:00–15:45 on Tuesdays and 10:30–12:15 on Thursdays, both in Room H403. There will be a break in the middle of each lecture.

Date Topics
Week #1 Tuesday, Mar. 10 Overview
Week #1 Thursday, Mar. 12 Network & RPC
Week #2 Tuesday, Mar. 17 Time
Week #2 Thursday, Mar. 19 Distributed Snapshot
Week #3 Tuesday, Mar. 24 Consistency & Bayou
Week #3 Thursday, Mar. 26 P2P Systems & Chord
Week #4 Tuesday, Mar. 31 Replication State Machines
Week #4 Thursday, Apr. 2 View Change Protocols & Consensus
Week #5 Tuesday, Apr. 7 RAFT
Week #5 Thursday, Apr. 9 Consistency
Week #6 Tuesday, Apr. 14 Concurrency Control
Week #6 Thursday, Apr. 16 Spanner
Week #7 Tuesday, Apr. 21 Distributed Databases
Week #7 Thursday, Apr. 23 Blockchains
Week #8 Tuesday, Apr. 28 AI Systems & Performance
Week #8 Thursday, Apr. 30 Review