



Next: Paper 1: Programming in Up: Lent Term 2009: Part Previous: Paper 2: Professional Practice Contents
Paper 1: Programming Methods
Lecturer: Dr R.K. Harle
No. of lectures: 6
Prerequisite courses: Software Design, Programming in Java
Aims
This course is primarily intended to reinforce the concepts introduced in the Software Design lecture course and the Programming in Java practical course. Students will be led through a series of example Java-based projects, from requirements to testing, as well as being introduced to important concepts useful in larger programming projects (design patterns, debuggers, testing methodologies, common Java errors).
Syllabus
This course will cover the elements listed below, but not necessarily in a linear fashion. New material will be discussed in the context of examples and may not be treated in depth.
- Design cycle illustration.
Specification to requirements to implementation to
testing. Identifying Objects. Refactoring.
- Java class libraries.
Correctly using in-built Java data structures. Extending a
standard structure.
- Design patterns.
History. Usage in Java class libraries and common frameworks. Major
patterns with examples in Java.
- Debuggers.
Basic debugging (breaking, stepping, local variables). JPDA as an example of a
software architecture.
- Testing.
Unit testing. Black box testing. White box testing. Regression testing.
- Common Java errors.
The need for care with syntax. Numerical overflow and other common problems.
Objectives
At the end of the course students should
- be able to describe and implement the major design patterns
- be able to take a small software project from specification to
implementation and test it conforms to the specification
- be able to demonstrate good object-oriented programming skills
- be able to define a suitable test procedure for code they have
written
- be familiar with common errors in Java and its associated
libraries
- be familiar with debugging terminology
Recommended reading
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 2009: Part Previous: Paper 2: Professional Practice Contents