I have spent some time looking at Scratch a web based programming tool that aims to teach young children how to program using a Graphical User Interface and a drag and drop system to build up various parts of a program and allow compilation straight away for instant graphical results.
Every school I have talked to has mentioned that they have this available to them, however they have no idea how to use it. I thought I would take a look as see what all of the fuss was about, and I was extremely impressed by what I found.
Scratch is incredibly simple, but allows you to build quite complex programs without having to deal with complicated syntax or conventions as they are all there presented to you in a graphical way in the form of “Blocks”. These blocks contain various programming standards such as if statements, while loops, for loops and variables for certain simple things such as position and size. It also allows you to create your own variables which can be easily incorporated into your program. These blocks are then snapped together to create a procedural program, and then can be compiled instantly to see the results of your program.
I find this is an incredible way to learn programming, and I would like to do something similar for my product. The source code of Scratch is available to read, however it is quite difficult to follow, and I think that it maybe be a little complex to complete within the scope of this project. However the idea is something that could be incorporated into some other type of game.
On this note, after speaking with the head teacher of the school I am using in this project, she mentioned that Control Technology is a big problem that a lot of primary school’s face. Control Technology is basically issuing commands to a “turtle” which then moves as you have programmed it to, sometimes holding a “pen” to draw the path it has taken as it moves. Scratch does provide something similar to this, and it could be implemented as a game idea which could teach basic programming alongside the idea of Control Technology, which would allow for a little bit of cross curricular learning, and seems to be a very important concept that schools like.
Instead of that however, it could also be possible to create an interface which will allow children to control various parts of a Raspberry Pi such as motors and lights, to create a similar learning experience, but with a real life turtle which can move around the room or on top of a desk. This could possibly be a more exciting alternative for children to engage with, and could utilize a similar Graphical User Interface to Scratch for programming the robot.
There is a way to allow Scratch and the Raspberry Pi to communicate, based on the work of cymplecy. He wrote a program (source code available) which allows the device and Scratch to communicate, and allow for simple drag and drop code to be created to control various parts of the device. His code is a little difficult to understand, however it may be possible to do it another way, not using Scratch, or to implement his code within the project somehow.