Readings by Class

Author
Affiliation

Neil Ernst

University of Victoria

Published

September 22, 2026

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