



Next: Paper 1: Software Design Up: Lent Term 2009: Part Previous: Paper 1: Programming Methods Contents
Paper 1: Programming in Java
Lecturers: Dr A.R. Beresford and Dr A.C. Rice
No. of practical classes: 8 2-hour sessions
Prerequisite course: Foundations of Computer Science
Companion courses: Software Design, Floating-Point Computation, Programming Methods
This course is a prerequisite for Algorithms I and II, and for the Group Project and Part IB course Concurrent Systems and Applications.
Aims
The goal of this course is to provide students with the ability to write programs in Java and apply concepts from the Software Design course to concrete examples. The course is designed to accommodate students with diverse programming backgrounds; consequently Java is taught from first principles in a practical class setting where students can work at their own pace from a course handbook. Each practical class will culminate in an assessed exercise.
Practical classes
- Introduction.
This class will introduce the students to PWF Linux, the Java compiler
and tool chain. Students will design, implement and test their first
Java application.
- Methods, operators and types.
This class will concentrate on the fundamentals of imperative
programming. Students will learn about Java primitive types, variable
declaration, operators and method calls.
- Control structures and exceptions.
Students will explore the control structures found in Java. Students
will also explore exceptions and how they affect the control structure
and calling pattern in Java programs.
- Input/Output.
This class will examine streams. Students will read and write data to
and from the filesystem and network.
- Classes and interfaces.
This class will explore object-oriented programming as
expressed in Java. Students will define new classes and instantiate
them, as well as specify and provide implementations for Java
interfaces.
- Inheritance and inner classes.
Students will examine code-reuse through inheritance and the use of
inner classes for encapsulation. Students will revisit exception
handling and define their own exceptions.
- Packages and access modifiers; Generics; JAR files.
This class will explain how Java packages aid encapsulation and help
in the construction of libraries. Students will also explore the
packaging of library routines into JAR files and the use of generics
to enable generalization and aid code reuse.
- Extended exercise.
Students will design and begin the implementation of a program design
task first described in the Programming Methods course. Students will
complete the implementation and testing over the Easter vacation.
Objectives
At the end of the course students should
- be familiar with the main features of the Java language
- be able to write a Java program to solve a well specified problem
- understand a Java program written by someone else
- be able to debug and test Java programs and use JUnit
- be familiar with major parts of Java 6 SE libraries
- understand how to read Javadoc library documentation and reuse library code
Recommended reading
* Eckel, B. (2006). Thinking in Java. Prentice Hall (4th ed.).




Next: Paper 1: Software Design Up: Lent Term 2009: Part Previous: Paper 1: Programming Methods Contents