



Next: Paper 1: Programming in Up: Lent Term 2010: Part Previous: Lent Term 2010: Part Contents
Paper 1: Object-Oriented Programming
Lecturers: Dr R.K. Harle and Dr A.F. Blackwell
No. of lectures: 9
Companion courses: Software Design, Programming in Java
Aims
This course will run in parallel with the Programming in Java practical course. It is intended to provide both an introduction to Java that complements the practical workbooks and to highlight the abstract notion of object-oriented programming. Examples and discussions will use Java primarily, but other languages may be used to illustrate specific points where appropriate.
Syllabus
- Computer fundamentals. High-level view of a computer. Memory
management in brief. Pointers and their uses. The notion of a
JVM. The notion of objects. References. Practicalities of creating
and running a Java program. Java and garbage collection. [1 lecture]
- Object-oriented programming (OOP). Evolution of OOP. Java as
a pure OO language. The OO design process. Identifying
objects. Modularity. Encapsulation. Data hiding. Inheritance. Constructors and
destructors. Polymorphic behaviour and its uses. Examples in
Java. [3 lectures]
- Java class libraries and design patterns.
Overview of commonly used structures in the class library. Extending a
standard structure. Finding documentation. [2 lectures]
- Design patterns and design examples. Introduction to design
patterns. Applying design patterns to example problems. Design
patterns in the Java class library. Examples of building a Java
program from problem statement to testing. [2 lectures]
- Common Java errors.
The need for care with syntax. Numerical overflow and other common
problems. [1 lecture]
Objectives
At the end of the course students should
- understand the principles of OOP;
- be able to demonstrate good object-oriented programming skills
in Java;
- understand the capabilities and limitations of Java;
- be able to describe, recognise, apply and implement selected design
patterns in Java;
- be familiar with common errors in Java and its associated
libraries.
Recommended reading
No single text book covers all of the topics in this course. For those new to OOP, the best introductions are usually found in the introductory programming texts for OOP languages (such as Java, python or C++). Look for those that are for people new to programming rather than those that are designed for programmers transitioning between languages (the Deitel book is highlighted for this reason). The web is also a very useful resource -- look for Java tutorials.
* Deitel, H.M. & Deitel, P.J. (2003). Java: How to Program. Prentice Hall.
Flanagan, D. (2005). Java in a nutshell : a desktop quick reference. O'Reilly (5th ed.).
Flanagan, D. (2004). Java examples in a nutshell : a tutorial companion to Java in a nutshell. O'Reilly (3rd ed.).
Gamma, E., Helm, R., Johnson, R. & Vlissides, A. (1995). Design patterns: elements of reusable object-oriented software. Addison-Wesley.
Bloch, J. & Gafter, N. (2005). Java puzzlers. Addison-Wesley.




Next: Paper 1: Programming in Up: Lent Term 2010: Part Previous: Lent Term 2010: Part Contents