Object-Oriented Programming with Java
(5 ECTS) 173226
Olio-ohjelmointi
(5 op = 3 ov) 173226
Instructor: Dr. Eugene Ageenko.
The course was taught in 2001 - 2005. Curently, the course is taught by Dr. Alexander Kolesnikov
The course gives in depth
description of theoretical principles and concepts that lies behind
Object-Oriented Programming, as well as training of practical skills in
OOP software development using Java Web programming. The course covers
such OOP aspects as, OOP thinking paradigm, message passing,
information hiding, classes, interfaces and implementations,
instantiation and initialization (constructors), mechanisms for
software reuse, inheritance and delegation, replacement and refinement,
polymorphism and substitutability, concept reuse and application
frameworks, Web development with Java API, GUI, event delegation,
painting in Java; as well as recently introduced advanced topics, such
as refactoring and reflection, and conceptual programming using
generics and templates. The course contains an obligatory project work.
ORIGINAL COURSE CONTENT:
- Introduction
- Why OOP, Brief history of OOP, Why Java?
- Java language essentials structures:
- types, variables, operators, expressions, statements,
control flow, arrays, strings
- Theoretical foundation of OOP
- OOP paradigm and principles:
- message passing, information hiding, object instantiation,
class hierarchies, task delegation,
- Programming in the small vs. in the large
- Object-oriented Programming (with Java)
- Encapsulation:
- Classes, interface and implementations, control of
visibility, instantiation and initialization (constructors), methods
and message passing
- Inheritance:
- Properties, forms of inheritance, benefits and costs of
inheritance
- Mechanisms for software reuse:
- Polymorphism, composition and inheritance (Is-A and Has-A
relationships), replacement and refinement, object constructions,
interfaces, limitations of polymorphism in Java, future of software
reuse
- Frameworks:
- Reuse of the concept principle:
- Frameworks in Java, Java Input/Output framework, The Java
Application Framework, Web development - The Applet API
- Principles of Java GUI:
- Interactive components, event delegation model, inner
classes and adapters, layout managers, painting on the screen, advanced
GUI issues,
- Standalone GUI applications
FEEDBACK: