Object-oriented Programming
Teaching Staff: Polenakis Iosif, Ringas Dimitrios
Code: PR120
Course Type: Core Course
Course Level: Undergraduate
Course Language: Greek
Semester: 2nd
ECTS: 5
Teaching Units: 6
Lecture Hours: 4
Lab/Tutorial Hours: 4L
Total Hours: 8
Curricula: Revamped Curriculum in Informatics from 2025
The course focuses on teaching the principles and techniques of object-oriented programming (OOP) using the Java and C++ languages. Students will gain knowledge of the syntax and semantics of the languages, learn to use basic data structures and implement algorithms, and become familiar with the concepts of class, object, inheritance, and polymorphism. At the same time, they will cultivate skills in software analysis, design, development, and evaluation, combining theory with practical application.
Upon successful completion of the course, the student will be able to:
Knowledge & Understanding
Understands the basic principles of object-oriented programming (OOP).
Knows the syntax and semantics of languages.
Recognizes basic data structures (arrays, lists, stacks, queues) and their management algorithms.
Understands the differences between procedural and object-oriented programming.
Application
Writes programs in Java/C++ using basic programming structures (variables, conditions, loops, functions).
Implements the object-oriented approach through classes, objects, methods and inheritance.
Develops simple applications that use files, dynamic memory management and exceptions.
Implements basic algorithms for sorting, searching and managing data.
Analysis & Synthesis
Analyzes problems and designs corresponding solutions using flowcharts and pseudocode.
Compares different programming techniques for optimal application performance.
Combines different data structures and methodologies to improve code efficiency.
Evaluation
Identifies and corrects errors (debugging) and performance issues in the code.
Judges the quality and maintainability of the code based on the principles of good programming practices.
Collaborates in software development teams using code management tools (e.g. Git).
Additional skills (Soft Skills & Metacognitive Skills)
Development of critical thinking and problem-solving skills.
Familiarity with self-directed learning and continuous updating of new developments in programming.
1st week:
Java language: Introduction to object-oriented programming and the Java programming language - differences from procedural programming.
Preparation for the laboratory.
C++ language: Data Types, Variables and Operators, Data Input/Output, Flow Control and Loops
2nd week:
Java language: Basic elements of programming in Java. Java Virtual Machine.
C++ language: Arrays and Pointers
3rd week:
Java language: Class-based programming - classes and objects - object comparison.
C++ language: Alphanumerics
4th week:
Java language: Program flow control structures.
C++ Language: Functions
Week 5:
Java Language: Arrays and Collections.
C++ Language: Structures and Unions
Week 6:
Java Language: Methods, Call Stack, Parameter Passing. Stack and Heap. Static Methods.
C++ Language: Memory Management and Dynamic Data Structures
Week 7:
Java Language: Method Overloading, More on Constructors.
C++ Language: Preprocessor and Macros
Week 8:
Java Language: Inheritance.
C++ Language: Classes and Objects
Week 9:
Java Language: Polymorphism.
C++: Classes and Objects
Week 10:
Java: Interfaces
C++: Operator and Function Overloading
Week 11:
Java: Error Handling with Exceptions
C++: Inheritance
Week 12:
Java: Data Flows
C++: Static and Dynamic Polymorphism
Week 13:
Java: Network Programming
C++: Exceptions and Templates, Files
- C++ Programming — Paul J. Deitel, Harvey M. Deitel, X. GIOURDA SIA EE, 2015, ISBN: 50659221
- C++ - Problem Solving — Walter Savitch, Tziola, 2015, ISBN: 50655981
- C++: From Theory to Application — G. Tselikis, G. Tselikis, 2023, ISBN: 122077282
- Programming with C++ Object-Oriented Approach — B.A. Forouzan, R.F. Gilberg, Broken Hill Publishers Ltd, 2022, ISBN: 112690605
- The JAVA Programming Language - Analytical Approach — Cay Horstmann, Broken Hill Publishers Ltd, 2021, ISBN: 94643857
- JAVA - Learning with Practical Examples — Joyce Farrell, Kritiki Publishing SA, Athens, 2024, ISBN: 133024610
-
Learning process support through the e-class electronic platform
The final grade is determined by the final written exam of the course at a rate of 60% and by the completion of the weekly exercises within the framework of the course laboratory at a rate of 40%. The evaluation procedure and determination of the final grade based on the grade of the final written exam and the weekly laboratories is announced to the students and is posted on the first slide of the lectures.
Back
Studies
e-mail: cs@ionio.gr