Syllabus(2024-2025 Fall) (Subject to Change)
Prerequisite
CENG 114 Computer Programming (Solid knowledge on structs and arrays as well as pointers)
Lecturer and Lab Assistant
Abdül Kadir Görür
LA will be announced at the beginning of semester. ( October 2024)
Textbook
-
D.S. Malik, C++ Programming: From Problem Analysis to Program Design, 5th Edition, Cengage Course Technology, 2011, 978-0-538-79808-2
-
Tony Gaddis, Starting Out with C++: Early Objects, Addison Wesley, 2005, 0-321-38348-6
-
A Computer Science Tapestry: Exploring Computer Science and Programming with C++ (pdf version is free,solve all excercises up to chapter 6)
-
Roberts, Eric S. Programming Abstractions in C++ , ISBN 978-0133454840. (free pdf version is available at book site)
Participation
-
Participation is mandatory for lab lectures and in class lectures.
Submission
-
Login webonline and enroll CENG 241 course.
-
Use e-mail for communication, submit HWs and Assignments to WEBONLINE (Moodle)
Topics
Week 1) First meeting, course description, rules
Week 2) C Review: Pointers and STRUCTs
-
Pointers in general, memory organization
-
Indirection (*) and address-of (&) operators
-
Pointers in struct, pointers to struct
-
Pointers of pointers, advanced usage
Week 3) Review: Arrays
-
Static vs. Dynamic Arrays (1D, 2D and more)
-
Creating & destroying arrays
-
Array of pointers, Pointers of arrays
Week 4) Introduction to C++
-
Review: C strings (strcpy, strcat, strlen, strcmp and variations)
-
C++ string class (=, +, c_str, substr)
-
Basic IO, iostream, cout, cin. Overloading operator<< and operator>>
Week 5) Classes and Objects
-
Composition: Class vs. struct
-
Primitive types vs. Objects
-
Functions vs. Methods
-
Data fields, constructor & destructor, overloading constructors
Week 6) Classes and Objects (cont.)
-
Instantiating objects: creating on stack / heap, new, delete, new [ ], delete [ ] commands
-
STATIC keyword
-
Pointers and objects
-
Referencing (.) vs. Dereferencing (->) operators, .*, ->*
Week 7) Classes and Objects (cont.)
-
Class notations, header files.
-
Cloning classes: assigning objects, shallow copy, deep copy, copy constructor
Week 8) Inheritance
-
Subclasses in general
-
Defining and creating subclasses, construction and destruction chain
-
Construct base class by non-default constructor
-
Overriding, overloading vs. overriding
Week 9) Inheritance (cont.)
-
Encapsulation, Visibility modifiers: public, private, protected.
-
Abstraction, get and set methods
-
Inheritance examples
Week 10) Polymorphism
-
Polymorphism in general
-
Benefits, software design
-
Class hierarchy, conversion from sub-to-base and base-to-sub classes.
Week 11) Advanced C++
-
Namespaces, using namespace
-
Template functions and classes
-
Operator overloading
Week 12) Vectors
-
Arrays vs vectors
-
size, [ ], at, front, back
-
push_back, pop_back, insert, erase, clear
Week 13) Review and examples
Week 14) Review and examples