Teaching Children to Code with Raspberry Pis

Last year a group of us here at Fubra set about a 20% time project to teach children to program. The idea originally came from our Head of Product, Hannah Bird, and a number of us followed suit to help her achieve her goal. We got in contact with the local Scout group, Aldershot 2nd, and asked if they would like us to teach them how to code to earn their computing badge and they delightfully accepted our offer; that’s where we started Fubra Universe.

We wanted the project to be as open as possible but at the same time we needed it to be cost-effective. The Scout group didn’t have any computers to use and the leaders were letting the scouts use their laptops so our director, Paul Maunders, went out and bought 20 Raspberry Pis. The Raspberry Pi is an affordable and open system that is not much bigger than a match box. At around £25 a unit, we had an extremely low startup cost, which meant there were more than enough computers for the scouts that were powerful enough for them to program on.

Often we are asked how we managed 20 Pis making sure they all have the same software on them. One of the developers here, Ray Viljoen, created Raspberry PI SD Installer OS X, a simple bash script that lets you take a pre-built image and copy it onto an SD card with very little input required. This meant that while we were working on other projects, we had an SD card in our Macs getting the OS installed; no need to be on a separate workstation and 20 OSs installed in a morning with two of us running the scripts on our respective Macs.

Teaching the scouts to code was done simply; we didn’t go into any major detail on programming languages but rather gave them an introduction into commands and processes, possibly a variable or function thrown in for good measure.

We started by making them program the Gangnam Style dance using Scratch which they could easily do on the Pi. There’s no typing in commands either as Scratch is all done using blocks, so those who may not be so good at typing weren’t at a disadvantage. Also, the program being very basic, it ran without any major issues on the Pis’ hardware, the only time we had an issue was when any sound played for too long would cause it to crash.

About the same time, NASA had successfully landed their Curiosity Rover on Mars. We decided to use this as inspiration for our next coding project, and so we set out to build our very own Raspberry Pi powered Mars Rover.

Our next stop was getting them to write a program that would be similar to the actual rover. So Ray and myself created the CmdGrid where they had to control the rover on screen to avoid objects in the area to get to their home square. Made using client side JS and backend Node.js with a very simple 8-bit pallet (exactly the same the original Nintendo console used), it ran successfully on the Pis and the scouts had a lot of fun trying to find the shortest routes. They also got a quick demo on how we make each level and had a go at making one themselves.

The final stage of our project was to get the scouts to code our “real” Mars rover – a robot made using Arduino and Raspberry Pi that was coded with Javascript and interacted with via a website that we as admins could send to the rover to do.

We had many iterations on how to control the rover; one of them was via a touch screen interface on a JS enabled webpage…

In the end, the project was a lot of fun and a success that we introduced the scouts to programming and what you can do. We had comments from parents saying they were going to buy a Raspberry Pi to play with at home. The Pis have become a staple part of the Scout group now, often being used for their JOTI and helping them get their IT badge.

List of open source projects related to Fubra Universe on our GitHub and staff’s own: