Public View

You are viewing the public version of the syllabus. If you have a SUNet account, you can view the richer version of the syllabus after logging in.

CS 542
Software Design Patterns

Faculty Faculty of Engineering and Natural Sciences
Semester Fall 2026-2027
Course CS 542 - Software Design Patterns
Time/Place
Time
Week Day
Place
Date
15:40-18:30
Wed
FENS-L030
Sep 28-Dec 31, 2026
Level of course Masters
Course Credits SU Credit:3, ECTS:10
Prerequisites -
Corequisites -
Course Type Lecture

Instructor(s) Information

Emre Kaplan

Course Information

Catalog Course Description
This course introduces the use of design patterns Creational, structural and behavioral patterns, enterprise software architecture patterns, anti-patterns, object-oriented design principles and processes will be discussed.
Learning Outcomes:
Course Objective
Apply object-oriented design principles, and Clean Code practices to structure maintainable Java software
Analyze design problems and identify appropriate creational, behavioral, or structural design patterns to solve them
Implement design patterns in Java and justify design decisions based on trade-offs in flexibility, coupling, and complexity
Sustainable Development Goals (SDGs) Related to This Course:
Industry, Innovation and Infrastructure

Course Materials

Resources:
Gamma, Helm, Johnson, and Vlissides. Design Patterns. Addison-Wesley, 1994.
Freeman, Freeman, Bates, Sierra, and Robson. Head First Design Patterns. O’Reilly, 2004.
Robert C. Martin. Clean Code: A Handbook of Agile Software Craftsmanship. Pearson, 2008.
Technology Requirements:
A laptop/desktop with a camera and a microphone that can run Google Meet, Zoom, VS Code, Eclipse, IntelliJ, JDK.

Policies