Functional and flexible, this guide takes an objects-first approach to Java programming and problem using games and puzzles. Updated to cover Java version 1.5 features, such as generic types, enumerated types, and the Scanner class. Offers independent introductions to both a command-line interface and a graphical user interface (GUI). Features coverage of Unified Modeling Language (UML), the industry-standard, object-oriented design tool. Illustrates key aspects of Java with a collection of game and puzzle examples. Instructor and Student resources available online. For introductory computer programming students or professionals interested in learning Java. The book starts from scratch. You do not have to know anything about Java. What Morelli and Walde offer is an education that emphasises an object oriented programming mentality, from the very start. The text shows how Java enforces a strict OO coding. Unlike C++, for example, which was bolted onto C as a superset, and accordingly has to accept (endure would be a better word) procedural C code as valid. So thoroughly do the authors want you to learn OO programming that there is no mention of the alternative of procedural programming in other languages! They don't want to confuse the reader, who is probably assumed to be new to programming in general, and not just Java. Now the book also holds true to its claim in the title of "Problem Solving". It causes the book to be relatively weak in explaining how to write a user interface with Java widgets. Yes, there is a couple of chapters on this. But the topic is deprecated. The book's clear strength is in the majority of its space being devoted to tackling various problems. Chosen so that you don't need a fancy UI over them. The problems can be handled as pure computations, with perhaps a minimal I/O and stdout user interface. Of course, the problems were also chosen so that the authors could demonstrate solutions that take advantage of OO design. An important extra benefit is that you get acquainted with the various Java collection classes. These come with the standard Java distribution. They implement key ideas in computer science, like lists, queues, stacks, arrays and hash tables. Professional Java programmers use these extensively. They have a lot of functionality, that is stable and well-tested by Sun itself. These classes address both the OO and problem solving themes of the book. Being Java classes, they are inherently objects to be used in an OO manner. But the sheer utility of these for handling many problems is also a good education for you.