CSE776 - Design Patterns

Revised: 32 May 2003
Home Courses Code Handouts Books Math Research Masters Projects SWDev WebDev News OtherLinks SiteDesign Graduates AllPages Office Hours Notices Contents

CSE681-SWMAA CSE686-IP CSE687-OOD CSE775-DO CSE776-DP CSE778-AWP CSE784-SWS

Class Text

Resources: Lectures Presentations Syllabus Plop 4 Conference Papers on-line

Course Scope:

This seminar course is based on the book "Design Patterns", Gamma et. al. It is intended to provide a sophisticated look at Object Oriented Design methods with emphasis on conceptual understanding rather than writing a lot of code (this presumes you have already written a LOT of code in CSE681 and CSE687).

Students will make several presentations on patterns from the text and will write a small amount of supporting code. This work is conducted in teams of two students each. The presenting students and I jointly lead a discussion of each pattern following its presentation.

Required Texts and Notes:

  1. Design Patterns, Elements of Reusable Object-Oriented Software, Erich Gamma, et. al., Addison-Wesley, 1994,
    ISBN 0-201-63361-2
  2. Student presentations available here, after the presentation, and will remain until the beginning of the next semester. www.ecs.syr.edu/faculty/fawcett/handouts/CSE776
  3. Patterns Summary Hillside Group Site Patterns Papers PatternDigest John Vlissides Home Page
    Presentation on Patterns (and more) by Erich Gamma

Prerequisites:

CSE687 - Object Oriented Design

Syllabus - Summer 2003:

Session
Pattern
Student - Pattern
Student - Code
Session #1
Tue, May 20
Introduction, Presentations
Jim Fawcett
-
Session #2
Thu, May 22
Abstract Factory
Jim Fawcett
Jim Fawcett
Session #2
Thu, May 22
Assign Presentations
Jim Fawcett
-
Session #3
Tue, May 27
Builder
Rajesh Chopade
Rajesh Chopade
Session #3
Tue, May 27
Factory Method
Amey Bordikar
Amey Bordikar
Session #4
Thu, May 29
Prototype
Priyaa Nachimuthu
Priyaa Nachimuthu
Session #4
Thu, May 29
Singleton
Goldie Fernandez
Goldie Fernandez
Session #5
Tue, June 03
Adapter
Brendan Ward
Brendan Ward
Session #5
Tue, June 03
Bridge
Jim Fawcett
Jim Fawcett
Session #6
Thu, June 05
Composite
Subha Desikan
Subha Desikan
Session #6
Thu, June 05
Decorator
Alvaro Ramirez
Alvaro Ramirez
Session #7
Tue, June 10
Facade
Praveen Nidamarthi
Praveen Nidamarthi
Session #7
Tue, June 10
Flyweight
Vishali Chandramouli
Vishali Chandramouli
Session #8
Thu, June 12
Proxy
Ronghua Wang
Ronghua Wang
Session #8
Thu, June 12
Chain of Responsibility
Rajesh Chopade
Rajesh Chopade
Session #9
Tue, June 17
Command
Jim Fawcett
Jim Fawcett
Session #9
Tue, June 17
Interpreter
Goldie Fernandez
Goldie Fernandes
Session #10
Thu, June 19
Iterator
Rajesh Chopade
Rajesh Chopade
Session #10
Thu, June 19
Mediator
Amey Bordikar
Amey Bordikar
Session #11
Tue, June 24
Memento
Jim Fawcett
Jim Fawcett
Session #11
Tue, June 24
Observer
Priyaa Nachimuthu
Priyaa Nachimuthu
Session #12
Thu, June 26
State
Brendan Ward
Brendan Ward
Session #12
Thu, June 26
Strategy
Subha Desikan
Subha Desikan
Session #13
Tue, July 01
Template Method
Alvaro Ramirez
Alvaro Ramirez
Session #13
Tue, July 01
Visitor
Goldie Fernandes
Goldie Fernandes
Session #14
Wed, July 03
Role Object
Praveen Nidamarthi
-
Session #14
Wed, July 03
Extension Object
Vishali Chandramouli
-
Session #15
Tue, July 08
Acyclic Visitor
Ronghua Wang
-
Session #15
Tue, July 08
Basic Relationship Patterns
Rajesh Chopade
-
Session #16
Thu, July 10
Abstract Session
Amey Bordikar
-
Session #16
Thu, July 10
Enabling Application Security
Priyaa Nachimuthu
-
Session #17
Tue, July 15
Input and Output Pattern Language
Brendan Ward
-
Session #17
Tue, July 15
Pluggable Factory
Vishali Chandramouli
-
Session #18
Thu, July 17
Capable, Productive, Satisfied
Alvaro Ramirez
-
Session #18
Thu, July 17
Big Ball of Mud
Praveen Nidamarthi
-
Session #19
Tue, July 22
Customer Interaction
Subha Desikan
-
Session #19
Tue, July 22
More on Pattern Languages
Jim Fawcett
-
Session #20
Thu, July 24
Where do we go from here?
Jim Fawcett
-
Class meets twice per week for two hours each time.