Reading list (Object-Oriented Programming)
There is no set text for the course, in the sense of a book that we will work our way through, lecture by lecture. The closest book in spirit to the course is
Barbara Liskov, Program Development in Java, Addison-Wesley, 2001, £41.99, ISBN 0201657686.
except that we shall be emphasizing programming examples much more than that book.
I've written a brief guide to using the book with this course.
We will not spend much time on the details of the Java language or libraries, as covering them comprehensively would leave less than no time for anything else. A handy reference for language details is
Peter Sestoft, Java Precisely, MIT Press, 2002, £10.95, ISBN 0262692767.
This book will be very useful for the practical exercises, though it does not cover the generic classes introduced in Java 1.5 (= Java 5.0).
Another useful introduction to Java is
Pat Niemeyer, Learning Java (3rd ed.), O'Reilly, 2005, £31.95, ISBN 0596008732.
Earlier editions of this book will be almost as useful, but only the third edition covers generics.
Finally, for reading around the course, I recommend a number of other books. First,
Bertrand Meyer, Object-Oriented Software Construction, SAMS, 1997, £35.37, ISBN 0136291554.
This book is based on the Eiffel language invented by the author rather than Java.
Here is a book about restructuring programs to make them more clear, the program maintenance counterpart of modular design. It resonates well with the lecturer's experience of designing for clarity and robustness.
Martin Fowler, Refactoring: improving the design of existing code, Addison-Wesley, 2000, £37.99, ISBN 0201485672.
Also the following books about programming more generally would be good companions to the course:
Jon Bentley, Programming Pearls (2nd ed.), Addison-Wesley, 2000, £21.99, ISBN 0201657880.
Brian W. Kernighan and Rob Pike, The Practice of Programming, Addison-Wesley, 1999, £22.99, ISBN 020161586X.