MakeCode for Minecraft: Learn Coding with Blocks
The following is an excerpt from MakeCode for Minecraft, a block-based approach to computer science using the popular game Minecraft. The full curriculum is available at http://minecraft.makecode.com/courses/csintro
In 1967, Seymour Papert and a number of other MIT researchers created a beginners' programming language called LOGO. He developed it based on research that showed that playing with blocks of code was a particularly effective way to teach programming concepts. Papert coined the term "constructionism" to describe the way that learners construct new knowledge and make connections thorugh the process of building tangible artifacts. The blocks in Microsoft's MakeCode coding language, and the blocks in Minecraft, are themselves models for the way that new learning happens through the application of concepts in an open-ended learning environment. Block-based programming languages such as Scratch and MakeCode build on Papert's research and are a great way for students to start learning about coding concepts without having to worry about syntax.
Learning in Minecraft models the constructionist approach that block-based programming uses. In Minecraft, there are blocks of various elements: air, dirt, grass, water, etc. But at the game's core, the Minecraft blocks are simply an engaging tool for the lessons you build around them, in the same way that blocks of code function. You could allow your kids to play with the Minecraft blocks freely, see what they come up with, and share and celebrate their creations. You could use the blocks to build an imaginary town, and have a discussion about where the roads should go, what the buildings should be called, and whether or not you will need a jail.
Coding in Minecraft -- combining the power of block-based programming with the open ended creativity that building with Minecraft blocks allows -- is like giving students superpowers! Many are already accustomed to how Minecraft works normally, as well as certain gameplay tasks that become tedious such as mining or chopping trees. The prospect of using code to automate these repetitive tasks is immensely motivating to Minecraft players and the ability to immediately see the results of the code they write in the Minecraft world is incredibly powerful. Students can use a flat world to start out with, as a "sandbox" for their code, and as they learn and experiment, they will be able to see the progress of their learning visually in their world as a series of different physical projects and constructions.
MakeCode for Minecraft is a full middle school computer science curriculum, available free at http://minecraft.makecode.com/courses/csintro