UMBC  |  CSEE  |  Tarr  |  CS491F

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

  1. Introduction To Design Patterns
  2. Introduction To Java
  3. The Observer Pattern
  4. The Template Method Pattern
  5. Some OO Design Principles
  6. Factory Patterns: Factory Method and Abstract Factory
  7. The Iterator Pattern
  8. The Facade Pattern
  9. The State and Strategy Patterns
  10. The Singleton Pattern
  11. The Composite Pattern
  12. Functors and the Command Pattern
  13. The Adapter Pattern
  14. The Proxy Pattern
  15. RMI
  16. Dynamic Proxies In Java
  17. The Chain of Responsibility Pattern
  18. The Decorator Pattern
  19. The Bridge Pattern
  20. The Visitor Pattern
  21. Java IDL
  22. Jini
  23. Concurrency Patterns

    Course Information

    • Instructor: Bob Tarr
    • Office: ECS 227 / ECS 219
    • Phone: (410)455-2860/3961
    • Office Hours:
      • Wednesday : 6:00-7:00 PM
    • 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


    Bob Tarr
    University of Maryland, Baltimore County
    tarr@umbc.edu
    UMBC  |  CSEE  |  Tarr  |  CS491F