This technical component of SOS aims to provide students and
faculty an opportunity to explore
recurring solutions
(patterns) to problems of software design.
It assumes previous understanding
of object-oriented
programming and design. We will work
through Erich Gamma's Design Patterns
(a case study and 23
patterns) in a focused seminar format.
Students will be expected to read the material assigned and
come to class prepared to ask technical
questions (and work out those solutions
with others), and to come to each class with 2 questions
(written out in
their notebook) from the assigned reading.
Each student will be responsible (possibly
with one or two
others) for presenting material for one or two class sessions. That will involve: 1)
preparing an outline or lecture notes to be
distributed to other students and from which he or she
presents the material and 2) leading the discussion
following the presentation to answer other
students’ questions
about the material. Students will also
be responsible for handing in (Tuesday of Week IX)
a 3-5 page plan of how one
design pattern could be applied to their year-long SOS project.
Students will also prepare a 1-page handout
(poster) of the plan, and a 5-min class presentation.
Tentative Schedule:
I.Monday, April 1.
Introduction to Design Patterns (Lecture/Workshop by Judy). Read Chapter 1.
Tuesday, 4/2. Read:
Chapter 2. Be prepared to select 2 class days to facilitate. Judy will facilitate discussion on case
study
(Document Editor Design),
facilitating discussion of a pattern.
II.
Mon. 4/8 Pattern(s): abstract factory,
Tue. 4/9 Pattern(s):, composite,
decorator
III.Mon. 4/15 Pattern(s):,
strategy
Tue. 4/16 Pattern(s): adapter, factory
IV.Mon. 4/22 Pattern(s): observer, template
Fri. 4/23. Pattern(s): bridge,
command
V.Mon. 4/29. Pattern(s): iterator, ŕ
Reread Chapter 1
Tue. 4/30 Pattern(s): visitor, command
VI.Mon. 5/6 Pattern(s): interpreter, iterator ŕ Reread Chapter 2
Tue. 5/7 Pattern(s): Builder, singleton
VII.Mon. 5/13 Pattern(s): prototype, flyweight ŕ 1
page proposal for pattern project due.
Tue.
5/14 Pattern(s):
proxy, chain of responsibility
VIII.Mon.
5/20 Pattern(s): mediator, memento
Tue. 5/21 Pattern(s): state, facade
(Judy at NSF digital government
meeting in L.A.)
IX.Mon. 5/27
Memorial Day (no classes).
Tue. 5/27 Last Class meets ‘til 3:15 – Project report due, presentations of
projects.