Skip to content

Schedule

This page answers when. For what the course covers and why it's ordered this way, see the course materials overview. Full policies are in the Syllabus.

Lectures are Tuesday and Thursday on the dates listed below. Slides are posted before each lecture, linked from the lecture title. Readings live on the unit pages, linked from the Unit column.

Lab blocks run Friday to Thursday, starting Friday September 11 (week 1). Each assignment is due at the start of your next lab, which is one week later for every section. The full lab policy is in the Syllabus.

📌 At a glance

DueDateWhat
D1Fri 25 Sep, 18:00Drop in a feature (solo)
D2Fri 16 Oct, 18:00Make it testable (solo)
MidtermThu 29 Oct, 19:00–21:00In person, paper. Covers through Thu 15 Oct
Pairs formDuring the Oct 16–22 labRegister with your TA, same lab section
D3Fri 6 Nov, 18:00Design v3 (pairs)
D4Fri 27 Nov, 18:00Build it (pairs)
FinalScheduled by the university2.5 hours, cumulative

🗓️ Week by week

WkDatesUnitLecturesLabDue
1Sep 8, 10Unit 1(no Tuesday class) · The cost of changeLab 1 — Onboarding (Sep 11–17)
2Sep 15, 17Measuring a change · Cohesion & connascenceLab 2 — cohesion & connascence (Sep 18–24)
3Sep 22, 24Refactoring as a discipline · Polymorphism & LSPLab 3 — refactoring & LSP (Sep 25–Oct 1) ⚠ Wed Sep 30D1 Fri Sep 25
4Sep 29, Oct 1What makes code testable · Seams & dependency inversionLab 4 — testability & seams (Oct 2–8)
5Oct 6, 8Patterns: Adapter & Composite · Patterns: Factory & DecoratorLab 5 — design patterns (Oct 9–15) ⚠ Mon Oct 12
6Oct 13, 15Unit 2Layered architecture · The testing pyramidLab 6 — layers, test strategy & code review (Oct 16–22)D2 Fri Oct 16
7Oct 20, 22API design · Evolving a published APILab 7 — API design & evolution — ungraded (Oct 23–29)
8Oct 27, 29Pricing a change — synthesis & midterm review · (no Thursday class)Project time — team check-in (Oct 30–Nov 5)Midterm Thu Oct 29
9Nov 3, 5Unit 3Where requirements come from · Ethics & IPNo lab — fall break (Nov 9–11)D3 Fri Nov 6
10Nov 10, 12(no Tuesday class) · Information securityLab 8 — requirements & constraints (Nov 13–19)
11Nov 17, 19Specification & modeling · Specification is RightLab 9 — specification (Nov 20–26)
12Nov 24, 26Unit 4Continuous integration · How teams coordinateLab 10 — process & metrics — ungraded (Nov 27–Dec 3)D4 Fri Nov 27
13Dec 1, 3Process metrics · GenAI & where the cost moves

Labs are cancelled on Wednesday September 30th and Monday October 12th. You may attend any other lab section if your section is cancelled. Lab assignments are still due by your next regularly scheduled lab.

Where things live

You wantGo to
Slides from a specific lectureThis page — click the lecture title
Supporting material for a lectureThe unit page — click the Unit column
A lab assignmentThis page — the Lab column
A project deliverable specProject
Deadlines, weights, policiesSyllabus

Course reader licensed under CC BY-SA 3.0.