Semester 2

Course: Object Oriented Programming I

Course Code: MK10
Course Level: Undergratuate
Obligatory/Elective: Elective
Semester: 2
Division: Main Course
Group: Main Course
ECTS Credits: 5
Hours Per Week: 4
Language: Greek

The course introduces students to the concepts related to Object Oriented programming, aiming to learn the most popular object-oriented programming language, Java. Students will come in contact with concepts such as subtraction, polymorphism, and see how they are implemented through heredity, content, and interfaces. The course deals with stream and file management, code debugging techniques and dynamic data set management. Students will be trained in the use of threads in order to create multi-threaded applications. Students will also gain hands on experience in using the above concepts through their involvement with the Java programming language, both through a series of laboratory courses and through programming assignments.

Course outline:

  • Section 1: Introduction to Object Oriented Programming, Basic Concepts, Types and Generations of Programming Languages, Java (History, Versions, Technologies, Advantages)
  • Section 2: Java Code Development, the first program, operators, control commands, iteration structures, input-output commands, basic libraries / packages, IDE environments
  • Section 3: Classes & Objects, Implementing Classes and Objects in Java, Designing Classes, Member Data, Member Functions, Constructors, Data Access Types, Definition and Use of Objects
  • Section 4: Classes & Objects, modifiers, get, set, toString functions, const, static, overload mechanism, string management
  • Section 5: Data Sets, One-Dimensional and Two-Dimensional Tables, Arraylists, Access mechanisms, Iterators
  • Section 6: Composition, objects as data members of classes, how to handle objects, examples of composition
  • Section 7: Inheritance, implementation of class hierarchy, superclasses, subclasses, override of functions, comparison between inheritance and composition
  • Section 8: Polymorphism, Abstract Classes, Dynamic and Static Binding, Data Type Conversion, Examples of Polymorphism
  • Section 9: Interfaces, scope, objectives, "multiple" inheritance
  • Section 10: Exceptions, Exception Management, Hierarchy, Chain Exceptions, Defining new Exception, Error management.
  • Section 11: Graphical User Interface, Introduction to Swing Library, Graphical Components, Colors, Fonts, Shapes, Event Managers, Listeners
  • Section 12: Parallel Scheduling, Threads, Priorities, Synchronization
  • Section 13: Files / Databases, file entry and exit, database creation, Connection to DB , POJO (Plain Old Java Objects)
Learning Outcomes:

Upon successful completion of the course students will be able to:
Understand in depth the principles of Object-Oriented
Design and implement object-oriented applications.
Understand in-depth the concepts of encapsulation,
polymorphism and inheritance.
Implement classes with their members and methods and create
Understand and use abstract classes.
Understand the use and operation of arrays, strings, and
collections in Java.
Design and develop simple and complex applications with Java
Design and develop graphical user interfaces with Java language.
Understand in-depth the exception mechanism supported by Java
and define new exceptions.
Understand the concept of parallel programming by using threads.
Recognize code errors and have the ability to correct them.
Evaluate solutions and choose the most appropriate one to apply
to real problems.



Teaching Methods:
Method Description Semester Workload
Lectures 26
Laboratory Practice 26
Team work 26
Self-directed study 47
Total 125

The evaluation of students is carried out with:

  • Written evaluation
  • Laboratory examination
  • Application Development (Teamwork)

The written evaluation is intended to examine the
students' knowledge of the taught material and to
capture the degree of its assimilation. Includes
multiple choice questions, free questions
but also short answers, code evaluation,
code development.
The purpose of the laboratory exams is to determine the
degree of students familiarity when designing and
developing Java applications in limited time. It includes
short application development in Java language.
The teamwork includes application development in Java into
teams of two persons. The applications implemented in Java
are submitted electronically in the e-class platform.
The final evaluation of the students is as follows:
60% Grade of written examination + 20% Grade of teamwork
+ 20% Grade of laboratory examination

Suggested Books:

Books (in Greek)

  1. Savitch Walter, Absolute Java (contains CD), Pearson.
  2. Deitel Paul J., Deitel Harvey M., Java how to program, Prentice Hall
  3. H. Schildt,. Java A Begginner’s Guide, McGraw-Hill Osborne Media.
  4. E. Lervik and VB Havdal, Java the UML way, Wiley.
  5. R. Cadenhead and L. Lemay, Java 7, Sams Publishing.


  • Science of Computer programming, Elsevier
  • Journal of Systems and Software, Elsevier
  • Proceedings of the ACM on Programming Languages, ACM
Lecturer: Bibi Stamatia