Syllabus Application
CS 204
Advanced Programming
Faculty
Faculty of Engineering and Natural Sciences
Semester
Spring 2025-2026
Course
CS 204 -
Advanced Programming
Time/Place
Time
Week Day
Place
Date
16:40-18:30
Mon
FENS-G077
Feb 16-May 22, 2026
12:40-13:30
Wed
SBS-G071
Feb 16-May 22, 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
Albert Levi
- Email: levi@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.
Course 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 |
Course Materials
Resources:
Main texts are
"Ivor Horton's Beginning Visual C++ 2012", by Ivor Horton, ISBN: 978-1-118-36808-4.
Actually any version of this book is OK, I said 2012 since it can be found electronically. Although this book says "Visual C++", it is general enough.
"A Computer Science Tapestry" (CS201 book)
Reference books are
"Starting out with C++ Early Objects", 7th edition, by T. Gaddis, J. Walters, G. Muganda
"Objects, Abstraction, Data Structures and Design using C++" by Koffman and Wolfgang.
We may not stick to the textbooks; you are responsible material covered in class too. Thus it is very important to attend to lectures. Moreover, most students do not need books in this course.
"Ivor Horton's Beginning Visual C++ 2012", by Ivor Horton, ISBN: 978-1-118-36808-4.
Actually any version of this book is OK, I said 2012 since it can be found electronically. Although this book says "Visual C++", it is general enough.
"A Computer Science Tapestry" (CS201 book)
Reference books are
"Starting out with C++ Early Objects", 7th edition, by T. Gaddis, J. Walters, G. Muganda
"Objects, Abstraction, Data Structures and Design using C++" by Koffman and Wolfgang.
We may not stick to the textbooks; you are responsible material covered in class too. Thus it is very important to attend to lectures. Moreover, most students do not need books in this course.
Technology Requirements:
A portable Windows computer.
If you have a Mac, please see below (policies section) and/or syllabus for the details.
If you have a Mac, please see below (policies section) and/or syllabus for the details.