Spring 2026 - CMPT 431 D100

Distributed Systems (3)

Class Number: 5477

Delivery Method: In Person

Overview

  • Course Times + Location:

    Jan 5 – Apr 10, 2026: Thu, 2:30–5:20 p.m.
    Burnaby

  • Prerequisites:

    (CMPT 201 or CMPT 300) and CMPT 371, both with a minimum grade of C-.

Description

CALENDAR DESCRIPTION:

An introduction to distributed systems: systems consisting of multiple physical components connected over a network. Architectures of such systems, ranging from client-server to peer-to-peer. Distributed systems are analyzed via case studies of real network file systems, replicated systems, sensor networks and peer-to-peer systems. Hands-on experience designing and implementing a complex distributed system. Students with credit for CMPT 401 before September 2008 may not take this course for further credit.

COURSE DETAILS:

The course aims to provide an understanding of principles involved in designing modern parallel and distributed software systems. It focuses on the fundamentals of parallel algorithm design and parallel programming techniques by covering key concepts like concurrency, synchronization, consistency models and fault tolerance.

Topics

  • Principles of Parallel Algorithm Design
  • Shared Memory Programming
  • Distributed Memory Model & Programming
  • Consistency Models
  • Fault Tolerance
  • Scalable Analytics

Grading

NOTES:

Details about grading will be discussed in the first week of class.

REQUIREMENTS:

A solid foundation in discrete math, data structures, and computer organization, along with proficiency in C++ programming and a strong understanding of operating systems.

Materials

MATERIALS + SUPPLIES:

Reference Books

  • The Art of Multiprocessor Programming, Maurice Herlihy and Nir Shavit, Elsevier/Morgan Kaufmann, 2012, 9780123977953
  • Distributed Computing: Principles, Algorithms, and Systems, Ajay D. Kshemkalyani and Mukesh Singhal, Cambridge University Press, 2008, 9780511805318

REQUIRED READING NOTES:

Your personalized Course Material list, including digital and physical textbooks, are available through the SFU Bookstore website by simply entering your Computing ID at: shop.sfu.ca/course-materials/my-personalized-course-materials.

Department Undergraduate Notes:

The following are default policies in the School of Computing Science. Please check your course syllabus whether the instructor has chosen a different policy for your class, otherwise the following policies apply.
 
  • Students must attain an overall passing grade on the weighted average of exams in the course in order to get a C- or higher.
  • All student requests for accommodations for their religious practices must be made in writing by the end of the first week of classes, or no later than one week after a student adds a course. After considering a request, an instructor may provide a concession or may decline to do so. Students requiring accommodations as a result of a disability can contact the Centre for Accessible Learning (caladmin@sfu.ca).

Registrar Notes:

ACADEMIC INTEGRITY: YOUR WORK, YOUR SUCCESS

At SFU, you are expected to act honestly and responsibly in all your academic work. Cheating, plagiarism, or any other form of academic dishonesty harms your own learning, undermines the efforts of your classmates who pursue their studies honestly, and goes against the core values of the university.

To learn more about the academic disciplinary process and relevant academic supports, visit: 


RELIGIOUS ACCOMMODATION

Students with a faith background who may need accommodations during the term are encouraged to assess their needs as soon as possible and review the Multifaith religious accommodations website. The page outlines ways they begin working toward an accommodation and ensure solutions can be reached in a timely fashion.