Course Code & Number:
Level of Course:
Pre-requisites & Co-requisites:
Mid-terms - 30%
Quizzes and Homeworks - 30%
Final - 40%
The objective of this course is to provide and understanding of the necessity of using design patterns in software development, their advantages and differences, and when to use one. The course will introduce real life examples of how design patterns are used and explain the benefits of using design patterns in real life scenarios.
Definition of design pattern. Need for using design patterns. Classification of design patterns (creational, structural, behavioral). Reuse of patterns. Case studies and sample applications.
Upon succesful completion of this course, a student will be able to
1. Identify different design patterns
2. Choose the correct pattern to apply on different scenarios
3. Use design patterns to implement software projects
4. Identify when and how to reuse code
5. Analyze the benefits of using a design pattern for implementing a software project