1 · 300 Level 2 · Second Semester 3 · CSC302 4 · Details
Core300 LevelSecond SemesterNetworks & Distributed Systems
CSC302

Distributed Systems

Course Description

Distributed Systems covers what changes when a program's components run on different machines that can fail or fall out of sync independently: consistency, replication, and consensus. The course treats failure as the normal case, not the exception.

Learning Outcomes
  • Explain the core challenges distributed systems face that single-machine systems don't.
  • Reason about consistency models and their trade-offs.
  • Explain the basic principles of consensus and replication.
  • Design a simple fault-tolerant component.
Weekly Topics
Examines why distributed systems are hard from a practical angle, using a case drawn from real systems to motivate the concepts.
Builds directly on the previous week to extend time & ordering, with an emphasis on where the earlier techniques stop working.
Combines a short lecture on replication with an in-class exercise students carry into the week's assignment.
Focuses on common mistakes and misconceptions around consistency models, using student work from the previous assignment as material.
Introduces consensus fundamentals and immediately puts it to use in a small design or implementation task.
Situates fault tolerance within the broader arc of the course, showing how it connects to what comes next.
Uses a guest dataset or scenario to explore mid-semester review in a setting closer to professional practice.
Introduces distributed storage through short lectures and worked examples, building the vocabulary the rest of the course relies on.
Works through distributed transactions in a lab-driven session, with guided exercises students complete and discuss in small groups.
Covers load balancing in depth, connecting the underlying theory to a concrete example the class builds together.
Examines case studies in distributed systems from a practical angle, using a case drawn from real systems to motivate the concepts.
Builds directly on the previous week to extend design project, with an emphasis on where the earlier techniques stop working.
Combines a short lecture on revision with an in-class exercise students carry into the week's assignment.
Assessment
Assignments — 20%
Practical Work — 25%
Mid-Semester — 20%
Final Examination — 35%
Prerequisite Map
CSC206 Operating Systems CSC303 Computer Networks CSC302 Distributed Systems CSC401 Capstone Project I CSC403 Cloud Computing & Systems at Scale
Related Courses