Course Information
Class/Laboratory Schedule:
3 lectures per week, 50 minutes each (3-0-3).
Designation: Elective Course
Course Level: Undergraduate
Prerequisites
Prerequisite Courses:
Catalog Description:
A depth study of object-oriented design patterns. How design patterns solve design problems? How to select a design pattern? How to use a design pattern? Detailed study of creational patterns, structural patterns, and behavioral patterns. Case studies.
Textbook(s):
E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software: Addison-Wesley, 1995.
Reference(s) and Other Material:
- A. Shalloway and J. Trott, Design Patterns Explained: A New Perspective on Object-Oriented Design, 2nd edition, Addison-Wesley, 2004
Course Outcomes:
Upon completion of this course, students will have the ability to:
- Demonstrate sound knowledge of design patterns
- Communicate program structures using design patterns.
- Select appropriate design patterns for design problems.
- Apply patterns in new designs.
- Evaluate design patterns.
- Recognize patterns in designs
Topics Covered:
- Introduction to design patterns
- What is a design pattern?
- How design pattern solve design problems
- How to select a design pattern
- How to use a design pattern
- Creational patterns
- Abstract factory
- Builder
- Factory method
- Prototype
- Singleton
- Structural patterns
- Adapter
- Bridge
- Composite
- Decorator
- Façade
- Flyweight
- proxy
- Behavioral patterns
- Chain of responsibility
- Command
- Interpreter
- Iterator
- Mediator
- Memento
- Observer
- State
- Strategy
- Template method
- visitor