Course intended for:

The training is an introduction to object-based languages, using Java as an example. The participants will get familiar with the basic concepts of objectivity (inheritance, polymorphism etc.). Emphasis is put mainly on the practical skills associated with use of the proper object-oriented techniques in the context of specific problems.

Course objective:

After the training, the participants should have the following knowledge/ skills:

  • Effective use of object-oriented concepts – classes, abstract classes, inheritance, polymorphism etc.

  • Model problems using the above concepts

  • Identify design problems and appropriately select the tools needed

  • Get basic knowledge of design patterns and understand the reasons for their use


The training can be attended by programmers, starting to learn object-oriented programming languages, such as Java, C#. Although the training is based on Java language, its structure allows for easy transferring of the concepts learned to other object-oriented languages.

Course parameters:

3*8 hours (3*7 net hours) of lectures and workshops (with a visible emphasis on workshops).

Group size: no more than 8-10 participants.

Course curriculum

  1. Introduction

    1. Imperative programming

    2. Declarative programming

    3. Object-oriented programming

    4. Functional programming

  2. Installation and configuration of the work environment (IntelliJ IDEA, Eclipse IDE or NetBeans IDE depending on group preferences)

  3. Object orientation – the example of Java language: basic topics:

    1. Classes and objects

    2. Interfaces

    3. Enumerations

    4. Abstract classes

    5. Inheritance

  4. Object orientation – the example of Java language: advanced topics:

    1. Polymorphism

    2. Internal classes

    3. Anonymous classes

  5. Modeling of problems using UML

    1. Introduction to UML notation

    2. The class diagram

      1. Associations

      2. Aggregations

      3. Dependencies

      4. Generalizations

      5. realizations

  6. Object-oriented programming- a practical approach

    1. The principle of responsibility

    2. Why encapsulation is (usually) better than multi-level inheritance?

    3. Programming through interfaces

    4. A code defending itself against modification, encouraging development

  7. Introduction to design patterns

    1. Gang-of-Four (GoF)

    2. Singleton as an example of a creational pattern

    3. Decorator as an example of a structural pattern

    4. Template as an example of a behavioral pattern

Any questions?

* Required.

Phone +48 22 2035600
Fax +48 22 2035601