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 308
Software Engineering

Faculty Faculty of Engineering and Natural Sciences
Semester Spring 2025-2026
Course CS 308 - Software Engineering
Time/Place
Time
Week Day
Place
Date
09:40-10:30
Mon
SBS-G071
Feb 16-May 22, 2026
08:40-10:30
Thu
SBS-G071
Feb 16-May 22, 2026
Level of course Undergraduate
Course Credits SU Credit:4, ECTS:7, Engineering:7
Prerequisites CS 204
Corequisites CS 308L
Course Type Lecture

Instructor(s) Information

Cemal Yılmaz

Course Information

Catalog Course Description
This course covers the following fundamental topics in software engineering: software and software engineering, software development processes, agile development, requirements engineering, object-oriented software modeling, object-oriented software design, software design patterns, software architecture, and software quality assurance. The application of the theoretical knowledge gained in the lectures, is achieved by carrying out large-scale software engineering projects in teams.
Course Learning Outcomes:
1. Describe the basics of the software engineering process life cycle.
2. Identify, formulate, and solve basic software engineering problems, including the requirements gathering, specification, design, architecture, and testing of software systems.
3. Analyze software engineering artifacts, including the requirements, design, and architecture of software systems.
4. Design basic object-oriented software systems that meet requirements by applying OO software development principles and design/architectural patterns.
5. Evaluate the impact of potential solutions to basic software engineering problems.
Course Objective
To introduce the basics of the software engineering process life cycle, including requirements gathering, specification, and testing.
To introduce the principles of object-oriented (OO) analysis and design, as well as software architecture, through OO principles and design/architectural patterns.
To introduce the basics of UML (Unified Modeling Language) ? a way of expressing requirements and design in software engineering.
To practice the application of object-oriented software development principles through a team project.
To develop teamwork and communication skills through a team project.
Sustainable Development Goals (SDGs) Related to This Course:
Decent Work and Economic Growth
Industry, Innovation and Infrastructure

Course Materials

Resources:
Technology Requirements:

Policies