TYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
New knowledge is constructed by building on what we already know, making connections by tinkering with new combinations of familiar blocks.
In the same way that a musician improvises new melodies, or a poet constructs new juxtapositions of sounds, words and images, students learn to code by finding basic structures, or blocks of code, and fitting them together to create new algorithms that serve a purpose.
In Minecraft, an enormously popular three-dimensional open-world game, blocks are the basic elements of the world. Students build in Minecraft by snapping blocks together in different combinations to make structures, designs and even new types of blocks, all by experimenting and playing.
In block-based programming languages such as MIT’s Scratch and Microsoft’s MakeCode, blocks are the basic elements of programs. Students code by snapping basic blocks together from different categories. Syntax errors are eliminated because blocks that don’t belong together won’t fit together. The design of the blocks encourages learning through play.
Block-based programming supports constructionism
Building with Minecraft using blocks, and learning to code using blocks, go hand-in-hand and provide ample opportunities for constructionist learning. Seymour Papert, the MIT researcher and educator who was one of the creators of Logo, coined the term “constructionism” to describe the way learners construct new knowledge through open-ended experimentation and creative building. This type of “learning through play” applies perfectly to block-based worlds.
Even at the college level, we introduce new students to coding concepts by using a block-based coding language. After we move to a text-based language, if students are stuck, we often ask them, “How would you solve this using Scratch?” Many students find that by picturing themselves constructing the algorithm using blocks, they are then able to solve the problem using a text-based language like Java or Python.
Microsoft’s MakeCode is a block-based coding language that allows students to write code for Minecraft. Students create code by dragging blocks together in a browser-based editor. They are then able to enter the Minecraft world and see the results of the code they have written. When students use MakeCode to build Minecraft structures more efficiently and rapidly, they are able to develop a visual understanding of what is going on inside of their code. For example, students can actually see a structure being built block by block from the code they have just written.
Co-creating knowledge reinforces learning
When students can share and talk about their work, the feedback they receive from other students who have been tackling the same problems reinforces and scaffolds their learning as they seek to make improvements and add new features to their code. This helps create a community of learners that is truly “constructionist” — co-creating knowledge together — instead of “instructionist” — taught by the instructor, the same way for everybody.
With Microsoft’s free middle school MakeCode for Minecraft Computer Science curriculum, teachers and students can explore basic concepts of computer science in Minecraft. For example, students might build a spiral staircase to demonstrate loops and iteration, or create a cake that releases four-and-twenty colorful parrots when it is opened, to demonstrate conditional statements. With a mixture of guided activities, independent project assignments and rubrics, the MakeCode for Minecraft curriculum is a very effective way to introduce learning through play.
Block-based environments offer a safe, robust playground where they can experiment, and Minecraft makes that learning visible and virtual. MakeCode for Minecraft is a great way to start students playing and exploring with block-based code in a world full of blocks.
Douglas Kiang is a computer science teacher at Punahou School in Honolulu, Hawaii. He is a member of the AP Computer Science Principles Development Committee. He is an author of the MakeCode for Minecraft curriculum, and will be presenting a session at ISTE 2018 on MakeCode. Follow him on Twitter @dkiang.