In part 2 of this series, Matthew Jorgensen presents some of visual programming tools for anyone wondering how to I start teaching coding for beginners. All tools and resources presented below are easy for teachers to master and always engaging for students. The list of resources and tools below are by no means complete but a great place to start for teaching coding for beginners and developing a plan for various resources as students (and teachers) coding skills progress. For part 1 and the introduction, go here.
Logo was designed in 1967. One of the creators was MIT visionary and Jean Piaget protégé Seymour Papert, who evolved Piaget’s constructivist theory into the hands-on constructionist theory. This basically means knowledge through construction, and has directly influenced the Maker Movement.
Logo, derived from the Greek ‘logos’ meaning ‘thought’, is not a visual programming language but this can be attributed to the level of technology available at the time. To make Logo work, the user writes basic instructions for a turtle to follow:
|pd||(pen down to draw a line)|
|fd 10||(forward 100 steps)|
|rt 90||(turn right 90 degrees)|
Microworlds is a version of the Logo language that uses a multimedia environment. Microworlds leveraged improved technology such as colour screens to deliver animations, games and simulations that were more engaging for the user and more powerful in terms of an end result. However, the syntax was still very much based in Logo. Maybe Logo 2.0 is a good analogy.
Scratch is, as the cool kids say, ‘da bomb’. Now up to version 2.0, it has a regularly updated offline editor and an online tool, backed by a thriving community (scratch.mit.edu). You can even embed your Scratch project so that it can be used as an app, demonstration or interactive. Scratch uses drag and drop functionality to sequence different types of blocks into scripts. There is scope for adding sound effects and the innovative and creative ways that people have used Scratch is evident in the gallery.
If you are looking to embed programming into your school, Scratch is a great entry level tool. Combined with the made-for-touch ScratchJr, it forms a fun Prep to Six (and beyond) programming thread in a school’s curriculum. The Lifelong Kindergarten Group at the MIT Media Lab is leading the way with this product, under the guidance of Mitchel Resnick (@mres).
Released in 2014, ScratchJr is visual programming for the young touch generation. This is Scratch stripped back, but with some nice new features all aimed at the young kiddies. Mitchel Resnick and the MIT team have done a great job to adapt Scratch to make the most of the tablet explosion and to also engage young students in the learning to code process without even knowing it. It is also intuitive in some of the functions, such as the image editor that allows a student to swap a blank face for an image of their face. Then they become the star of the story!
AR stands for Augmented Reality, which is used here as a way of interacting with the Scratch application. The webcam is used to stream a live background. By using markers, the programmer can use special blocks to interact with the objects (sprites) on the screen. For example, rotating a marker or QR Code and change the colour of a sprite or make it grow and shrink. AR Spot is available as a download with the markers to print. It was developed by Georgia Tech Augmented Environments Lab. This is a great glimpse into the future ways of interacting with computers.
AR Spot Interface
Tynker has obvious links to Scratch but is catering for the game makers out there. The aesthetic is contemporary and stylish, and the costumes and backgrounds look amazing. Tynker is an online editor, but has a great feature that allows teachers to set up classrooms and add students to follow via the dashboard. There are comprehensive tutorials available and lesson plans to use. This is an excellent product and a step up from the Scratch environment with the same style of programming .
Rising another level or two is the innovative Kinect2Scratch. This software enables data from a Microsoft Xbox Kinect controller to be processed in Scratch. This allows for the programming to make use of the gesturing and motion control offered by Kinect. This is similar to AR Spot, but uses the powerful gaming technology that many of our students have in their living rooms. Is this interactivity a glimpse into the future of teaching and learning?
This browser-based app uses drag and drop blocks to create scripts for games like Jetpack Jumper and Jumping Bird, titles that will seem familiar to you. But more than that, users can choose their skill level when creating scripts:
- Beginner – drag and drop blocks with a simple interface
- Coder – code is edited as text and has more options
- Expert – uses coding script and has all the necessary tools for experienced develops
The guided tutorials are interactive and beginners can make their first script within minutes. Another great embellishment is that teachers can create their own tutorials for their students within TouchDevelop. The app is also available on all devices, including phones, and works across iOS, Android, Windows, Mac and Linux operating systems.
Kodu is a free Microsoft product from Kodu Game Labs, Microsoft Research and Fuse Labs. It uses a proprietary ‘Kode’ language to allow for easy and fun game-making. Games can be shared via the community and can even be created with and played on Xbox. The sprites are controlled by programming the ‘brains’, and worlds are created easily with a tip of the hat to Minecraft in some instances. This is an engaging and challenging application which is devoted to game making. It is supported by events like the Kodu Kup and Hour of Kodu for parents. On PC, it is available on Windows XP, Vista, 7 and 8 with some system caveats. It is also supported by copious tutorials and resources to help teachers embed it into the classroom.
Minecraft is a phenomenon. Created by Markus Persson and Jens Bergensten of Mojang, it has reached cult-like status amongst students the world over, and it would be remiss of educators not to harness the benefits of Minecraft in the learning process. The 3D, blocky, pixelated aesthetic is in stark contrast to Project Spark and other contemporary games, but allows for the building of landscapes, buildings and characters.
The main object of Minecraft is to dig or mine and build or craft. The environment is a living world, with night and day and different weather patterns. Animals are running around ready to be tamed or farmed. There is a real sense of fighting for survival from the elements and even bad guys. A good way to think of it is less as a game and more a toy that you can play with to build and create. Kind of like Lego in the physical world, but without any original connection to the plastics blocks.
Based on the sandbox paradigm, users can create expansive worlds to roam. Single player games are based on creating and are without antagonists. Multiplayer games require survival from enemies. A great place to start your Minecraft investigation is the recent announcement about Minecraft: Education Edition.
MinecraftEDU has recently incorporated the ComputerCraft mod, which they in turn modified to create ComputerCraftEDU, which uses a visual programming ‘remote’ to enable users to programme turtles to move, dig and build. The remote can toggle between a visual and character-based code, and has various scaffolded elements to encourage students to practise their programming skills. This is an awesome way to engage students inside the Minecraft world.
Now we are talking serious innovation, creation and fun. Project Spark is a beast. Created by Team Dakota and Microsoft, Spark has only been around since May 2014. It takes the Kode language and turns it into a very sophisticated game-making application. Spark is free from the Windows (Windows 8 only) and Xbox stores, and also boasts a thriving community of players and creators. Students will need a Microsoft account (Xbox, Outlook, etc) to use the software which weighs in at a hefty 2.3 GBs.
This has to be seen to be believed. As it is so sophisticated, it has several tutorials the will talk you through the basics of the programming side. You can create on PC or Xbox, and you can even plug an Xbox controller into your PC or laptop, just like Kodu, to play or create. It is still relatively simple to create games in what is an intuitive environment. For examples, different characters come with brains that are already programmed to carry out that character’s personality.
Students can use Xbox points to buy new worlds and characters to go beyond the basics. The implications are that in order to utilise this at your school, you need to go through a fairly rigourous process of permissions, technical tinkering and organisation. It may be best delivered as an out-of-class activity at the beginning, although we intend to use it to create an interactive story for Year 7 Media Arts.
So, don’t take my word for it. Do your own investigations and find out which one of these awesome products will cater for game making in your classroom. Maybe you need something with more flexibility and scope, like Construct 2 or Multi Media Fusion 2.5. My advice is to have a mud map of the finished product, with some must have inclusions, but allow the students to use the power of social constructivism to build the skills and knowledge of the tool.
Some of the best learning in school happens in lunchtime clubs and gatherings, free of curriculum and assessment constraints. Game making with visual programming languages is a contemporary and valuable precursor to computer programming and coding.