18 September 2013
Yesterday I started a Code Club at a local primary school. Code club is an after school club run by volunteers to teach programming skills to primary school children. It is aimed at 9 to 11 year old children, but as my local primary school only goes up to year four I am running it with children aged eight to nine. I only plan to run the first term course (at the moment), although judging by the initial popularity may need to run more than one to give others an opportunity to take part.
I'll no doubt post more about how the Code Club goes in the future after the children have had some time programming, but this post is more about my experience of using the Raspberry Pi rather than the Code Club itself.
To Pi or not to Pi
When I first discussed Code Club with the school IT teacher I gave her the option for using the Raspberry Pi or the schools existing computer. This is possible because I already had eight Raspberry Pi computers that I could use for the Code Club, so was able to offer to use Raspberry Pis this with no cost to the school (I purchased all the further accessories myself). I don't expect many other people looking to run Code Club will have quite so many at home (see the box for more details of why I have these), although I'm sure I'm far off from having the most. Some schools may have already bought Raspberry Pis or this can be run using the normal school computers.
My main concern about the Raspberry Pi is whether it would work with the school monitors, as I don't have eight spare monitors and even if I did the difficulty in taking them to the school and time to take up would have been quite prohibitive.
The Raspberry Pis main video output is in the form of a HDMI output. These can be connected to a DVI monitor fairly cheaply (about £3 for a HDMI to DVI adapter), but to connect to a VGA monitor need a digital to analogue conversion (costs around £10 to £25); it's not just a case of having the converters though, it may also need some configuration changes (config.txt) depending upon the converter and monitor being used. Tweaking config.txt is not an issue for one computer, but would make it quite difficult to set-up 8 each week. Fortunately when I visited the school I noticed that the monitors were in fact DVI so made using a Raspberry Pi fairly easy.
Another concern I had was that when I had used the Raspberry Pi to teach Scratch to my daughter I had found the performance to be quite slow. It was frustrating for my daughter having to wait for something to happen and resulted in trying to do it again. Fortunately thanks to work of the Raspberry Pi Foundation the version of Scratch on the latest Raspbian image is a huge improvement. The coding we've done so far works as well on the Pi as on my laptop.
Having eliminated my worries about the suitability for the Raspberry Pi we weighed up the use of the Pi vs using the existing school computers (which are after all already connected up in the computer room). Whilst the school has a lead IT teacher they rely on an external technician to administer the computers for them (I believe from the county council school support team). As the computers don't have Scratch installed we would need to wait for the next visit from the IT technician to have the software installed, which would have meant we would not have been able to fit the 10 week long course into this term. It may be that we will switch to using the school computers after they have had Scratch installed, but for now we decided the only way we could get it running so soon was to use the Raspberry Pis.
As I had the Raspberry Pis for use at home I already had most of the accessories needed to run them, such as power cables and SD cards etc.
One of the great things about the Raspberry Pi is that it is so easy to remove and swap SD cards, so I bought a new SD card for each of the Raspberry Pis so that they could be dedicated to the code club. I also labelled each of the SD cards with a number using a Brother P-Touch labeller which meant that I can ensure that the children are able to continue with their saved project from week to week.
One thing that I didn't look at when I visited the school was what speakers were available. It was only after I'd registered the Code Club that I got to read through the instructions when I realised that I would need some kind of speakers to be able to hear the sound effects. Fortunately I had several small MP3 player/iPod speakers that could be used and I bought a few more costing only £s;3.50 each from our local Aldi store. It turned out that there are speakers built into the school monitors that we used for some of the computers anyway, which is easier than making sure the speaker batteries are charged each week.
The final accessory I bought specifically for the Code Club is a PiHub. I can confirm that these are good quality Hubs and are capable of powering 4 Raspberry Pis making it much easier to find sockets for all the power cables. In fact I was so impressed with the Hub I've now ordered another ready for next week as it makes it easier to connect several computers to one power supply socket.
Set up time
The biggest issue I have had so far is the amount of time it takes to set up the class room ready for the Code Club. There is a class using the IT room just before the end of the school day, which gives only about 20 minutes to get the Raspberry Pis out of the box, insert the SD card and power lead, disconnect the keyboards, mice and monitors from the school computers and connect them to Raspberry Pis. I managed only five of them before the children were ready to come into the code club. It wasn't a problem as the teacher kept them entertained until I was ready, but did eat into the coding time a little. It also took about 30 minutes to disconnect and pack up the Raspberry Pis at the end of the session. For me the set up time is the biggest disadvantage to using Raspberry Pis over using the existing school computers.
I did have one Raspberry Pi that I couldn't get working immediately. I suspect this may have been fairly easy to fix with a bit more time (most likely either power or SD card not seated correctly), but rather than delay the start of the club further we just used 7 for the first session.
The one thing I haven't looked at is connecting the Raspberry Pis to the Internet at the school. I am guessing that the computers go through a proxy of some kind to get to the Internet and so may need additional configuration. The only part of the course (for term 1) that requires an Internet connection is to upload the finished games. So far I have loaded the initial games myself, but will be looking at the children uploading direct to the Internet in future.
Lack of Flash
The one thing that the Raspberry Pi is lacking is the ability to run Flash. Unfortunately the latest version of Scratch (version 2) is web based or available as an application using Adobe Air (based on Flash). Fortunately you can still download Scratch version 1.4 which is also included on the Raspberry Pi Raspbian image. This provides a way to write the software, but not to play the games over the Internet.
With the popularity of tablets which won't run Flash then I think that Flash's days are numbered. It therefore seams a bit of a negative step to make Scratch so dependent upon Flash. It doesn't effect the coding, but does play back through the website.
Sharing a Raspberry Pi
There are 12 children that have joined Code Club (this was the maximum we allowed there were many more we had to wait-list for a possible club if we run it next term), 11 of which turned up to the first meeting. As we had 7 Raspberry Pis working (see earlier) that meant that there were 4 pairs working on a single computer. For this age group, and the fact that this is student led (instructor led for the first 30 minutes of the first session) that seams to work well as they were able to help each other. It's common for the children to share computers to some extent during their normal lessons anyway so it is something they are used to.
Kids with Pis
One thing that surprised me a little was that a number of the children have already got Pis at home. My daughter does, but that's only because her dad is so into computers, but some other children had one as well. Although the consensus did seam to be that the Pis weren't been used much or were just being used to play games at the moment, hopefully that will change now they have had a taste of Scratch programming.
So far the Raspberry Pi has worked quite well. The main disadvantage is the set-up time needed to get the classroom ready and then to restore the computers ready for the next days lessons, but it also has advantages in showing the children that there is an inexpensive computer available that they can use to learn programming.
I'm not directly encouraging the children to ask for a Raspberry Pi at this stage, the fact that some have already and having seen them may encourage them to ask for one. At this age where they are learning Scratch then it can be learned just as easily on a normal home computer. There are advantages if they have their own Raspberry Pi rather than trying to get time on a shared computer at home, but I think the real benefits for children having a Raspberry Pi is when they progress from Scratch (eg. to Python) and particularly if they start interfacing with electronics.
The real test for how successful it is will be how many of the children continue programming after the code club, but they appear to be enjoying it so far.
If you're still reading now then perhaps you are the right person to run a Code Club for your local school. You don't need to be a professional programmer and most people with a reasonable aptitude for computers would be able to learn Scratch to the point you can teach it to children. Whilst I used Raspberry Pis, in most cases it should be possible to use the normal school computers.
Code Club provides all the materials. You just need to print off some worksheets for the children and work through the exercises in advance so that you are able to answer any questions that the children have.
If you are interested I'd recommend signing up as a STEM Ambassador first as they can arrange for the relevant police checks and provide insurance. Then either find a school that shows an interest in having a club, or contact your local school to let them know what it's all about. There are some groups and forums on the Code Club site if you'd like to get in touch with someone that has already run a Code Club to find out more.