|Class Hours - Lab Hours||3 - 2|
|Lecturers||Georgios Goumas, Aris Pagourtzis, Giorgos Stamou, Georgios Alexandridis (T & R Associates), Georgios Siolas (T & R Associates), Paraskevi Tzouveli (T & R Associates), Vassilios Vescoukis (School of RSE)|
|Links||MyCourses, Course's Website|
The course sets two general objectives which are combined to yield a unified result. One part concerns introduction to object-oriented programming using C++, including: Principles of object-oriented programming (abstract data types, generalization, specialization, locality, information hiding, encapsulation), the C++ programming language (objects and classes, access and modification of object members, constructors and destructors, inheritance, access rules, protected members, friend functions, polymorphism, virtual functions, operator, function and method overloading), analysis of program running time. The second part concerns the study of the most important data structures, implemented in C++ with the object-oriented programming model, including: Linked Lists (doubly linked lists, circular lists, ordered lists), trees (binary tree traversal, depth-first and breadth-first traversal, binary search trees, AVL trees), heaps (full binary trees, binary heaps), M-way search trees (searching, complexity), B-trees, hashing (hashing methods and functions, hash tables, implementation, complexity). Additionally, there is a laboratory part comprising a number of C++ programming projects to be worked out by students at the PC Labs on a weekly basis.