Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Learning Java with games
Xu C., Springer International Publishing, New York, NY, 2018. 563 pp. Type: Book (978-3-319728-85-8)
Date Reviewed: Dec 6 2019

True to its title, this book will guide readers through Java with an appealing, well-structured sequence of increasingly complex coding tasks, leading eventually to journeyman fluency in writing a graphical user interface (GUI) application--that is, if one is willing to overcome some shortcomings in the process.

The content consists of four parts. Part 1 (chapters 1 through 4) covers the fundamentals. Chapter 1 is a brief introduction to computing and programming languages, object-oriented concepts, problem solving, and writing code within an integrated development environment (IDE). Notably, it does not state the prerequisites for reading. Chapter 2 is about the simple mechanics of writing code in Java, covering primitive types, files, and exceptions. Chapter 3 presents and illustrates the “learning with games” metaphor. Chapter 4 shows the rudiments of code organizations around a Wheel of Fortune game metaphor. It also introduces the unified modeling language (UML) as a design tool.

Part 2 (chapters 5 through 10) covers event-driven coding tasks. Chapter 5 provides the ABCs of GUI coding for Java with the Abstract Windows Toolkit (AWT) and Swing, and illustrates how to use object-oriented inheritance. Chapter 6 builds on the previous chapter with events, more involved UML representations, layout managers, interfaces, and abstract classes. Chapter 7 shows how to design code for modularity, at first for a text driver command-line implementation and then for the same code using a GUI, all organized around an anagram game. Chapter 8 digs deeper into the semantics of the event model of Java GUI libraries for a game of blackjack. Chapter 9 shows how to add nontrivial algorithmic behavior to games like sudoku. Chapter 10 elaborates on handling mouse-driven user events for the card game Agnes.

Part 3 (chapters 11 through 21) covers code and games with asynchronous animation. Chapter 11 brings animation into the picture by building a simple clock. Chapter 12 merges techniques for visualization, event handling, and asynchronous animation when revisiting the Wheel of Fortune game. Chapter 13 builds Pong with sprites, collision detection, and Java Beans. Chapter 14 enriches Pong with themed multiple screens (for example, a help screen). Chapter 15 addresses architectural and design concepts necessary for more complex games. Chapter 16 shows how a layered architecture can support two example projects, SymBall and Tornado. Chapter 17 is a working introduction to state machines by means of the game Breakout. Chapter 18 adds (literally!) bells and whistles to Breakout. Chapter 19 creates an automated, algorithmically driven competitor in the game Worm. Chapter 20 raises the complexity of the automated adversary with the game Othello. Chapter 21 revises Othello with more sophisticated adversary algorithms.

Part 4 (chapters 22 through 24) provides comprehensive examples of techniques and mechanisms for sundry purposes, such as visualizing sorting algorithms and mathematical operations. The approach is laser focused and strictly hands-on, providing terse object-oriented concepts and UML design with utilitarian dryness. The analysis of data structures and algorithms is only a tangential concern. Therefore, a modicum of instructor-provided additional material is advisable, depending on the setting.

Code listings, liberally intermingled with the textual discussion, would be more justifiable if the text, which usually refers to functionality in terms of abstract blocks, also systematically referenced line numbers in the listings to match the implementation of the blocks.

The writing suffers dramatically from poor to nonexistent editing, with typographical errors (for example, “cash memory,” Figure 1.2) and awkward prose. Overall, readers should aim to embrace “learn[ing] programming [in Java] by coding.” Other intents are likely in need of substantive amounts of additional material. A careful assessment of the writing style is recommended.

This book is best suited to an IDE-based Java code camp, or perhaps as an introduction for freshman-level students enrolled or interested in a computer science or software engineering curriculum. It can also meet the needs of readers already familiar with coding who want to learn and practice how to write general-purpose GUI programs using Java libraries. All chapters have self-assessment questions and exercises.

Reviewer:  A. Squassabia Review #: CR146808 (2005-0092)
Bookmark and Share
  Featured Reviewer  
 
Java (D.3.2 ... )
 
 
Classes And Objects (D.3.3 ... )
 
 
Games (K.8 ... )
 
 
Object-Oriented Programming (D.1.5 )
 
Would you recommend this review?
yes
no
Other reviews under "Java": Date
Java for C/C++ programmers
Daconta M., John Wiley & Sons, Inc., New York, NY, 1996. Type: Book (9780471153245)
Apr 1 1997
Java programming explorer
Bartlett N., Leslie A., Simkin S., Coriolis Group Books, Scottsdale, AZ, 1996. Type: Book (9781883577810)
Apr 1 1997
The Java handbook
Naughton P., Osborne/McGraw-Hill, Berkeley, CA, 1996. Type: Book (9780078821998)
Apr 1 1997
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy