Course objectives list

Lectures

Labs

1. week: Not Too Short Introduction to OOP

  1. Set up the environment for working in the course.
  2. To master AlienBreed game rules.
  3. To understand objects and classes by playing the AlienBreed game.
  4. To get familiar with class diagram .
  5. TO get familiar with data encapsulation .

2. week: Red Alert: Reactor Overheat!

  1. Learn to create your own classes, their constructors and methods.
  2. Learn to overload implementation of a method for various types of parameters.
  3. Learn to represent the state of an object by instance variables (encapsulation of data).
  4. Learn to manage visibility of instance variables and methods.
  5. Learn to create object instances from classes.

3. week: Powering Devices

  1. Learning to use keyword this in your code.
  2. Learning to create parametrized constructors.
  3. Understanding usage of reference as a method parameter.

4. week: And... Action!

  1. Inheritance
  2. Overriding methods
  3. Polymorphism
  4. Using keyword super.
  5. Using method references.

5. week: Let's Have an Agreement

  1. Interfaces
  2. Polymorphism
  3. Refactoring

6. week: I knew you'd come (Ripley)

  1. Use static method main() for starting the application
  2. Learn to create and use your own enumeration type
  3. Get familiar with design pattern Observer (listener, callback)

8. week: Usable Items

  1. Use marker interface for distinguishing subgroup of objects
  2. Practice generic programming
  3. Learn to use design pattern Iterator
  4. Learn to raise and handle exceptions

10. week: Intricate Devices of Life and Death

  1. Precvičiť si použitie návrhového vzoru Observer .
  2. Implementovať vlastné funkcionálne rozhranie.
  3. Využiť kompozíciu namiesto dedenia ("Composition over inheritance").
  4. Využiť návrhový vzor Dekorátor na kompozíciu správania aktérov.

Assignments

7. week: Problemset 1: Training

  1. Testing your knowledge of basic principles of object-oriented programming.

11. week: Problemset 2: Project Ellen

  1. Implementovať vlastný herný level.
  2. Implementovať vlastných aktérov.
  3. Navrhnúť a implementovať vlastnú funkcionalitu objektovo orientovaným spôsobom.
  4. Identifikovať a použiť návrhové vzory vo vlastnom riešení.

Sources & info