Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Learn to program with Minecraft : transform your world with the power of Python
Richardson C., No Starch Press, San Francisco, CA, 2015. 320 pp. Type: Book (978-1-593276-70-6)
Date Reviewed: May 13 2016

Minecraft is a popular video game available for most operating systems, dedicated game consoles, and mobile devices. Its deceptively simple blocky 3D graphics are counterbalanced by the creative freedom and the variety of interaction styles it offers to players. Game styles include the construction of virtual worlds, exploration, adventure, puzzle solving, resource gathering, crafting, and combat. On some platforms, players can download and install modifications, which range from changed block textures to entirely new world elements and characters. The game can be played in client-server mode, where multiple players can connect and interact on a single server. Servers (sometimes heavily modified) are hosted both commercially and by hobbyists.

Given Minecraft’s appeal, especially to younger audiences, using its graphical interface to teach programming is a tempting proposition. Sadly, too many programming courses are still based on drab 1970s console-based examples that convert temperatures from Celsius to Fahrenheit, calculate the Fibonacci sequence, and sort integers. Programming with graphics would be a more attractive alternative, but in most environments this involves a steep learning curve. Alternatives certainly exist, but each makes painful compromises. Scratch offers a colorful graphical programming language and environment, but the language’s simplicity limits what can be learned and done. Processing.org simplifies graphics programming using the full power of Java, but young children may derive little motivation from its initial blank canvas. Lego Mindstorms EV3 does an excellent job in bridging the cyber and physical worlds, but some youngsters find its LabVIEW-derived programming environment jarring. The approach taken in this book is to combine the power and simplicity of the Python programming language with the use of Minecraft’s captivating environment for the programs’ interactions.

Installing the software to interact with Minecraft from Python is trivial if the computer you will use is a Raspberry Pi. On the other two supported platforms (Windows and Mac) the process is more complicated, and children are likely to need the help of an adult. It involves buying and installing Minecraft, and then installing Python, Java, Spigot (a Minecraft server), and the Minecraft application programming interface (API). At one point, the hand-editing of a text configuration file may be required. All these steps are detailed in the book’s first chapter. From that point onward, the sailing is smooth, based on Python’s IDLE simple integrated programming environment.

The remainder of the book is structured as a traditional introduction to programming going over variables, arithmetic expressions, strings, Boolean expressions, conditional and loop statements, functions, data structures, files, and objects. However, all interaction is based on Minecraft: programs create items in Minecraft’s world and obtain data from the Minecraft player and objects. Furthermore, the 73 illustrative examples are described as missions with titles such as “Am I Entirely Underwater?” “Night Vision Sword,” and “The Diamond Prospector.” Most missions also include a bonus item as an exercise for the reader. Although many of the missions are interesting, one sometimes wishes for a closer, more imaginative, and more motivating tie between the programming concepts illustrated and the capabilities of Minecraft as a game.

The book is beautifully typeset in dashing color. All missions are illustrated with Minecraft screen dumps. A playful font is used for all titles, but, wisely, the main text is set in roman and the code in a clear mono-spaced font. Code listings are syntax colored and tagged with numbers that are used to reference code parts from the text. A cheat sheet at the end of the book provides a nifty map between blocks and their identifying numbers.

In sum, the book provides an attractive way to introduce children to programming. It can be used both in a classroom setting and at home. Despite Minecraft’s allure, I saw that the book did not automatically catch a youngster’s attention. Therefore, as with most educational material, guidance and inspiration by an adult mentor will still be required. But this is surely a blessing in disguise.

More reviews about this item: Amazon, Goodreads

Reviewer:  D. Spinellis Review #: CR144412 (1608-0541)
Bookmark and Share
  Featured Reviewer  
 
General (D.1.0 )
 
 
Computer Science Education (K.3.2 ... )
 
 
Games (K.8.0 ... )
 
 
Computer And Information Science Education (K.3.2 )
 
 
General (K.8.0 )
 
Would you recommend this review?
yes
no
Other reviews under "General": Date
Problems in programming
Vitek A., Tvrdy I., Reinhardt R., Mohar B. (ed), Martinec M., Dolenc T., Batagelj V. (ed), John Wiley & Sons, Inc., New York, NY, 1991. Type: Book (9780471930174)
Aug 1 1992
KNOs: KNowledge acquisition, dissemination, and manipulation Objects
Tsichritzis D., Fiume E., Gibbs S., Nierstrasz O. ACM Transactions on Information Systems 5(1): 96-112, 1987. Type: Article
Nov 1 1987
Programmer perceptions of productivity and programming tools
Hanson S. (ed), Rosinski R. Communications of the ACM 28(2): 180-189, 1985. Type: Article
Jul 1 1985
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