Boost Your Kid’s Programming Skills With Adventures in Minecraft

 Adventures in Minecraft
Adventures in Minecraft Cover. Photo: Wiley

I have a passion to share my love of coding with kids whether it be through Lego Mindstorms robotics, The Hour of Code, or Minecraft. “Wait, did you say Minecraft?”  Yep, you read that right. Minecraft! I stumbled upon the Adventures in Minecraft book and and was very excited when I realized that I could insert teachable moments into my boys’ Minecraft gaming experience.

Before I proceed with my review, I have a tiny, little confession to make. I had never played Minecraft before. Sure, I saw the Minecraft screen on my boys’ computers. I knew some of the Minecraft lingo like “spawning” and “Creeper,” but I had never actually logged into Minecraft and tried to play the game in Creative, let alone Survival, mode. So, I ordered the book and bought myself a copy of Minecraft. The things we GeekMoms do for our kids!

Adventures in Minecraft is designed for kids 11-15. Programming is done in Python using the IDLE editor. Students create a local Minecraft programming environment using a Bukkit server to test their programs on. The book walks the student through all the necessary set-up on either the PC, Mac, or Raspberry Pi and starts with programming basics so that even kids without prior programming experience can follow along with the exercises. It is helpful if the student is familiar with Minecraft, but I am proof that you can be successful with this book even if you are new to Minecraft. There are some great beginner tutorial videos out there if you need them. The book also brings some real world results into the exercises through the use of LEDs, push buttons, and a 7-segment LED display. Your program will interact with an electronic circuit! There is also a website that supplements the materials in the book. For example, if you get stuck with a syntax error that you can’t figure out, you can consult the official program listing online.

I decided to work through the chapters in the book slightly ahead of my boys so that I would be available to help them work through any issues they ran into. We started meeting once a week, on weekends, to have a family coding session. The chapters in the book have lots of subsections, and it is easy to find a good place in the book to conclude each session.  We code for about 90 minutes each time we get together. I’m honestly not sure who is enjoying these sessions more, me or my boys.

Family Programming Time
Family programming time. Photo: Maryann Goldman

Hello World

As with most programming languages, one of the first things you do is write a “hello world” program. We all had a great sense of accomplishment seeing the first results of our set-up and programming come alive on the screen. One of us apparently had Star Trek and Lost in Space on the brain too. Why code “hello world” when you can be much more creative!

Writing to the Minecraft chat. Photo: Joey Goldman
Writing to the Minecraft chat. Photo: Joey Goldman

Player Position

In Chapter 2, a lot of time is spent figuring out your player’s position in the game. That is, where is the player on the x, y, and z coordinate system? It might be useful to refresh your memory on Cartesian coordinates before proceeding.

Minecraft Wooden Fence
Minecraft wooden fence. Photo: Maryann Goldman

And, do make sure to graph out the coordinates of your fence to make sure you understand what coordinates to plug into your program. If your x or z coordinate happens to be a negative number, it will simplify the exercise if you move to a position where all the coordinates are positive, and redo your fence.

Minecraft fence coordinate map
Johnny’s fence coordinate map. Photo: Maryann Goldman

Challenge Sections

I just love the challenge sections in the book too. In Chapter 3, after we learned how to set blocks, it was suggested that we try setting some blocks to SAND or WATER, so I went up in the sky and set one of the AIR blocks to WATER and proceeded to flood my world. I had to call in reinforcements to use buckets to stop it!

Minecraft Water Block
Water, water, everywhere. Photo: Maryann Goldman

Then there was the dice face challenge. I had the hardest time trying to figure out how to add my blocks to the correct position. I just refused to quit, both wanting to set a good example to the boys and also just wanting very much to succeed. I finally did it…in the rain. I know, I  know, it’s a rectangle and not a cube, but I still felt pretty good about it!

Minecraft Dice Structure
Minecraft dice structure. Photo: Maryann Goldman
Minecraft dice program
Dice Python program snippet. Photo: Maryann Goldman

Useful Commands

I found that my Minecraft world was always getting dark or raining, and it impeded my ability to test my code, so I consulted my boys on how to get around that. The command:

/time set day

works great to get back to daytime, and the command:

/weather clear

works great to get rain to stop. You’ll want to keep these in your arsenal of commands as you work through the book.

Houses and More Houses

My boys were sold very quickly on the merits of learning to program in their Minecraft world. When they saw that they could built a huge house in the blink of an eye through a simple program, they were blown away and highly motivated to learn more.

Minecraft Houses
Street of houses in Minecraft. Photo: Maryann Goldman

Electronic Interaction

One of the concepts that really differentiates this book from other kids’ programming books is that it includes some electronic interaction with the programming starting in Chapter 5. I ran into a little trouble with the set-up, but it was my own fault for ordering the wrong part. If you are working on the PC or Mac, make sure to order your Arduino Pro Micro board from the correct place.

Soon, I was able to write programs so that when my player landed on a certain type of block in the Minecraft world, various color LEDs on my bread board would light up. How cool is that?!? You do need to consider the additional investment required for the electronic parts which is about $50 depending on whether or not you have some of the parts already on hand, but I think it’s totally worth it!

Minecraft electronic interaction
Electronic interaction. Photo: Maryann Goldman


Continuing Adventures

I’m halfway through Chapter 5, and my boys are halfway through Chapter 3. We are excited to have our next family programming session and to see what is in store for us next. There are nine adventures in the book plus a bonus adventure on the website. If you get stuck, have a cool tip to share, or want to check out the latest changes, like how the new Raspberry Pi 2 will work with Minecraft, you can also go to the Stuff About Code forum.

Interview With Author David Whale

I had a chance to interview one of the authors of Adventures in Minecraft, David Whale. He was kind enough to assist me through a set-up issue I had with my Arduino Pro Micro and then engage me in some additional conversation. I asked him if he had any quotes that he would like to share about why he feels teaching programming to kids is so important and why Minecraft is a great choice to accelerate their learning. He had several which I’ll share with you:

• Programming is important, because it allows you to influence and enhance what the computer does for you, and to break outside the bounds of what the designers of the programs expect you to do. Instead of being a consumer, you can be a creator, and make the computer do what you want it to do, not what the manufacturers decided to let you do with it.
• Even if you don’t want to be a computer programmer, the thought processes that you go through when coding really do exercise your brain and your logical thinking ability, and these are skills that can be used in any walk of life. When faced with any problem, using the skills you pick up from programming a computer, you can learn how to think a bit more abstractly about a problem, how to break it down into logical parts, how to split a big (complex) problem into many smaller (simpler) problems, and even how to split tasks up to run them in parallel effectively (e.g., delegating parts of a big task to a team of people).
• Minecraft is such a great way to learn programming–not only can you extend and enhance your favorite game and make it do things that you want it to do, you have a great excuse to play your favorite game while learning a new skill. Things that take a long time manually (e.g., building a 100x100x100 cube) take a fraction of a second with a small program, and you can be more expressive and creative as a result. Your Minecraft world will be different from any other world, and you can even program your own intelligence into it and write your own mini-games. It’s much more exciting than printing names and ages on a boring text screen (as many courses in programming will have you do).
• You will learn programming quicker using Minecraft, because you have a real purpose, a goal that you want to achieve, rather than working on some task that is only designed to test your understanding of a particular concept. When learning is fun, you want to do it, and you remember it much more if you are learning to build a huge ice cube that melts into an underwater pipe system, compared to printing names and addresses on the screen in alphabetical order.
• I’ve been writing computer software for over 30 years now, and I *still* get excited the first time I flash an LED on a new bit of hardware–it feels like I have “breathed life” into this lifeless object, and given it a piece of my soul that will live on forever.
I can’t say enough positive things about this book. I think it can add an additional level of learning to the time your child normally spends playing Minecraft. The book is written in such a way that it inspires the coder to push their limits and innovate beyond the suggested basic program. The electronic interaction adds an extra level of excitement to the learning process. Who wouldn’t be excited to see actions in Minecraft lighting LEDs!

Adventures in Minecraft currently retails on Amazon for $19.07 for the printed book or $13.99 for the Kindle version.