Skip to content

Schedule ​

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 22 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 ​

Dates and topics subject to change!

WkDatesUnitLecturesLabDue
1Sep 8, 10Unit 1(no Tuesday class) Β· IntroductionLab 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 Β· Test Doubles & dependency inversionLab 4 β€” testability & seams (Oct 2–8)β€”
5Oct 6, 8Unit 2Patterns: Adapter & Composite Β· Patterns: Factory & DecoratorLab 5 β€” design patterns (Oct 9–15) ⚠ Mon Oct 12β€”
6Oct 13, 15API Change severity & versioning Β· API designLab 6 β€” API design & evolution & code review (Oct 16–22)D2 Fri Oct 16
7Oct 20, 22The testing pyramid Β· Layered architectureLab 7 β€” layers, test strategy (Oct 23–29)β€”
8Oct 27, 29β€”Module 1 & 2 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 (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.

Course reader licensed under CC BY-SA 3.0.