3 Day – Object Oriented Programming

A 3 day course for staff with who want to understand the principles of Object Oriented Programming that can be applied to different programming environments. This course covers OO theory including classes, objects, attributes, methods, encapsulation, visibility, composition, inheritance, abstraction, and polymorphism. The course includes an introduction to design patterns and using UML class diagram notation. The application of OO programming concepts in a chosen language (one of Java, Python, C++ or Fortran 2003) is covered as part of the course.

Prerequisites

The course is designed for staff with a working knowledge of at least one programming language with an understanding of data types, flow control statements, and functions (subroutines or methods). Knowledge of working with structured data types (user defined types) or classes is useful but not essential.

Learning Objectives

To introduce staff to the basic principles of Object Oriented program development, specifically:

  • Understanding Object Oriented concepts
  • Designing classes and interfaces
  • Building class and object relationships
  • Working with composition and inheritance
  • Using abstract classes and interfaces
  • Identifying design patterns and idioms

Delivery

A mix of theory, demonstrations and exercises, with approximately 40% of the time allocated to practical hands-on design of objects, classes, and relationships.

Day 1 – Object Oriented Concepts

  • Identifying objects
  • Properties and attributes
  • Operations and methods
  • Visibility
  • Value and identity objects
  • Defining classes
  • Encapsulation and visibility
  • Using UML class diagrams

Day 2 – Object Relationships

  • Composition & Association
  • Inheritance
    Super and sub-types
  • Substitutability
  • Polymorphism
  • Abstract classes
  • Interfaces
  • Composition versus inheritance

Day 3 – Object Oriented Design

  • Design pattern concepts
  • Anti-patterns and idioms
  • Language support for OOP:
    Java, Python, C++ or Fortran 2003