Google’s Santa Tracker Codelab is an extremely simple way to teach kids how to code, and honestly it’s the easiest and most beautiful way I’ve seen yet. The Codelab consists of 10 challenges that slightly increase in difficulty as you go on. These challenges have you moving an Elf through a maze to find a holiday present. Which is a pretty genius way to pull students interest in right off the bat. It’s simple and fun, conceptual, and easily tied back into real world coding. Access it now at https://santatracker.google.com/?hl=en#codelab and you’ll see what I mean.
Being a CS Major in under grad and grad school I’ve learned my fair share of programming languages and environments to write code in. For me the concepts of programming always came easy, even if the actual code writing was hard. AT times however, setting up those environments could be cumbersome.
So how do we teach students not only the concepts of coding, but also provide them with an easy to use coding environment?
Some of the simplest coding environments involve visually dragging and dropping boxes of code that already have pre-determined functionality. There are less semi colons and more focus on putting building blocks (the functions we write with curly brackets) together. Lego Mindstorm’s native development environment allows you to program visually like this; you drag and drop sensor and motor control blocks to bring your robots to life. However the kit isn’t cheap and you have to actually build something to see your code come to life.
Blockly is Google’s “ library for building visual programming editors.” And as far as I can tell this is the Engine for the Santa Tracker Codelab. This Codelab features a very polished, Material Design minded and cartoonish environment that kids will love. The environment is all set up and ready to go, it’s accessible via a web browser.
Equally, if not more important, the Codelab starts simple and conceptual with out adding anything technical to confuse you. For the first challenge you literally combine two puzzle pieces, or lets call them “Blocks” to create a picture of a reindeer, then in challenge two you use three blocks to create an image of an elf.
The first concept is combining smaller pieces to create a larger whole. Simple. No Code yet, but your mind is now starting to get conditioned.
Level 3 is where things get exciting. Your challenge here is to move an elf through a maze, one step at a time to grab a present. You do this using North, South, East, and West controls.
…the basics of programming, with out actually writing a line of code.
For this challenge two north moves find you the present. So you drag two north blocks under the “When Run” block and push play. Now you see an Elf move forward two spots on the screen and he finds the present. So now we’re putting blocks of functions together, and directly seeing the outcome. Challenges increase in difficulty and we eventually are introduced into conditional loops to repeat blocks of code. Again the basics of programming, with out actually writing a line of code.
In the more difficult challenges there is more then one way to solve the puzzle and get through the maze. In these instances the Codelab will actually tell you that you can do it in fewer blocks of code. So now we’ve taught students the basic concept of optimization. One could even make the argument that this is the bedrock to teaching analysis of algorithms and concepts such as Big O Notation (simply put how many times an algorithm needs to run to solve a problem).
Now how do we tie this back into actually writing code? Well there’s a link that says “View code” that will show you a JavaScript equivalent would look like. This shows kids how the concept of their code blocks translates into actually written code. In my mind the next step would be to allow kids to actually write the Javascript shown while still moving the elf on the screen, and I’d love to see that on future iterations, or even a stand alone offering. Given that the Santa Tracker this year was a 20% Time project it’s easy to understand that this Codelab was small in scope and as such doesn’t feature this, but it would make it a more robust solution to teaching kids how to code.
As I mentioned the visual nature and the fact that you don’t need to actually use a keyboard and write code makes the Google Santa Tracker Codelab simple. The fact that it has a holiday theme makes it fun. By abstracting the notion of coding into assembling building blocks visually the Codelab provides us with the concepts of coding, and since we can view the code that would be generated it easily ties back into real world coding. The Google Santa Tracker Codelab is an excellent example of how we can begin to introduce coding to students at younger ages. I can’t wait to see if there are more like this.