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.
|18th November 2013||Oxford University Department of Computer Science||05 places remaining.|
|3rd March 2014||Oxford University Department of Computer Science||11 places remaining.|
|3rd November 2014||Oxford University Department of Computer Science||18 places remaining.|
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.
- Principles of object-oriented programming:
- abstraction and encapsulation; classes and objects; inheritance; polymorphism; object identity.
- declarations and definitions; methods; constructors; access control.
- subtyping, interfaces and abstract classes; overloading and overriding; single and multiple inheritance.
- polymorphic methods, dynamic binding, genericity.
- 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.
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.