CPEN 431

Design of Distributed Software Applications

Communications, processes, naming, synchronization, consistency and replication, fault tolerance, object-based middleware, and security technologies for distributed applications. [3-2-0]

4 credits

Course Outline

CPEN 431 (Design of Distributed Software Applications) is an introductory course in distributed systems (fourth year undergraduate elective). The goal of this course is to providing students with theoretical knowledge and hands-on experience to design, implement, and analyze distributed systems and applications. Where possible and appropriate we will use examples from modern distributed systems such as peer-to-peer systems, distributed gaming, and distributed file systems to illustrate concepts discussed in class.

The students are expected to learn key principles of modern distributed systems (e.g., wide area communication, naming, synchronization, consistency and replication, fault tolerance, security) and gain hands-on experience with “live” large-scale systems.


“Distributed Systems: Principles and Paradigm” By Andrew S. Tanenbaum, Maarten van Steen. Publisher: Prentice Hall; 2nd edition


ONE of
CPEN 331 – Operating and File Systems
CPSC 313 – Computer Hardware and Operating Systems
CPEN 221 – Principles of Software Design
CPSC 210 – Software Construction


ONE of
ELEC 331 – Computer Communications
CPSC 317 – Internet Computing

More Information 

UBC Course Page