Textbooks
Required Textbook: Barbara Liskov with John Guttag. Program Development in Java. Addison Wesley 2001
This is the primary textbook for this course.
Required Textbook: Peter Sestoft. Java Precisely, Second Edition. MIT Press, 2005.
The little book by Sestoft is a concise description of the structure of Java programming language and is an invaluable reference to keep long after you finish the final exam.
Required Textbook: Joshua Bloch. Effective Java, Second Edition. Addison Wesley, 2008.
This book describes the effective style of programming in Java, highlighting the techniques that use Java effectively. It is an invaluable reference for anyone programming in Java and the issues it addresses apply to programs written in other languages as well.
Recommended Free Online Textbook: Duane Bailey. Data Structures in Java, for the Principled Programmer, 2nd Edition McGraw Hill 2003.
PDF available online at http://www.cs.williams.edu/javastructures/Welcome.html
This textbook introduces some of the classical data structures and algorithms that every professional programmer should be familiar with. We will see some of them, but we suggest that you continue reading texts like this to increase your repertoire of problem-solving strategies and techniques.
Additional reading material will be provided here as the course evolves.