/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.