UMBC  |  CSEE  |  Tarr  |  CS446

CMSC446 Introduction To Design Patterns

Spring 2004

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, 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 Singleton Pattern
  8. The Iterator Pattern
  9. The Composite Pattern
  10. The Facade Pattern
  11. The State and Strategy Patterns
  12. Functors and the Command Pattern
  13. The Adapter Pattern
  14. The Proxy Pattern
  15. RMI
  16. The Decorator Pattern
  17. Dynamic Proxies In Java
  18. The Chain of Responsibility Pattern
  19. Concurrency Patterns
  20. The Visitor Pattern
  21. AntiPatterns

    Course Information

    • Instructor: Bob Tarr
    • Office: ITE 316
    • Phone: (410)455-3549
    • Email: tarr@umbc.edu
    • Office Hours:
      • Monday/Wednesday : 5:00-5:30 PM and after class
    • Grading:
      • Mid-Term 30 %
      • Final 30 %
      • Projects 40 %
    • Course Home Page: http://www.research.umbc.edu/~tarr/dp/spr04/cs446.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
      • Applied Java Patterns, Stephen Stelting and Olav Maassen, Prentice Hall, 2002
      • Java Design Patterns - A Tutorial, James W. Cooper, Addison-Wesley, 2000


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