COEN6731 Winter 2026
Distributed Software Systems

General Information
Course description
Welcome to COEN 6731: Distributed Software Systems! Distributed systems form the backbone of many essential services that we rely on every day, from healthcare and banking to financial services and online platforms.
In this course, we will explore foundational concepts in distributed systems, including concurrency, security, fault tolerance, networking principles, remote procedure calls (RPC), peer-to-peer architectures, coordination and agreement protocols, MapReduce frameworks, distributed transactions, and data replication. By understanding these core principles, students will gain the necessary skills to design and build reliable, scalable, and secure distributed applications.
This year, COEN 6731 will feature a special focus on blockchain technologies, a transformative innovation that is reshaping industries worldwide. We will examine the key building blocks of blockchain systems, with a particular emphasis on consensus mechanisms and fault tolerance. Through this focus, students will gain insights into how blockchain technologies are applied across various domains and understand the challenges of achieving trust and coordination in distributed environments.
When and where
Lectures
-
Time: Wednesday 5:45pm-8:15pm
-
Location: MB S2.285 SGW
Course requirements
Marking scheme
-
Presentations and deliverables (30%)
-
In-class presentation
-
Slides
-
-
Participation and discussion (10%)
-
Course project (60%)
-
Proposal one pager and presentation (10%)
-
Progress report presentation (5%)
-
Final presentation and demo (20%)
-
Final report (25%)
-
Presentation and deliverables
TBA (in Week 2)
Course project
The primary objective of the course project is to enable students to demonstrate their ability to research, design, and implement a well-scoped problem in the area of distributed systems. Emphasis is placed on the application of a sound research methodology throughout the entire project lifecycle, including problem formulation, system design, implementation, evaluation, and analysis. Check the detailed description here.
Timeline:
-
Proposal presentation: Feb 11th, 11:59pm
-
Midterm presentation: Feb 25th
-
Final presentation: April 8th, lecture time
-
Final report: April 13th, 11:59pm
Lecture
Schedule
This is a tentative schedule, which will likely change as the course goes on.
Week 1
-
Topics: Introductions, fundamentals, and time in DS.
-
Lecture: [Slides]
-
CS50 Lecture by Mark Zuckerberg
-
Week 2
Week 3
-
Topics: RPCs and Raft
-
Raft: https://raft.github.io/
-
Weighted Voting for leader election: [Escape]
-
-
Lecture: [Slides]
Week 4
-
Topics: Blockchains, Byzantine fault tolerance (Proof-of-Work and PBFT)
-
Lecture:
Week 5
-
Topics: Cabinet and demo [Paper]
-
Project proposal presentation
Week 6
-
Topics: MapReduce
-
Google MapReduce [Paper]
-
Week 7 (Paper Presentations)
-
Topics
-
TBA
-
Week 8
-
Topics
-
TBA
-
-
Project midterm progress presentations
Week 9
-
Topics
-
TBA
-
Week 10
-
Topics
-
TBA
-
Week 11
-
Topics
-
TBA
-
Week 12
-
Final course remarks
-
Final project presentations and demos
Course
Policies
Notice of video recording and sharing
At times during this course, some interactions including students’ participation, may be recorded on video. Course videos and materials belong to the instructors, the University, and/or other sources depending on the specific facts of each situation, and are protected by copyright. For questions about recording and use of videos in which you appear please contact your instructor.
