Appearance
Course materials
Software is always growing:we expect to modify it for as long as anyone uses it. Our units address this problem at different spheres in modern software engineering: in low level code design, high level software architecture, then reaching into the real world of requirements and how the software itself is built.
| Unit | Weeks | Scale | What's different |
|---|---|---|---|
| Unit 1 — Design in the small | 1–5 | Inside a codebase you own | Every caller is in your diff. Measure a change, name what makes it expensive, repair it safely, make it testable. |
| Unit 2 — Layers & interfaces | 6–7 | At its boundaries | The same discipline at module scale (layers), then at a contract you've published and can no longer move |
| Unit 3 — Requirements & specification | 9–11 | Before the code exists | Where the thing you're building comes from, and how to say what it must do precisely enough to check |
| Unit 4 — Software process | 12–13 | Across a team | How several people change one codebase without breaking each other, and what has to be automated for that to hold |