Syllabus Application
CS 204
Advanced Programming
Faculty
Faculty of Engineering and Natural Sciences
Semester
Summer 2025-2026
Course
CS 204 -
Advanced Programming
Time/Place
Time
Week Day
Place
Date
14:40-17:30
Tue
FASS-G062
Jul 6-Aug 21, 2026
09:40-12:30
Fri
FASS-G062
Jul 6-Aug 21, 2026
Level of course
Undergraduate
Course Credits
SU Credit:3, ECTS:6, Engineering:6
Prerequisites
CS 201
Corequisites
CS 204L
Course Type
Lecture
Instructor(s) Information
Duygu Karaoğlan Altop
- Email: duygukaltop@sabanciuniv.edu
Course Information
Catalog Course Description
This course is intended to give advanced programming techniques, as well as further experience in programming. Topics covered will be: advanced object-oriented programming techniques and programming with classes (function overloading, templated classes, inheritance), pointers, linked lists, stacks, queues, debugging and profiling, reusable software (using/creating libraries), visual/GUI programming, exception handling, multi- threaded programming and synchronization.
Learning Outcomes:
| 1. | Reinforce the basics of computer systems and programming: describe how the data is stored in the memory, the internal representation of numeric and non-numeric data, and how they can be manipulated at the bit level; demonstrate the use of preprocessor, compiler and linker in the context of source code processing and explain their roles. |
|---|---|
| 2. | Understand, implement and use auto, static, extern and dynamically managed data types and structures: describe how various data types and structures (e.g., pointers, user-defined plain-old and other data types and classes) are allocated and used; implement basic data structures, such as arrays, various types of linked lists, stacks and queues, using dynamic memory allocation techniques in C++. |
| 3. | Understand, implement, and use object-oriented programming: design/develop rich classes with constructor(s), destructor, deep/shallow copy constructor, move constructor, assignment operator and operator overloading sharing objects through reference parameters/pointers; use/develop classes with inheritance, including the concepts of overriding and polymorphism; use/develop templated functions and classes as well as function overloading when necessary. |
| 4. | Understand, implement, and use advanced concepts: demonstrate the use of exception handling, concurrent applications, and graphical user interfaces. |
Course Objective
The objective of this course is to give advanced object oriented design and programming techniques and basic data structures in order to provide further experience and practical knowledge in computer programming.
Sustainable Development Goals (SDGs) Related to This Course:
| Industry, Innovation and Infrastructure |