ΥΠ10 - Object Oriented Programming II

Information

Code : ΥΠ10

Type : Obligatory

Semester : 3

ECTS credits: 6

Course URL: https://eclass.hua.gr/courses/DIT267/

Expected Outcomes

The objective of the course is to deepen on the design and development of applications using the object-oriented programming paradigm. It covers the basic principles and techniques used in the object-oriented design. It presents well-know design patterns and studies how those are applied to the design of well-known software libraries. It applies the paradigm of object-oriented programming in practice using Java.

Students that will successfully complete this course should be able to:
- recall the basic principles and techniques of object-oriented programming
- design and implement applications with complex features
- identify and use design patterns
- use third-party libraries and data structures

Content

- Object, message, class, method, object construction, static methods.
- Data abstraction, the relation “has-a” and “is”, composite objects, encapsulation, private and public access, inheritance, interfaces, interface extensions, packages.
- Polymorphism, method overloading, method overriding, abstract classes, template class design pattern, generics.
- Collections, setters and getters, object equality, object comparison, iterators, inner classes.
- Input and output streams, decorators, composite pattern, streams of characters, adapters, exception handling.
- Event logging, interface of a logger, levels of logging, chain of responsibility, logger construction, factories, singletons.
- Windows, graphic components, component placement, strategy pattern, Swing.
- Event-driven programming, observers, events and listeners, the interfaces of events and listeners in Swing, anonymous classes, the command pattern.
- The model-view-controller pattern.
- Defensive programming, assertions, unit testing, JUnit, mock objects, test-driven development.

Evaluation Means

Final written exams (60%)
Group assignments (40%)

Bibliοgraphy

- Clean Code A Handbook of Agile Software Craftsmanship, Author: Robert Cecil Martin, a.k.a. Uncle Bob, Publisher: Pearson Education.
- Java How to Program, Early Objects, 11th Edition, Author: Paul Deitel, Publisher: Pearson

- Conference on Object-oriented Programming, Systems, Languages and Applications (OOPSLA)