CSTA Day 3 PM – Using Minecraft in the Middle School to Teach Programming: Bob Irving

Using Minecraft in the MS to Teach Programming: Bob Irving

Bob Irving, Porter-Gaud School, SC

birving@portergaud.com @birv2
www-bob-irving.com – Background – not CS teacher, was English teacher.

Minecraft has taken the world by storm. Its quirky, 8-bit graphics and open gameplay have captivated an entire generation. Learn how we can harness this energy to teach programming.

8 approaches to teaching Minecraft with Middle School students (I only have 6 listed here)

Treat Minecraft as a flexible world

Most books written by developers reference their own kids and overestimate or narrow down interests

Need to bridge from blocks to text coding in middle school.

Yr 8
• Gamemaker
• SmallBasic or similar
• Turtles – kids still love them
Replace with Minecraft coding?

Criteria for a successful language implementation
• works for first time coders
• ease of setup
• minecraft to draw them in
• language support – error msgs, easy syntax, write/save/run/debug cycle
• project-based learning friendly

Why minecraft?
• Motivation and imagination
• mods are well known and kids understand the power
• Notch’s story… and the unexpected success

command block as main primitive generator
GUI pretty ugly
Console command line plus output = 32 K limit

Some power, with coding constructs eg testfor
Editor and debugger are awful

YouthDigital have online courses eg modding in Java
Hides complexity of Java via Eclipse
Provides lots of working code, kids change it
quizzes etc, prizes, you name it
not good for classroom copy – only for a few advanced kids and teachers

1. LearnToMod – uses Blockly and then Javascript

free for schools but need Minecraft or in browser simulator. Will work with Minecraft Edu soon but needs full Minecraft at presentation
2 hours per day of server
badges (though not as motivating as expected)
private server per students over 200 lessons

server issues – disconnects etc
too much stuff
Interest tapered off

2. ComputerCraft mod

Visual plus text – with Lua
program on a computer in Minecraft on their computer
ComputerCraft mode (2) – Edu integrated with MiencraftEdu (for classes and groups)
Turtle Island great learning setting

Can also use outside of MineCraftEdu
• kids like it
• challenges good
• move to text based when needed
• Made for class at once

• Turtles can mine, farm,fight, but kind of limiting
• turtles are nott really part of minecraft
• too easy to go back to Visual for kids

3. ScriptCraft – Walter Higgins

• Javascript based
• uses canaryMod, gets to Java, JSON, objects, persistence etc
• good intro to programing
• easy install
• covers MC server mainatenance,griefing, TNT, lava, blocking users
• need command line and terminal
• slow to achieve
• too advanced for Middle Schools mainly

4. RedStone

• ingame, no mods
• great learning tool for electronics etc – logic gates, etc
• traps, pistons, minecars, etc
• appeals only to some kids – engineering
• not what most kids think is Minecraft
• engineering heavy

5. CanaryMod and Flaming Cows (Andy Hunt, Learning to program in Minecraft)

Java plus install bash etc

gentle learning curve
flaming cows etc :–
too hard for Middle Schools.

6.Mython – Adventures in Minecraft (Martin O’Hanlon and David Whale – book)

See www.stuffaboutcode.com
Designed fo rrapberry Pi but has raspberry jam for windows
Python plus Bukkit plus Minecraft
• Kinds love it
• code/run/debug cycle pretty simple
• error msgs OK
• Fun with minimal code
• Python made sense for kids
• expandable activities
• individual worlds
• looks like real Minecraft
• leads into Python in Year 9
• kids can see reason for coding over manual Minecraft activity
• Bukkit is problematic
• “tromping off” temptation
• API limited so far
UK direction is Scratch to Python, this fits in the middle

Hololens demo with Minecraft – huge potential
Resources – Minecraft wiki, SethBlings YT channel Youth Digital, \LearnToMod Sarah Guthals
dan200 computercraft and computercraftedu


Leave a Reply

Your email address will not be published. Required fields are marked *