University of Oxford Logo University of OxfordSoftware Engineering - Home

Object-Oriented Programming

This is a course in object-oriented programming in Java; however, most of the ideas are applicable in any object-oriented language, and for that matter in any programming context. It will use an interactive development environment called BlueJ.

Course dates

18th November 2013Oxford University Department of Computer Science05 places remaining.
3rd March 2014Oxford University Department of Computer Science11 places remaining.
3rd November 2014Oxford University Department of Computer Science18 places remaining.

Objectives

On completion, students will be able to produce object-oriented solutions to a range of standard programming problems; they will be able to articulate and restructure programming objectives in the object-oriented paradigm. They will be informed with regard to the fundamental concepts and principles of object-oriented programming, and able to apply these in any programming language.

Contents

Principles of object-oriented programming:
abstraction and encapsulation; classes and objects; inheritance; polymorphism; object identity.
Classes:
declarations and definitions; methods; constructors; access control.
Inheritance:
subtyping, interfaces and abstract classes; overloading and overriding; single and multiple inheritance.
Polymorphism:
polymorphic methods, dynamic binding, genericity.
Message-passing:
the Java event model; threads.
Implementation techniques:
automatic memory management; pointers and references; the Java Virtual Machine and Java bytecode.
Criticisms of Java:
idiosyncrasies; dynamic binding; overloading, genericity; polymorphism in Java.

Requirements

A basic knowledge of object-oriented concepts (such as classes, inheritance, and polymorphism), including a little UML, will be helpful. The Object orientation course is a suitable introduction.