~/fsgeek.ca

CPSC 416 Winter 2025 Term 2

This was my third offering of Distributed Systems (CPSC 416), January to April 2026 (UBC calls it Winter 2025 Term 2). The first offering (January to April 2023) used autograded labs and a proctored final exam. The second (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):