~/fsgeek.ca

Syllabus (Winter 2025 Term 2)

This syllabus is intentionally concise and is a living document. The course is organized around failure-first distributed systems design and evidence-bearing work (including required GenAI use with an evidence chain).

Logistics

  • Meeting: Tue/Thu 11:30–13:00 (Pacific)
  • Location: CEME 1202
  • Discord: cpsc416-w25t2
  • Teaching team: TA contact info and office hours
  • Reading week: no meetings Tue/Thu 2026-02-17 and 2026-02-19
  • Final week meetings: Tue/Thu 2026-04-07 and 2026-04-09 (low-risk reviews/demos)

Assessment

Assessment is designed to reward steady engagement and to heavily value capstone work.

  • Completion Skills: 55% (completion-graded weekly work; includes DP1/DP2 design/peer review/implementation/reflection as completion items with formative feedback)
  • Capstone: 45% (milestoned, evidence-bearing, de-risked by intermediate deliverables)

Due time conventions (Pacific)

  • Weekly/self-assessment activities: due at start of the next class (11:30 PT)
  • Major deliverables: due at 23:59 PT

Add/drop grace (first two weeks)

To accommodate late add/drop enrollments, items due before 2026-01-17 remain open until 2026-01-20 11:30 PT. Submissions may be marked “late” by Canvas, but they are not penalized within this window.

Self-assessments: availability

Self-assessments unlock at 13:00 PT (end of the lecture they relate to) and are due before the next lecture.

GenAI, evidence chain, and integrity

Readings and lecture spine

Textbooks: the two core books are O’Reilly titles and are available electronically to UBC students at no additional charge (via the UBC Library’s O’Reilly platform): UBC Library — O’Reilly for Higher Education (log in). See Readings for the chapter mapping.

Formal modeling (lightweight)

We use TLA+ (and optionally PlusCal) as a tool to reason about failure-first properties and to produce concrete counterexamples when a design is wrong.