Reference and Selective Reading
Use lessons and independent practice first. The reading guide provides exact local locators for selected consulted excerpts and stopping evidence. The links below lead to book indexes, not promised chapter or exercise destinations. Full-book reading is optional and adds to the estimated module workload.
Source roles and topic map
| Source | Topics to locate | Evidence to produce |
|---|---|---|
| Refactoring, Martin Fowler: book index | Defining refactoring; code smells; architecture and YAGNI | Separate observation, hypothesis, candidate move and intentional behavior change |
| Good Code, Bad Code, Tom Long: book index | Interfaces, code contracts, inheritance, dependency injection | A consumer-owned role and a violating subtype example |
| Clean Code, Robert C. Martin: book index | Naming, functions, comments, classes and cohesion | Compare a heuristic against observable behavior and a justified keep decision |
| Head First Design Patterns, Freeman and Robson: book index | Loose coupling, composition, OCP and SRP | Compare two extension axes; leave the pattern catalogue for Modules 3–4 |
| Object-Oriented Analysis, Design and Implementation, Dathan and Ramnath: book index | Information hiding, cohesion, coupling and subtype reasoning | State assumptions and a concrete client contract |
| Design Patterns, Gamma et al.: book index | Design for change, delegation and interface inheritance | Explain a design cost without requiring a pattern implementation |
| Structure and Interpretation of Computer Programs: book index | Abstraction barriers and procedural abstraction | Identify the representation decision hidden from a caller |
These are targeted reading assignments, not a claim that every listed book or its generated chapter mapping has received a full audit. The first two books supplied selected excerpts for this upgrade. Compare author viewpoints; a smell name or a book recommendation is not proof that a particular change is beneficial.
New lesson connections
For state contracts, ownership and compatibility, use the design contracts, worked examples and three experiments. The reading guide also links primary material on behavioral subtyping, Java collection guarantees and YAGNI. Use sources to resolve a named gap, then close them and defend a new case.