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 |  | Topic | 
 | 
| 1 | 1st | GOF
  Chap. 1 and 2; | Unit
  1 Course Overview; Design Process; Two Design Principles; Design Problem | |
| 2nd |   | Unit
  1 Design problem discussions (Individual
  design due at start of class) | 
 | |
| 2 | 1st | GOF
  sections for unit patterns | Unit
  2 overview: Command, Composite, Facade, Iterator, Observer, Proxy, State, | 
 | 
| 2nd |   | Unit
  2; UML Review | 
 | |
| 3 | 1st |   | 
 | |
| 2nd |   | Unit
  2; Questions completed (Due
  at 11:59pm, on your class day)   | 
 | |
| 4 | 1st |   | 
 | |
| 2nd |   | Unit
  2 Designs/implementations presented (Due
  at 11:59pm, on your class day)   | 
 | |
| 5 | 1st |   GOF
  sections for unit patterns | «Unit 2 Quiz» | 
 | 
| 2nd |   | Unit
  3; Unit planning, Unit 3 impacts | 
 | |
| 6 | 1st |   | Unit
  3; MVC exercise | 
 | 
| 2nd |   | Unit
  3;  Anti-patterns | 
 | |
| 7 | 1st |   | Unit
  3; State vs
  Strategy exercise | 
 | 
| 2nd |   | Unit
  3 Designs/implementations presented (Due
  at 11:59pm, on your class day) | 
 | |
| 8 | 1st | GOF
  sections for unit patterns | Unit 4 overview: Abstract Factory, Chain of Responsibility, Decorator, 
  Factory Method, Flyweight, Singleton, Visitor; | 
 | 
| 2nd |   | «Unit 3 Quiz» | 
 | |
| 9 29 Apr | 1st |   | Unit
  4; Initial refactoring
  issues  | 
 | 
| 2nd |   | Unit
  4; Decorator exercise | 
 | |
| 10 | 1st |   | Unit
  4 | 
 | 
| 2nd |   | Unit
  4 Designs/implementations presented (Due
  at 11:59pm, on your class day) | 
 | |
| Finals |  |   | Final
  Exam (Unit 4 material plus Subsystem designs) | 
 | 
 
| Component | Percentage | 
| Mid-Term
  Design | 10 | 
| Final
  Exam | 20 | 
| Unit
  1 design problem | 5 | 
| Unit
  quizzes (2 * 5) | 10 | 
| Unit questions
  (3 * 5) | 15 | 
| Unit
  design/implementation | 30 | 
| Discussion
  and class | 10 | 
| Discussion
  Contributions | Discussion
  Points | 
| >=
  75% of topics | 10 | 
| >=
  50% but < 75% of topics | 8 | 
| >=
  25% but < 50% of topics | 4 | 
| <
  25% of topics | 0 | 
The following are some resources for
information about patterns:
The primary
patterns location is at the University
of Illinois where Ralph Johnson teaches. 
The Portland Pattern Repository holds patterns for a
variety of applications. 
Brad
Appleton's Patterns Page contains many references to pattern collections,
as well as discussions on how patterns fit into various phases of the
development cycle. 
The Design Patterns page by Vince Huston
contains a nice set of information about design patterns. It also includes the Periodic
Table of Design Patterns. 
Design Pattern
Metaphors by Michael Mahemoff 
SourceMaking –
resource for Design Patterns, Anti-Patterns, UML & Refactoring
$Id:
index.html 275 2011-03-28 13:39:54Z mjl $