Course Details
Course Code (English)
*
Semester
*
Title (English)
*
Lecture Hours (Weekly)
ECTS Credits
*
Course Type (English)
Prerequisites (English)
Course URL (e.g., on e-class)
Learning Outcomes (English)
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
General Competencies (English)
- Independent work - Team work - Promoting free, creative and deductive reasoning
Course Content (English)
- 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.
Use of ICT (English)
- Java IDE Eclipse/NetBeans - Dissemination and organization of course material using e-class
Is it elective?
Άγνωστο
Ναι
Όχι
Load within semester (Hours)
Lecture Hours
Lab Hours
Independent Study
*
Project Work
*
Lab Report
*