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 442
Software Design Patterns

Faculty Faculty of Engineering and Natural Sciences
Semester Fall 2026-2027
Course CS 442 - 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 Undergraduate
Course Credits SU Credit:3, ECTS:6, Engineering:6
Prerequisites CS 308
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:
1. Describe the basics of object-oriented design principles and OOP mechanism
2. Define and recognize design patterns
3. Identify suitable design patterns for design problems
4. Compare the design patterns and explain which design pattern should be used
5. Design object-oriented software systems that meet requirements by applying object-oriented design principles and design/architectural patterns
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