Skip to content

Course

COE4215966

INTRODUCTION to DESIGN PATTERNS

Computer Engineering

LECTURE
3
LAB
0
CREDITS
3
ECTS
6
LANGUAGEEnglishLEVELFirst Cycle (Bachelor's Degree)TYPEElectiveSyllabus (PDF)

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

    Implement Design Patterns

    Taught by: Problem Solving Method, Project Based Learning Model, Lecture Method · Assessed by: Traditional Written Exam, Homework, Project Task

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

  1. WEEK 1

    Introduction to Software Design Patterns

  2. WEEK 2

    Object-Oriented Design Principles

  3. WEEK 3

    Classification of Design Patterns

  4. WEEK 4

    Singleton and Factory Patterns

  5. WEEK 5

    Abstract Factory and Builder Patterns

  6. WEEK 6

    Prototype Pattern

  7. WEEK 7

    Adapter and Bridge Patterns

  8. WEEK 8

    Composite and Decorator Patterns

  9. WEEK 9

    Facade and Proxy Patterns

  10. WEEK 10

    Strategy and Observer Patterns

  11. WEEK 11

    Command and State Patterns

  12. WEEK 12

    Template Method and Iterator Patterns

  13. WEEK 13

    Chain of Responsibility and Mediator Patterns

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