Much like the "introductory" computer science course I took in Spring 1999, the meaning of the word "introductory" seems to be unclear. We begin the book with a very comforting foray into object-oriented programming with the authors telling the students to keep up with the readings and examples in order to be well on their way to solid programmers. And, these words are kept in the initial chapters as real-life examples meet their computer program counterparts. The examples are worked nicely and are somewhat easy to follow.
Once we hit Chapter 3, though, there is a whiplash transition in terms of the material covered. Before the student knows it, he or she is coding their own Java class with instance variables, interfaces, subclasses, reference variables, boolean expressions, arrays, vectors, enumerations, iteration, lists, searching, sorting, stacks, queues, exceptions, overloading, overriding and not to mention recursion. And, this is all before the half-way mark.
If the authors wish to promote a solid introductory book to the Java language, the first thing is to eliminate recursion. This is not introductory material. Even though the authors try to simplify the topic by constantly comparing example code to a dishwashing chore after a meal, recursion is as difficult as it sounds. Also, searching, sorting, stacks, and queues best fit a book on data structures. Overall, though, I must commend the authors on the use of English when writing this book. I have read too many books where the psuedo-code makes less sense than the actual code itself. Thankfully, this is not one of them. But, if the book were trimmed down to just the basics, then it would truly fit its title and serve as an excellent welcoming to the expansive library of the Java programming language.
Rating: B-