Skip to content

Course

COEY1215699

SOFTWARE DESIGN PATTERNS

LECTURE
3
LAB
0
CREDITS
3
ECTS
8

REQUIRES

None

REQUIRED BY

None

TAUGHT IN

LANGUAGEEnglishLEVELSecond Cycle (Master's Degree)TYPEElective

AIM

This course is designed to introduce students to the principles of software design patterns. Participants will develop the ability to recognize, implement, and apply common design patterns to strengthen software architecture, enhance code reusability, and ensure maintainability. Covering creational, structural, and behavioral design patterns, the course provides hands-on experience in building scalable and efficient software solutions. Through practical exercises and case studies, students will sharpen their skills in evaluating software design choices.

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

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 Success50%
  • Rate of Final Exam to Success50%

READING

  • Design Patterns: Elements of Reusable Object-Oriented Software, Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, 1995

TEACHING STAFF

  • Assist.Prof. İbrahim KARLIAĞACOORDINATOR
  • Assist.Prof. İbrahim KARLIAĞA