Code Club Field Report #2

lightbot

 

Last week I gave a report on my experience facilitating a code club in Hamilton. Volunteers in the Hamilton tech community are visiting Hamilton elementary schools regularly to teach computer programming. My class is a grade 4/5 split at Mountainview on Barton Street.

During the first week I used an activity called Scratch, and while it went pretty good I got the impression the students would be better served by another tool. I used Lightbot instead this week, and it went fantastic.

My issue with Scratch was that while it’s a great “stepping stone into computer programming”, doing a one hour “build pong with Scratch” workshop doesn’t necessarily teach computational thinking skills. Knowing how to sequence instructions, loops, decisions, abstracting sequences of instructions into functions – these are the fundamentals of computational thinking.

Lightbot did an excellent job in this respect. While we had some issues getting students going on the computers due to some of the machines lacking Flash installations (or at least, the correct version), once we got going it was awesome to watch. Once students got going, any frustrations they had were directed at solving the problem as opposed to using the tool. And about every 5-10 seconds you’d hear an exclamation in the room like, “yes!”, “got it!”, or “Ooooooooh” when someone had figured out a solution to a problem.

Lightbot has students give a bot navigating a grid of squares instructions. The instructions tell the bot to move forward, turn, jump/drop, or light a square. The goal is to light all of the highlighted squares by giving a bot the correct set of instructions. This video explains it better than I can.

 

 

The level design of Lightbot is perfect. The very first level has them learning how to use the tool, with a gradual increase in complexity from there. Future levels introduce a problem: the bot can only receive so many instructions, and in these levels the bot doesn’t only have to light all of the squares, it needs to do so efficiently using the least amount of instructions possible.

Further levels introduce the concept of functions – repeatable sets of instructions that can be called from the main set of instructions. At first students use these functions as a sort of “extension”, calling the function at the end of their main list of instructions to execute more instructions. And at first, Lightbot levels allow for these solutions. Which makes sense, it lets students figure out how to use functions. But then future Lightbot levels, using the same constraint that only so many instructions can be included in the main set of instructions, require them to call a function multiple times as a more genuine function that abstracts away some meaningful pattern of instructions.

The “oohs” and “ahhs” that were elicited when students realized they could put a pattern of instructions in the function were awesome. I’m not suggesting I had anything to do with it, the game did all the work, but that was real, foundational learning taking place. Awesome!!

Lightbot is a stroke of edtech design genius. I wish I had thought of it myself. It worked wonders in the code club.

 

Kevin Browne

Editor of Software Hamilton.