Why write yet another introductory Java book? The answer is simple; I was unable to find a suitable textbook for teaching introductory Java programming. This is for three main reasons. First, every Java textbook I looked at, or taught from, was too tedious to read. I could not justify asking my students to read something that I was incapable of reading. Second, every text I reviewed piled on so much detail in the beginning, that the essential issues of object programming were obscured. It was as if every author embraced the C and C++ tradition of teaching if-else and iteration before graphics and inheritance; this text breaks with that tradition. Third, I have found that introductory programming students do better in the long run (i.e., in upper level CS courses) when they learn a modern IDE from the beginning. Very few texts incorporate treatment of an IDE. I wanted to use a modern, freely available IDE, and NetBeans™ works quite well. This text teaches NetBeans in addition to Java.
Here at Willamette University, we have used a preliminary version of this text in four introductory programming courses, and the students like it very much.