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.
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