To call this book and introduction is understatement. The author tries to incorporate many programming elements that, in a college-level course, would be spread over semesters. For someone experienced with programming languages, especially {} languages derived from C, this book will be clear and useful. For students new to this sort of programming, the chapters are too dense with programming theory. The author covers in one chapter topics in programming that other texts would expand into three or more, giving a more complete and understandable explanation to the reader. This is a decent book for the experienced programmer looking to add Java to their portfolio, but not so much as an introduction to programming for a new learner.