University of Oxford Logo University of OxfordSoftware Engineering - Home
On Facebook
Facebook
Follow us on twitter
Twitter
Linked in
Linked in
Google plus
Google plus
Digg
Digg
Pinterest
Pinterest
Stumble Upon
Stumble Upon

Object-Oriented Programming

This module teaches the concepts and principles of object-orientation, with an emphasis on the impact that the concept of an "object" has on practical programming. While the language used is Java, the majority of the material covered will apply equally well to any other object-oriented language: objects, messages, inheritance and polymorphism.

Course dates

9th October 2017Oxford University Department of Computer Science 0 places remaining.
19th March 2018Oxford University Department of Computer Science07 places remaining.

Objectives

On completion, students will be able to solve a range of standard programming problems in Java. They will be able to make educated assessments of the benefits of object orientation, and will be able to use standard Java mechanisms such as subtyping, inheritance and generics.

Contents

Basics:
Revision of basic OO terminology and Java syntax; UML class and sequence diagrams

Classes:
Declarations and definitions; fields;  methods; constructors; access control

Inheritance:
Polymorphism; subclassing vs subtyping; overloading vs overriding; dynamic binding; criticism

Generics:
Defining generic classes and functions; covariance and contravariance; wildcards and bounds

Further topics:
Exceptions; automatic memory management; iterators; comparable interface

Requirements

Some familiarity with imperative programming as well as a basic knowledge of object-oriented concepts (such as classes, inheritance, and polymorphism) will be helpful. Students are required to complete a self-test to assess whether they have the level of programming experience assumed in this course.