Semester 7


Course: Object Oriented Programming IΙ



Course Code: ΜΚ31
Course Level: Undergratuate
Obligatory/Elective: Elective
Semester: 7
Division: Division of Computers
Group: Group A
ECTS Credits: 5
Hours Per Week: 4
Website: eclass.uowm.gr/courses/ICTE344/
Language: Greek
Content:

The course focuses on Object Oriented Programming with C ++ programming language. Emphasis is placed on the object-oriented programming model, as well as on some more advanced programming concepts (references, parameterization, dynamic memory allocation, friend functions). Students learn to design and implement object-oriented programs (classes, objects, encapsulation, subtraction, composition, hierarchies and inheritance, polymorphism) in C++.

By the end of the course students should be familiar with the advanced features of C++ and be able to design and implement complex programs of increased degree of difficulty.

Course modules:

Section 1: Basic Concepts of Object-Oriented Programming, Java Comparison, C ++ History and Applications

Section 2: C ++ Code Development, Objects and Classes, Constructor Functions, Input/Output

Section 3: Classes & Objects, Objects as Arguments, Constructor’s overloading, Data Access Member Functions.

Section 4: Global Functions, Friend Functions, Static Functions, *this pointer

Section 5: Operator Overloading, Arguments and Return Values, Binary Operator Overloading (Numerical Operators, Comparison Operators, Input/Output Operators overloading)

Section 6: Arrays, arrays as class member data, arrays of objects

Section 7: Composition, objects as data members of classes, how to handle objects, examples of using composition

Module 8: Inheritance, base and derived classes, access of base class members and functions, member functions overloading

Section 9: Pointers, new and delete operators, object pointers, member references, pointers to arrays of objects

Section 10: Class Hierarchies, Abstract Base Classes. Public and private inheritance.

Section 11: Inheritance Levels, Multiple Inheritance, Classes within Classes

Section 12: Files and streams, object input / output, file pointers.

Section 13: Templates, Genetic Programming, Code Reuse, Class and Function Templates.

Learning Outcomes:

Students who successfully complete the Object-Oriented Programming II course should be able to:

  • Classify and understand existing programming models.
  • Implement relationships between classes, such as inheritance, composition, polymorphism, c ++ language content.
  • Overload input/output operators, arithmetic operators, comparison operators.
  • Handle global, friend and class member functions
  • Successfully use const, static, final variables and functions.
  • Store and retrieve information in text and binary files.
  • Perform dynamic memory allocation, manipulate pointers.
  • Implement templates
Pre-requirements:

None

Teaching Methods:

-

Validation:

The evaluation of students is carried out with:

•          Written evaluation

•          Laboratory examination

•          Application Development (Semester Project)

The written evaluation is intended to examine the

students' knowledge of the taught material and to

capture the degree of its assimilation. It includes

multiple choice questions, free questions

but also short answers, code evaluation,

code development.

 

The purpose of the laboratory exams is to determine

degree of familiarity of students with the development of

C ++ applications in real life problems. It includes

short application development.

 

The application development (Semester project) is assigned in groups of 2 persons and include application development in C ++. The works are submitted electronically via e-class platform.

 

The final evaluation of the students is as follows:

60% Grade of written examination + 20% Grade of application development + 20% Grade of Laboratory examination

Suggested Books:

Books (in Greek)

[1]   Savitch Walter, Absolute C++, Pearson.

[2]   B. Stroustrup, The C++ Programming Language, Addison Wesley.

[3]   S. Al, W. Clayton, " C++ Programming Bible", Wiley.

Journals

Science of Computer programming, Elsevier

Journal of Systems and Software, Elsevier

Proceedings of the ACM on Programming Languages, ACM

Lecturer: Bibi Stamatia