The Textbooks

Required Books

Head First Object-Oriented Analysis and Design by Brett D. McLaughlin, Gary Pollice, Dave West
This book covers object-oriented design principles and practice. It is 600 of the easiest textbook pages you will ever read, the concepts are not deep and the book hits every point from many angles. There is a downloads page which contains the code examples used in the text.
Head First Design Patterns by Elisabeth Freeman, Eric Freeman, Bert Bates, Kathy Sierra
This book covers design patterns in depth and also some on general object-oriented design principles.

Recommended Books

These books are basically tutorials on two topics, Eclipse and UML respectively.
Eclipse by Holzner
This book covers the Eclipse IDE as well as how to use Ant and CVS with Eclipse. If you are a whiz at learning complex software packages you can perhaps get by without this one. But, Eclipse is a very complex tool so I recommend a book.
UML Distilled by Fowler, third edition
Covers UML (plus a few facets of Object-Oriented Design). You don't have to buy this, but it is a very good reference to have.
There are also a couple recommended Java books on the Java Resources Page in case you feel the need for more Java information in print than you already have in your personal library.

Other Recommended Books

These books are not officially recommended, but we will be covering some material from them in lecture.
Refactoring by Fowler
Bible of Refactoring Technique. One chapter of this book will be passed out in class.
Effective Java by Bloch
Advanced Java programming tactics that we will cover some of in class.
Design Patterns by the Gang of Four
The Bible for Design Patterns.

Online Resources

Here are some other useful references.
Brad Appleton's on-line Patterns for Java and Distributed Computing
a good on-line resource for learning about design patterns.
www.extremeprogramming.org
A short introduction to extreme programming
Chapter 16 of Thinking in Java: Analysis and Design
This is a good whirlwind tour of Object-Oriented Design concepts
Ambler UML Intro
A good tutorial introduction to the different UML diagram types.