Readings by Class
Complete each reading before the class listed. An em dash means that no advance reading is assigned. Textbook links refer to Martin P. Robillard, Introduction to Software Design with Java, 3rd edition.
| Date | Class topic | Reading due |
|---|---|---|
| Wed, Sep 9 | Introduction and what is design | Chapter 1: Introduction |
| Fri, Sep 11 | Abstraction and encapsulation | Chapter 2, overview and Sections 2.1–2.3 |
| Tue, Sep 15 | Requirements and project overview (asynchronous) | Project exercise document; requirements notes; review Chapter 1 |
| Wed, Sep 16 | Guest lecture: the role of AI in software engineering | — |
| Tue, Sep 22 | Types, classes, and visibility | Chapter 2, especially Sections 2.4–2.9 |
| Wed, Sep 23 | Interfaces, polymorphism, and design patterns | Chapter 3 |
| Fri, Sep 25 | Ethics in software engineering | Section 1: General Ethical Principles, ACM Code of Ethics |
| Tue, Sep 29 | Class diagrams as design tools | Review Chapter 3, especially Section 3.3 |
| Fri, Oct 2 | State and state diagrams | Chapter 4, Sections 4.1–4.3 |
| Tue, Oct 6 | Identity, equality, Singleton, and global access | Chapter 4, Sections 4.4–4.8 |
| Wed, Oct 7 | JUnit, Gradle, and test qualities | Chapter 5, Sections 5.1–5.6 |
| Fri, Oct 9 | Stubs, dependency injection, and coverage | Chapter 5, Sections 5.7–5.9; review Chapter 3, Section 3.8 |
| Tue, Oct 13 | Composition and Composite | Chapter 6, Sections 6.1–6.3 |
| Wed, Oct 14 | Decorator and Command | Chapter 6, Sections 6.4–6.8 |
| Fri, Oct 16 | Sequence diagrams and the Law of Demeter | Review Chapter 6, Sections 6.3 and 6.9 |
| Wed, Oct 21 | Inheritance, subtypes, Template Method, and composition | Chapter 7, Sections 7.1–7.10 |
| Fri, Oct 23 | Code smells and refactoring | Chapter 7, Section 7.11; review Chapter 5 |
| Tue, Oct 27 | Midterm review | Review Chapters 2–7, especially the Insights sections |
| Wed, Oct 28 | Midterm | Review the material listed above |
| Fri, Oct 30 | AI-assisted assignment workflow | AI and design notes; A4–A6 expectations |
| Tue, Nov 3 | Midterm review and common design gaps | Targeted review of weak areas identified on the midterm |
| Wed, Nov 4 | Inversion of control, Observer, and MVC | Chapter 8, Sections 8.1–8.4 |
| Fri, Nov 6 | AI-assisted requirements critique | Requirements notes; AI and design notes; A4 expectations |
| Tue, Nov 17 | GUI and event handling | Chapter 8, Sections 8.5–8.7 |
| Wed, Nov 18 | Visitor pattern | Chapter 8, Section 8.8 |
| Fri, Nov 20 | Functional interfaces as design tools | Chapter 9, Sections 9.1–9.5 |
| Tue, Nov 24 | Streams and declarative design | Chapter 9, Section 9.6; review the Chapter 9 Insights |
| Wed, Nov 25 | AI and design | AI and design notes; review the textbook chapters most relevant to your team’s A5 design revision |
| Fri, Nov 27 | Deployment readiness | Deployment notes; A6 expectations |
| Tue, Dec 1 | Deployment as design | Deployment notes; A6 expectations |
| Wed, Dec 2 | Course wrap-up | Review your project reflections and the Insights sections from Chapters 1–9 |
| Fri, Dec 4 | Final review | Review all chapters and your project artifacts |