This book introduces the reader to a selection of ideas from computer science, encouraging him or her to experiment with these ideas using simple Java programs. In just over five hundred pages, the authors conduct a whistle-stop tour of web pages, Java applets, software engineering and development, OOP, simulation, machine architecture, assembly language translation, security, communications, parallel computation, non-computability and artificial intelligence. As I said before, it's a whistle-stop tour.
This book is unarguably very interesting. However, I'm not sure about the intended audience. Indeed, the authors' assumptions about the reader seem to change as the book proceeds. For example, the opening chapter explains how to assemble some basic web pages, using HTML. The explanation here seems to be aimed at someone who's perhaps never programmed before and needs a bit of hand-holding. Yet when it comes to getting connected to the Internet, the authors suggest that 'You may need to get help from a friend to get started ...' Similarly, when the authors expand their web pages to invoke Java applets, the reader is offered the following advice on setting up Java on their machine: 'You may have to get some help in adapting to your specific situation.' What's more, when I tried typing in and running a few examples of Java source code, I found some confusion over subroutine names between different parts of the book and my browser display didn't look like the pictures in the book. OK, I'm whinging but, hey, either we're catering for newbies here, in which case we should be making sure that the programs run as advertised, or we're not, in which case why labour the explanations?
I agonised long and hard over how best to advise other members of ACCU on purchasing this book. Eventually, I decided on the following. If you're looking for an informative overview of selected computer science concepts, at an introductory level, then this book should interest you. However, if you're looking for a book to teach you either Java programming or hard-core computer science, there are probably more suitable texts.