CMSC491F Introduction To Design Patterns
Spring 2003
Syllabus
Course Description
This course is an introduction to software design patterns. Each
pattern represents a best practice solution to a software problem in some
context. The course will cover the rationale and benefits of
object-oriented software design patterns. Several example problems will
be studied to investigate the development of good design patterns.
Specific patterns, such as Observer, State, Adapter, Strategy,
Decorator and Abstract Factory will be discussed. Programming
projects in the Java language will provide experience in the use of
these patterns. In addition, distributed object frameworks, such as
RMI and Jini, will be studied for their effective use of design patterns.
Course Outline
- Introduction To Design Patterns
- Introduction To Java
- The Observer Pattern
- The Template Method Pattern
- Some OO Design Principles
- Factory Patterns: Factory Method and Abstract Factory
- The Iterator Pattern
- The Facade Pattern
- The State and Strategy Patterns
- The Singleton Pattern
- The Composite Pattern
- Functors and the Command Pattern
- The Adapter Pattern
- The Proxy Pattern
- RMI
- Dynamic Proxies In Java
- The Chain of Responsibility Pattern
- The Decorator Pattern
- The Bridge Pattern
- The Visitor Pattern
- Java IDL
- Jini
- Concurrency Patterns
Course Information
- Instructor: Bob Tarr
- Office: ECS 227 / ECS 219
- Phone: (410)455-2860/3961
- Office Hours:
- Grading:
- Mid-Term 30 %
- Final 30 %
- Projects 40 %
- Course Home Page: http://www.research.umbc.edu/~tarr/dp/spr03/cs491.html
- Makeup Policy For Tests: No makeups unless medical (or religious)
circumstances so warrant.
- Late Policy For Projects: No projects accepted after the final due date.
NO EXCEPTIONS!!!
Texts
- Recommended:
- Design Patterns - Elements Of Reusable Object-Oriented Software, Gamma, et. al., Addison-Wesley, 1995
- Java Design Patterns - A Tutorial, James W. Cooper, Addison-Wesley, 2000