This course introduces students to the design of small subsystems, typically comprising 5-15 classes, which in turn are used as parts of larger software systems. A key focus of the course is on the identification and application of appropriate design patterns in the context of the overall subsystem goals. In addition, students are introduced to principles and techniques for assessing design quality and for making informed tradeoffs among competing design goals.
| Week | Session | Date | Due | Reading | Topic |
| 1 | 1st | 3/13 | GOF Chap. 1 and 2; Appendix B |
Unit 1 Course Overview; Design Principles; Design Problem | |
| 2nd | 3/15 | Unit 1 Design problem discussions; Language Preferences due Friday | |||
| 2 | 1st | 3/20 | GOF sections for unit patterns | Unit 2 Adapter, Facade, Iterator, Observer, Singleton, Strategy, Template Method Unit overview; Team formation and unit planning |
|
| 2nd | 3/22 | Unit 2 Team Time | |||
| 3 | 1st | 3/27 | Unit 2 Team Time | ||
| 2nd | 3/29 | Unit 2 Questions | Unit 2 Team Time | ||
| 4 | 1st | 4/3 | Mid-term Exam released | Unit 2 Team Time | |
| 2nd | 4/5 | Unit 2 Designs; Peer Evals |
Unit 2 Design presentations | ||
| 5 | 1st | 4/10 | Mid-term Course Feedback | GOF sections for unit patterns | Unit 2 Quiz; Unit 3 overview: Builder, Command, Composite, Decorator, Factory Method, Visitor |
| 2nd | 4/12 | Unit 3 Team Time | |||
| 6 | 1st | 4/17 | Unit 3 Questions | Unit 3 Team Time | |
| 2nd | 4/19 | Mid-term Exam | Unit 3 Team Time | ||
| 7 | 1st | 4/24 | Unit 3 Team Time | ||
| 2nd | 4/26 | Unit 3 Designs; Peer Evals |
Unit 3 Design presentations | ||
| 8 | 1st | 5/1 | GOF sections for unit patterns | Unit 3 Quiz; Unit 4 overview: Abstract Factory, Interpreter, Mediator, Memento, Proxy, State |
|
| 2nd | 5/3 | Refactoring; Unit 4 Team Time |
|||
| 9 | 1st | 5/8 | Unit 4 Questions | Anti-patterns; Unit 4 Team Time |
|
| 2nd | 5/10 | Unit 4 implementation choice approved by instructor | Course evaluations; Unit 4 Team Time |
||
| 10 | 1st | 5/15 | Unit 4 Quiz; Unit 4 Team Time |
||
| 2nd | 5/17 | Unit 4 Designs; Peer Evals |
Unit 4 Design presentations | ||
| Finals | 5/23 | 12:30 - 2:30 | 70-3560 | Final Exam - open textbook and course notes |
![]()
The following are some resources for information about patterns:
![]()