Syllabus Application
CS 308
Software Engineering
Faculty
Faculty of Engineering and Natural Sciences
Semester
Fall 2025-2026
Course
CS 308 -
Software Engineering
Time/Place
Time
Week Day
Place
Date
10:40-12:30
Mon
UC-G030
Sep 29, 2025-Jan 3, 2026
09:40-10:30
Fri
UC-G030
Sep 29, 2025-Jan 3, 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
Mohammad Yusaf Azimi
- Email: yusaf.azimi@sabanciuniv.edu
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.
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:
• Object-Oriented Software Engineering: Practical Software Development using UML and Java, Timothy C.
Lethbridge and Robert Laganiere, McGraw Hill, ISBN 0-07-710908-2
• Software Engineering, Ian Sommerville, Pearson, ISBN 0-13-394303-8
• The Mythical Man-Month, Frederick P. Brooks, ISBN 0-201-83585-9
• Design Patterns, Eric Gamma et. al., Pearson, ISBN 0-201-63361-2
• Scrum: A Breathtakingly Brief and Agile Introduction, C. Sims & H. L. Johnson, Dymaxion Press, ISBN 978-1-
937965-04-4
• Code Complete, Steve McConnell, Microsoft Press, ISBN 9780735619678
Lethbridge and Robert Laganiere, McGraw Hill, ISBN 0-07-710908-2
• Software Engineering, Ian Sommerville, Pearson, ISBN 0-13-394303-8
• The Mythical Man-Month, Frederick P. Brooks, ISBN 0-201-83585-9
• Design Patterns, Eric Gamma et. al., Pearson, ISBN 0-201-63361-2
• Scrum: A Breathtakingly Brief and Agile Introduction, C. Sims & H. L. Johnson, Dymaxion Press, ISBN 978-1-
937965-04-4
• Code Complete, Steve McConnell, Microsoft Press, ISBN 9780735619678