In this course, students will learn the fundamentals of distributed systems programming by building on top of the open auction platform we previously created in the Web Development section. Module 1 serves as an intro to this unit, providing a primer for Distributed Systems by reviewing distribution transparency and distributed time. Module 2 introduces students to the idea of "locking", borrowed from database management systems, which ensures that users cannot simultaneously bid on the same auction. In Module 3, students implement a feature that ensures bids are processed in the correct order. Finally, in Module 4 students explore how they can maintain bid "secrecy" in a distributed system through the use of hashing.