Reading list (Object-Oriented Programming)

From Spivey's Corner
Jump to: navigation, search


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, £47.99, ISBN 0201657686.

except that we shall be emphasizing programming examples much more than that book – and our programs will be written in Scala not Java.

As a guide to Scala, we will use

Martin Odersky, Lex Spoon and Bill Venners, Programming in Scala.


For reading around the course, I recommend a number of other books. The structure of our programs will resonate with some of the 'design patterns' that have become a popular way to think about object-oriented programs. A chatty and accessible introduction to design patterns is this book:

Head First Design Patterns

The design patterns movement started with the book,


Also helpful as an account of design by contract is

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

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.