Object Oriented Programming

General

Educational goals

The course describes and introduces the basic principles of Object Oriented Programming using the JAVA programming language as a tool. Upon completion of the course, students should be familiar with the basics of Object Oriented Programming and problem solving algorithms implemented with Java. Programming is not just writing code. Developers also need to make some compromises, choosing between alternative designs, different algorithms and different implementations. At the same time, they must address issues of compatibility, performance and reliability while at the same time meeting project specifications. Upon completion of the course, students should:

  • Ηave in depth knowledge of the principles, concepts and structures of Object Oriented Programming.
  • Βe able to develop, convert, test, debug, and execute programs and applications using Java object-oriented principles and error handling techniques.
  • Βe able to produce object-oriented programs using the basic Java libraries.
  • Βe able to describe and explain the object-oriented concepts of Java.
  • Βe able to use Java API classes as well as derived classes in application development.
  • Βe able to distinguish the features of the problem that will lead them to choose and implement the most appropriate algorithm.
  • Be able to customize existing algorithms and propose their own problem-solving algorithms.
General Skills
  • Knowledge application in practice by practicing in the laboratory.
  • Search, analyze and synthesize data and information, using the necessary technologies.
  • Independent work through programming exercises.
  • Teamwork: Implementation of three projects based on the application of the concepts analyzed in the lectures.
  • Self-critisism and assignment evaluation: Students evaluate the assignments of other groups and get evaluated for this.
  • Commenting in classroom on common exercise programming errors.
  • Promoting free, creative and inductive thinking.
  • Εφαρμογή της γνώσης στην πράξη με την πρακτική εξάσκηση στο εργαστήριο
  • Αναζήτηση, ανάλυση και σύνθεση δεδομένων και πληροφοριών, με τη χρήση και των απαραίτητων τεχνολογιών
  • Αυτόνομη εργασία κατά την εκπόνηση των ασκήσεων της ημέρας
  • Ομαδική εργασία: Υλοποίηση τριών ατομικών/ομαδικών εργασιών οι οποίες στηρίζονται στην εφαρμογή των εννοιών που αναλύονται στις διαλέξεις.
  • Άσκηση κριτικής και αυτοκριτικής: Οι φοιτητές κρίνουν και αξιολογούν εργασίες άλλων ομάδων
  • Σχολιασμός στην τάξη συνηθισμένων περιπτώσεων λαθών στις ασκήσεις του μαθήματος
  • Προαγωγή της ελεύθερης, δημιουργικής και επαγωγικής σκέψης

Course Contents

  • Object Oriented Programming in JAVA: Introduction,  Principles, Advantages
  • Classes,  Objects, Constructors,  Public and Private Members, Static Members, Types of Methods: Object and Static Methods, Wrapper clases, Final classes and Methods
  • Recursion
  • Introduction to Computational Complexity
  • Searching Algorithms
  • Sorting Algorithms. Presentation of five different algorithms (exchange and recursive)
  • Inheritance and Composition
  • Polymorphism
  • Overloading, Overriding, Casting
  • Abstract Classes
  • Interfaces
  • Inner Classes
  • Exception Handling
  • Packages
  • Wrapper Classes –  Memory Management
  • Collections – All types – ArrayLists
  • Generics
  • The JAVA Reflection and Initialization

Teaching Methods - Evaluation

Teaching Method
  • Face to face theoretical teaching (lecture, discussion, problem solving), laboratory practice with solved and unsolved exercises.
Use of ICT means
  • - web pages with educational material for the course
  • - Moodle is a learning platform
  • - Programming IDEs (eg. NetBeans, Eclipse)
Teaching Organization
Activity Semester workload
Lectures52
Writing and presenting compulsory work30
Individual study and analysis of literature60
Laboratory exercises13
Preparation for laboratory exercises25
Total 180
Students evaluation

- Written final examination in the theoretical part of the course (70%)
- Laboratory practice and tasks (30%) including:
= Exercises and assignments.
= Final lab examination.

Recommended Bibliography

Recommended Bibliography through "Eudoxus"
  1. Liang D.Y, JAVA, Ed: Tziolas & Sons, 10edition, 2015, ISBN: 978-960-418-500-9, Eudoxous code: 50655980
  2. Savitch Walter, JAVA, Ed: Tziolas & Sons, 7th edition, 2016, ISBN: 978-960-418-501-6, Eudoxous code: : 50655978
  3. Paul Deitel, Harvey Deitel, Java How to Program, Early Objects, Ed: Pearson, 11th edition, 2017, ISBN-13 : ‎ 978-0134743356
  4. Cay S. Horstmann, Big Java: Early Objects, Ed: Wiley, 2020, ISBN-13 : ‎ 978-1119740209
Complementary greek bibliography
  1. Λιακέας Γιώργος, Εισαγωγή στην Java, Κλειδάριθμος, 2015, ISBN: 9789604616596
  2. Deitel Harvey M., Deitel Paul J., Java προγραμματισμός, 10η έκοση, Γκιούρδας Μ., 2015, ISBN: 9789605126810