Advanced Topics Seminar: Design Patterns

 

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.