Appearance
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
| Due | Date | What |
|---|---|---|
| D1 | Fri 25 Sep, 18:00 | Drop in a feature (solo) |
| D2 | Fri 16 Oct, 18:00 | Make it testable (solo) |
| Midterm | Thu 29 Oct, 19:00–21:00 | In person, paper. Covers through Thu 15 Oct |
| Pairs form | During the Oct 16–22 lab | Register with your TA, same lab section |
| D3 | Fri 6 Nov, 18:00 | Design v3 (pairs) |
| D4 | Fri 27 Nov, 18:00 | Build it (pairs) |
| Final | Scheduled by the university | 2.5 hours, cumulative |
🗓️ Week by week
| Wk | Dates | Unit | Lectures | Lab | Due |
|---|---|---|---|---|---|
| 1 | Sep 8, 10 | Unit 1 | (no Tuesday class) · The cost of change | Lab 1 — Onboarding (Sep 11–17) | — |
| 2 | Sep 15, 17 | Measuring a change · Cohesion & connascence | Lab 2 — cohesion & connascence (Sep 18–24) | — | |
| 3 | Sep 22, 24 | Refactoring as a discipline · Polymorphism & LSP | Lab 3 — refactoring & LSP (Sep 25–Oct 1) ⚠ Wed Sep 30 | D1 Fri Sep 25 | |
| 4 | Sep 29, Oct 1 | What makes code testable · Seams & dependency inversion | Lab 4 — testability & seams (Oct 2–8) | — | |
| 5 | Oct 6, 8 | Patterns: Adapter & Composite · Patterns: Factory & Decorator | Lab 5 — design patterns (Oct 9–15) ⚠ Mon Oct 12 | — | |
| 6 | Oct 13, 15 | Unit 2 | Layered architecture · The testing pyramid | Lab 6 — layers, test strategy & code review (Oct 16–22) | D2 Fri Oct 16 |
| 7 | Oct 20, 22 | API design · Evolving a published API | Lab 7 — API design & evolution — ungraded (Oct 23–29) | — | |
| 8 | Oct 27, 29 | — | Pricing a change — synthesis & midterm review · (no Thursday class) | Project time — team check-in (Oct 30–Nov 5) | Midterm Thu Oct 29 |
| 9 | Nov 3, 5 | Unit 3 | Where requirements come from · Ethics & IP | No lab — fall break (Nov 9–11) | D3 Fri Nov 6 |
| 10 | Nov 10, 12 | (no Tuesday class) · Information security | Lab 8 — requirements & constraints (Nov 13–19) | — | |
| 11 | Nov 17, 19 | Specification & modeling · Specification is Right | Lab 9 — specification (Nov 20–26) | — | |
| 12 | Nov 24, 26 | Unit 4 | Continuous integration · How teams coordinate | Lab 10 — process & metrics — ungraded (Nov 27–Dec 3) | D4 Fri Nov 27 |
| 13 | Dec 1, 3 | Process 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 want | Go to |
|---|---|
| Slides from a specific lecture | This page — click the lecture title |
| Supporting material for a lecture | The unit page — click the Unit column |
| A lab assignment | This page — the Lab column |
| A project deliverable spec | Project |
| Deadlines, weights, policies | Syllabus |