Introduction to Programming Notes 2001

These notes were produced to accompany the course Introduction to Programming which I taught in the three academic years 1998-2001. The code described in these notes, (which the notes say is in the local directory /import/teaching/BSc/1st/ItP) can be found here, along with some other material described in the lecture summaries for the last year I taught the course.

The notes were produced to accompany lectures and textbooks, not to replace them, and in the final year I taught the course I concentrated particularly on building up a set of external links rather than extending or modifying the notes. So while they may be read in order as a tutorial in programming using Java with the emphasis I felt appropriate for the course, they are not a complete piece of work, nor are they my final thoughts on "how to program using Java".

A few of these notes were written by other members of staff who assisted me on this course, acknowledgement is given where this is the case.

Starting off: "Hello" examples
Simple Arithmetic: Exercises and Solutions
Simple Objects: "IntObj" examples: part 1
Overloading, destructive v. constructive methods, static methods: "IntObj" examples: part 2
Strings, interfaces and variables: "String transformers" examples: part 1
More objects and interfaces "Drinks Machine" examples
Mutable v. immutable objects, class variables "String transformers" examples: part 2
Numbers and functions: "TwoNums" examples
While and do loops: "Average" examples: part 1
For loops: Exercises and Solutions
Iteration and recursion: "Triangles" examples
Extra revision exercises: for loops, while loops, do loops
Breaks, reading from files and exceptions: "Average" examples: part 2
Arrays: "Numbers" examples: part 1
Sorting, aliasing, more destructive v. constructive operations: "Numbers" examples: part 2
If and switch statements: Exercises and Solutions
Objects: "Dates" example: part 1
Inheritance and making your own exceptions: "Dates" example: part 2
Mutable objects and data hiding: "Dates" example: part 3
IS-A v. HAS-A and generic code: "People" examples
More inheritance and generic code, plus string tokenizers: "Students" example
A larger example, covering most of the material so far: "MineSweeper" example
Interface use and more array manipulation: "Student database" examples: part 1
Introducing linked lists "Student database" examples: part 2
The abstract data structure: list
The abstract data structure stack: "Brackets" example
Introducing trees "Student database" examples: part 3
Trees and Enumerations "Trees" examples

See here for the local copy of the 2nd edition of Bruce Eckel's "Thinking in Java" that used to be available here. I have since made a local copy of the 3rd edition available here with frames and without frames. Original reference site is here.