Advanced Programming (CS 204)

2020 Summer
Faculty of Engineering and Natural Sciences
Computer Sci.& Eng.(CS)
3
6.00 / 6.00 ECTS (for students admitted in the 2013-14 Academic Year or following years)
Duygu Karao─član Altop duygukaltop@sabanciuniv.edu,
Click here to view.
English
Undergraduate
CS201
Formal lecture,Interactive lecture,Recitation
Interactive,Communicative,Discussion based learning,Task based learning
Click here to view.

CONTENT

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 (SW interrupts), multi-threaded programming and synchronization.

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.

LEARNING OUTCOME

Show the understanding of the operations of the preprocessor, compiler and linker in the context of processing a source code.
Describe how various data structures and types (in particular user defined objects, extern variables, static variables, pointers, arrays, linked lists) 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++.
Develop and/or appropriately use templated classes, templated functions and function overloading in C++ programs.
Design, develop and demonstrate the use of constructor, destructor, copy constructor (deep and shallow), assignment operator and operator overloading in the context of object oriented programming.
Demonstrate the use of object sharing principles with and without reference variables.
Describe the internal representation of numeric and non-numeric data. Demonstrate the use of bitwise operators in C++.
Develop basic strategies for handling exceptions using standard mechanisms provided in C++.
Utilize the notions of inheritance, overriding and polymorphism in object oriented design.
Show competency in advanced contents such as concurrent applications in C++ and graphical user interfaces.

ASSESSMENT METHODS and CRITERIA

  Percentage (%)
Final 35
Midterm 30
Exam 15
Assignment 20

RECOMENDED or REQUIRED READINGS

Textbook

MAIN TEXTS
"Ivor Horton's Beginning Visual C++ 2012", by Ivor Horton, ISBN: 978-1-118-36808-4.
"A Computer Science Tapestry" (CS201 Book)

REFERENCE BOOKS
"Starting out C++ Early Objects", 7th edition, by T. Gaddis, J. Walters and G. Muganda
"Objects, Abstraction, Data Structures and Design using C++", by Koffman and Wolfgang.