So I’ve have a few weeks of running the RaspberryPi after-school programming club and I have to say it’s been an interesting ride. In a way I’m a little disappointed with the lack of programming we’ve managed to achieve. But, on the other hand, the amount of Linux experience they’ve gained (to say nothing of the un-spoken appreciation – there’s been little to no grumbling – they’ve developed for the smoothness of systems like Windows and OSX) has been incredible.
So far, then, we’ve managed to set up and boot a RasPi. We then added configuration to try and work through the school proxy (more on that, later) and then managed to grab MinecraftPi (the “hook” I’m using to get them thinking about coding). This last week we finally managed to get a sample program working (this sample, actually, which draws an analogue clock in the sky) against a couple of the pupil’s MCPi instances.
From here, then, I hope to draw out the programming aspects of the club (using Geany to code Python against their own Minecraft instance, initially, although I hope to work up to running mini-competitions, eg building races, in one world) starting from more simple coding challenges like building a cube of a given material, working up to pyramids (well, ziggurats I s’pose, which I’m thinking must be possible with recursive calls).
So, what have I learned?
Well, it’s mostly been about what I’d do differently next time…
Like, having a proxy-configured system image and working from there, instead of having to think on the hoof and get them to change configurations as we go. I could still get them to startup, update and install packages, run X and then shutdown… but I could do it from a position of strength, knowing that the proxy side of things will simply work!
Or, about double-checking the amount of background knowledge required, in order to be able to follow instructions I carefully set out, on how to set up the environment to use the proxy.
Finally, there’s a lesson in terms of not testing, testing and then re-testing (just to test that the testing was working) ideas, configuration and systems before blithely assuming that they would “all work okay” when put in front of pupils; no matter how keen and self-motivated they are, they’re only KS3 and don’t have my 13+ years of programming experience to fall back on when it doesn’t quite work first time because they mis-spelt “Aquire” or didn’t match case in a function definition.
So, one final thing about the proxy. We’re in one of the ex-EMBC counties that stuck with the Capita solution, which means we’re now using the WebShield proxy solution (albeit with custom certificates so I can now actually access Twitter across the school network) – this has been a right royal pain to work around, but for those interested, the answer seems to have been to actually put the proxy login in the configuration, as well as the proxy address.
So, for example, environment variables need to be set like
http_proxy=http://user:email@example.com:80/ or, for apt-get to function, settings like
Acquire::http::proxy "http://user:firstname.lastname@example.org:80/"; in the apt.conf file.
Anyone needing fuller details on any of this, don’t hesitate to comment/tweet me – I’m happy to answer questions.