Object Oriented Programming II
General
Code: ΥΠ10
Language: Greek
Delivery: Face-to-face
Prerequisites: Object-Oriented Programming 1
Workload
- Lectures: 26.0 hours
- Lab: 0.0 hours
- Study: 47.0 hours
- Project: 52.0 hours
Course Content
- 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.
Learning 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
Skills
- Independent work
- Team work
- Promoting free, creative and deductive reasoning
