Object-Oriented Programming II
| Course Code | 321-3650 |
|---|---|
| Semester | 3 |
| ECTS | 5.00 |
| Hours (Theory) | 3 |
| Hours (Lab) | 2 |
| Instructor | Fakis Alexandros |
Course Content
- Introduction to OOP and UML.
- Java Language Fundamentals: Data types, Variable declarations, Operators and Assignment, Control structures, Strings, Arrays, Collections, Wrapper classes, Record classes.
- Java as an OOP language: Classes, Constructors, Access modifiers, Packages, Interfaces, Garbage collection, Encapsulation, Cohesion, Coupling.
- Exception Handling: Basics, Exception Hierarchy, The Throwable class, Unchecked and checked exceptions, Exception and Inheritance, User defined Exceptions, Redirecting and Re-throwing Exceptions
- Introduction to Concurrent programming and Multithreading: Introduction, Thread Creation, Thread Life cycle, priorities and scheduling, Synchronization, Communication of Threads.
- Files and I/O Streams: File Input stream and File output stream, Serialization.
- AWT, Swings, JavaFX.
Learning Outcomes
This course covers the fundamentals of Object Oriented Programming (OOP) using Java. The main learning objectives for this course are:
- To build and develop OOP thinking: Learn to think in objects.
- Τo familiarize students with the basic features of the language API and the know-how to use them correctly and efficiently
- Τo cover the usage principles of encapsulation, coupling, cohesion, inheritance, polymorphism and method overloading/overriding
- Τo teach and demonstrate sound OOP practices and program structuring
- To develop analytical programming thinking and reasoning skills.
The aforementioned objectives are achieved through course lectures and extensive laboratory exercises.
Prerequisites
Not required.
Teaching and Learning Methods
| Activity | Semester workload |
|---|---|
| Lectures | 39 hours |
| Laboratory Exercises | 26 hours |
| Personal study | 56 hours |
| Mid-term exam | 1 hour |
| Final exams | 3 hours |
| Course total | 125 hours (5 ECTS) |
Assessment Methods / Grading
Written examinations (70%) which includes:
- Multiple choice questions.
- Short-answer questions.
- Problem solving.
Laboratory examination (30%) which includes:
- 3 programming projects.
- Oral examination.
Teaching Language
Greek (English for Erasmus students)

