Next: Software Engineering I (50%
Up: Lent Term 2004: Part
Previous: Probability (50% option only)
  Contents
Programming in Java
Lecturer: Dr A.F. Blackwell
No. of lectures: 16
This course is a prerequisite for Concurrent Systems and Applications, Group Project.
Aims
This course is provided to ensure that all students have exposure
to a common imperative programming language. It will give them
experience with the fundamentals of object-oriented programming,
and provide a foundation upon which various Part IB courses
(especially the Group Project) can build. It also provides
specific guidance on the design and debugging of (small) programs
to complement Software Engineering which will concentrate
on issues that arise with larger bodies of code.
Lectures
- Fundamentals.
Concepts and teaching environment.
- Objects.
Classes, methods, instances and state.
- Class definitions.
Fields, constructors and parameters.
- Object interaction.
Abstraction and modularisation, method calls.
- Grouping objects.
Collections, loops, iterators and arrays.
- Java libraries.
Packages, libraries, interfaces and documentation.
- Quality assurance.
Testing, debugging, test automation and writing for maintainability.
- Designing classes.
Responsibility-driven design, coupling, cohesion and refactoring.
- Inheritance.
Inheritance, subtyping, substitution and polymorphic variables.
- Polymorphism.
Method polymorphism, static and dynamic type, overriding, dynamic method lookup and protected access.
- Flexible class structures.
Abstract classes, interfaces, multiple inheritance.
- Handling errors.
Defensive programming, anticipating that things could go wrong, exception handling and throwing, error reporting, file processing.
- Application development.
Case study, discovering classes, CRC cards, designing interfaces and patterns.
Objectives
At the end of the course students will be able to write Java code both
in the form of applications and applets. They should have an overview
of all features of the language and of major parts of its associated
libraries.
Recommended book
*Barnes, D.J. & Kölling, M. (2003).
Objects first with Java: A practical introduction using BlueJ.
Pearson Education.
Next: Software Engineering I (50%
Up: Lent Term 2004: Part
Previous: Probability (50% option only)
  Contents
Christine Northeast
Thu Sep 4 15:29:01 BST 2003