|Programming Essentials Using Java|
Author: William McAllister and S. Jane Fritz
This is a large format, heavy book, well the paper version is. It is lavish and full color but it is also more like a school book than anything else. This isn't necessarily a bad thing as it maybe what you are looking for. As its subtitle, "A Game Application Approach" indicates, it teaches Java using a game-based approach and there is a DVD bound into the back with the code ready for you to run.
Chapter 1 is a strange and almost out of place history of computing. If you know about this you can skip it, but make sure you read the part about the game environment.
Chapter 2 is where learning Java starts. It takes a very conventional approach and introduces variables, output and arithmetic. The descriptions are detailed and the beginner isn't spared the deeper concepts for the sake of getting started. For example, the distinction between "primitive variables" and "reference variables" is introduced. I can't say I've ever heard of "primitive" being used to describe a variable that obeys value semantics.
Chapter 3 jumps into the deep water with a the idea of classes, methods and object. For me, even though this is billed as a "first look" is too much too soon. If the reader really is a beginner then they have little idea what a variable is and even less what flow of control is all about. To raise the idea of objects, classes and methods before flow of control and functions is likely to be confusing.
Chatpter 4 starts to look at flow of control but via Boolean expressions and if statements. Loops are introduced in Chapter 5 and we study for loops and while loops. Chapter 6 introduces arrays and the for loop really comes into its own. Another odd topic is the use of passing arrays of "primitives" and objects to a "worker" method. I found this all very confusing. Apparently arrays are "stored" in objects - personally I think it's more realistic to recognize that a Java array is an object. The chapter ends with collection of "array" algorithms - searching, sorting, maximum, minimum, selection sort and so on. Most of these would be well beyond a beginner at the stage that the book has reached.
Chapter 7 dives deep into methods, classes and objects. It doesn't go the usual route, though, as it starts with static methods, comparing objects, aggregation and inner classes. For inheritance you have to move on to Chapter 8, where the basics are again postponed to look at UML diagrams. Overall this isn't a simple introduction to inheritance - it is a detailed dissection of all of the variations of polymorphism and inheritance possible. You can guess what Chapter 9 is about? Recursion! Yes this marks the book as an academic exercise rather than a practical introduction to Java. Recursion is an important topic for any programmer, but putting a whole chapter on it in an introductory book is a mistake.
The final chapter is on the collections framework, and this does deserve inclusion since, after the array, collections are what you end up using the most. This is where we meet the idea of generics - but really it should have a chapter to itself.
You may remember that I said that this was a game-motivated approach and yet so far I haven't mentioned any games. The reason is that the book isn't structured around creating a game but more the needs of the Java language. Constructing a game comes into the discussion whenever some code is needed. The problem is that the listings are presented as fairly long chunks and they aren't particularly effective in explaining the concepts in the chapter. The examples are more like interludes than amplifications.
This is a big book with lots of color illustrations that make you feel that the material is easy. However, the explanations aren't particularly progressive and you meet some advanced ideas almost along the way. The biggest problem is a lack of theoretical clarity - are we talking about machine addresses, references or something else. The idea that in Java everything is an object isn't emphasized strongly enough.
Overall it reads more like a stream-of-consciousness attempt to explain topics where what is needed is plucked from the air and presented as a logical step in learning, but without being given an importance of it own.
Not a great book but I've read worse.
|Last Updated ( Tuesday, 21 May 2019 )|