# CPSC 416 Winter 2025 Term 2

2026-10-08 · https://fsgeek.ca/teaching/cpsc-416-winter-2025-term-2/

This was my third offering of [Distributed Systems (CPSC 416)](https://courses.students.ubc.ca/cs/courseschedule?pname=subjarea&tname=subj-course&dept=CPSC&course=416), January to April 2026 (UBC calls it Winter 2025 Term 2). The [first offering](/teaching/cpsc-416-winter-22-term-2/) (January to April 2023) used autograded labs and a proctored final exam. The [second](/teaching/cpsc-416-winter-2023-term-1/) (September to December 2023) replaced them with design projects and a capstone. This one assumed generative AI from the first day: its use was expected and had to be disclosed (a student who objected could opt out by documenting their non-use instead), and the course was organized so that a polished artifact was never enough on its own; every significant claim needed an evidence trail.

Two lenses ran through the term. _Failure first_ : start from the failure, then derive the mechanism that prevents or recovers from it. _Optimization and Goodhart_ : a metric is a projection, and optimizing for it can erase what it was meant to measure. That turns out to apply to distributed protocols and to AI-assisted work in much the same way.

Course materials, as they were published to students (Canvas-only links have been removed):

  * [Syllabus](/teaching/cpsc-416-winter-2025-term-2/syllabus/)
  * [Using GenAI in this course without Goodharting it](/teaching/cpsc-416-winter-2025-term-2/genai-without-goodharting/)
  * [Assessment and the evidence chain](/teaching/cpsc-416-winter-2025-term-2/assessment-and-evidence/)
  * [Course rhythm](/teaching/cpsc-416-winter-2025-term-2/course-rhythm/)
  * [Lecture spine](/teaching/cpsc-416-winter-2025-term-2/lecture-spine/)
  * [Lectures (slides)](/teaching/cpsc-416-winter-2025-term-2/lectures/)
  * [Readings](/teaching/cpsc-416-winter-2025-term-2/readings/)
  * [Design projects](/teaching/cpsc-416-winter-2025-term-2/design-projects/)
  * [Capstone](/teaching/cpsc-416-winter-2025-term-2/capstone-overview/)
  * [TLA+ / PlusCal track](/teaching/cpsc-416-winter-2025-term-2/tla-pluscal-track/)

- [Assessment and the evidence chain](https://fsgeek.ca/teaching/cpsc-416-winter-2025-term-2/assessment-and-evidence/)
- [Capstone domains](https://fsgeek.ca/teaching/cpsc-416-winter-2025-term-2/capstone-domains/)
- [Capstone milestones](https://fsgeek.ca/teaching/cpsc-416-winter-2025-term-2/capstone-milestones/)
- [Capstone overview](https://fsgeek.ca/teaching/cpsc-416-winter-2025-term-2/capstone-overview/)
- [Course rhythm](https://fsgeek.ca/teaching/cpsc-416-winter-2025-term-2/course-rhythm/)
- [Design project 1: primary/backup](https://fsgeek.ca/teaching/cpsc-416-winter-2025-term-2/design-project-1-primary-backup/)
- [Design project 2: Paxos](https://fsgeek.ca/teaching/cpsc-416-winter-2025-term-2/design-project-2-paxos/)
- [Design projects](https://fsgeek.ca/teaching/cpsc-416-winter-2025-term-2/design-projects/)
- [Lecture spine](https://fsgeek.ca/teaching/cpsc-416-winter-2025-term-2/lecture-spine/)
- [Lectures (Winter 2025 Term 2)](https://fsgeek.ca/teaching/cpsc-416-winter-2025-term-2/lectures/)
- [Readings](https://fsgeek.ca/teaching/cpsc-416-winter-2025-term-2/readings/)
- [Syllabus (Winter 2025 Term 2)](https://fsgeek.ca/teaching/cpsc-416-winter-2025-term-2/syllabus/)
- [TLA+ / PlusCal track](https://fsgeek.ca/teaching/cpsc-416-winter-2025-term-2/tla-pluscal-track/)
- [Using GenAI in this course without Goodharting it](https://fsgeek.ca/teaching/cpsc-416-winter-2025-term-2/genai-without-goodharting/)
