Course
COE4215966
INTRODUCTION to DESIGN PATTERNS
Computer Engineering
- LECTURE
- 3
- LAB
- 0
- CREDITS
- 3
- ECTS
- 6
REQUIRES
REQUIRED BY
None
TAUGHT IN
AIM
This course aims to teach students with the core principles of software design patterns. Students will gain the skills to identify, implement, and utilize common design patterns to enhance software architecture, improve code reusability, and ensure maintainability. Covering creational, structural, and behavioral design patterns, the course offers hands-on experience in developing scalable and efficient software solutions. Through practical exercises and case studies, students will refine their ability to critically assess software design decisions and apply best practices in object-oriented programming.
CONTENT
This course contains; Introduction to Software Design Patterns ,Object-Oriented Design Principles ,Classification of Design Patterns,Singleton and Factory Patterns,Abstract Factory and Builder Patterns,Prototype Pattern,Adapter and Bridge Patterns,Composite and Decorator Patterns ,Facade and Proxy Patterns,Strategy and Observer Patterns ,Command and State Patterns,Template Method and Iterator Patterns,Chain of Responsibility and Mediator Patterns,Memento and Visitor Patterns.
LEARNING OUTCOMES
- 1
Understand Software Design Patterns
Taught by: Problem Solving Method, Project Based Learning Model, Lecture Method · Assessed by: Traditional Written Exam, Homework, Project Task
- 2
Identify Appropriate Design Patterns
Taught by: Problem Solving Method, Project Based Learning Model, Lecture Method · Assessed by: Traditional Written Exam, Homework, Project Task
- 3
Implement Design Patterns
Taught by: Problem Solving Method, Project Based Learning Model, Lecture Method · Assessed by: Traditional Written Exam, Homework, Project Task
- 4
Enhance Software Maintainability and Reusability
Taught by: Problem Solving Method, Project Based Learning Model, Lecture Method · Assessed by: Traditional Written Exam, Homework, Project Task
- 5
Evaluate Software Design Decisions
Taught by: Problem Solving Method, Project Based Learning Model, Lecture Method · Assessed by: Traditional Written Exam, Homework, Project Task
- 6
Develop Practical Problem-Solving Skills
Taught by: Problem Solving Method, Project Based Learning Model, Lecture Method · Assessed by: Traditional Written Exam, Homework, Project Task
WEEKLY PLAN
- WEEK 1
Introduction to Software Design Patterns
- WEEK 2
Object-Oriented Design Principles
- WEEK 3
Classification of Design Patterns
- WEEK 4
Singleton and Factory Patterns
- WEEK 5
Abstract Factory and Builder Patterns
- WEEK 6
Prototype Pattern
- WEEK 7
Adapter and Bridge Patterns
- WEEK 8
Composite and Decorator Patterns
- WEEK 9
Facade and Proxy Patterns
- WEEK 10
Strategy and Observer Patterns
- WEEK 11
Command and State Patterns
- WEEK 12
Template Method and Iterator Patterns
- WEEK 13
Chain of Responsibility and Mediator Patterns
- WEEK 14
Memento and Visitor Patterns
ASSESSMENT
- Rate of Midterm Exam to Success30%
- Rate of Final Exam to Success70%
READING
- Design Patterns: Elements of Reusable Object-Oriented Software, Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, 1995; Head First Design Patterns, 2nd Edition, Eric Freeman, Elisabeth Robson, Kathy Sierra, and Bert Bates, 2021
TEACHING STAFF
- Assist.Prof. İbrahim KARLIAĞACOORDINATOR
- Assist.Prof. İbrahim KARLIAĞA