Harokopio University
School: School of Digital Technology
Department: Informatics and Telematics
Program: Undergraduate Programme

Object Oriented Programming I

Semester: 2 ECTS: 8.0 Compulsory Erasmus

General

Code: ΥΠ18

Language: Greek

Delivery: Face-to-face

Prerequisites: Προγραμματισμός 1

Workload

  • Lectures: 32.5 hours
  • Lab: 19.5 hours
  • Study: 83.0 hours
  • Project: 65.0 hours

Course Content

- Introduction to Object-Oriented Programming. Basic Java syntax: variables, constants, and basic types, conditionals, loops.
- Classes and Objects. Defining a class, attributes, methods, method calls, return values, static methods. Object creation, defining constructors, multiple constructors.
- Visibility Scopes. Accessing attributes, calling other methods, private and public attributes, getters and setters, the this keyword.
- Inheritance. Extending functionality by adding new methods. Subclasses and inheritance hierarchy. Accessing superclass attributes and the super keyword. Defining constructors in subclasses.
- Arrays. Implementing String using character arrays. Arrays of objects. Creating arrays, array size, creating objects inside arrays, array traversal, arrays as arguments, resizing arrays, and array lists.
- Input-Output, Files. Reading from and writing to text files. Scanner, PrintWriter, FileReader, and FileWriter. Exceptions related to files. Binary files: FileInputStream, FileOutputStream.
- Exception Handling. The try-catch-finally mechanism. Exceptions as objects. Defining new exceptions.
- Polymorphism. Method overloading. Method overriding. Method selection at runtime. Overriding toString and equals.
- Abstract Classes and Interfaces. Defining and using abstract classes. Implementing an interface. Extending and Interface.
- Abstract Data Types. Creating new data types with operations.

Learning Outcomes

The course introduces students to object-oriented programming. It aims to foster an understanding of the object-oriented philosophy and its advantages, as well as the development of applications using the object-oriented language Java. Upon completion of the course, students will be able to:
- Understand the fundamental features and advantages of object-oriented design.
- Apply the core concepts of an object-oriented programming language such as inheritance, polymorphism, etc.
- Develop programs and applications in the object-oriented language Java.
- Use integrated development environments (IDEs) that support object-oriented programming languages.

Skills

Search, analysis and synthesis of data and information with the use of the assorted technologies
Adaptation in new conditions
Independent work
Project design and management
Promoting free, creative and deductive reasoning