I’ve been thinking recently about how I can help introduce more young people to the joys of coding. So far I’ve scored a minor success teaching a group of nine year olds MIT’s Scratch, but I’d like to try something a bit more scalable, aimed at older learners.

One concept I’ve been mulling over is an easily accessible, online ‘coding game’. I have some basic thoughts, which I’ll outline below, but want to make it a collaborative, open source project. I’m putting the idea out there for comment / feedback etc and if you want to get involved in any way at all then get in touch.

So here’s my initial thinking…

  • You play the game by writing code to guide a character/robot/thing around the screen to solve a series of increasingly complex challenges.
  • When you complete the challenge, you get to see (and play with) the code that other people who also solved the challenge used.
  • There would be a ‘compete’ mode where you could play in real time, against another coder. At the end of the challenge we ‘swap’ the code, so both people can learn from the way the other has constructed their code.

My theory is that by setting out an ‘objective’ (ie completing the challenge / beating your opponent) to the coding and then sharing the code it will encourage people to learn from each other (I’d be v. interested on any educationalists take on this approach – how would we improve it?). Of course, its not a completely original principle, but I haven’t seen anything web based that uses this combination of competition and code sharing as a learning tool before.

I’ve expanded on some of my initial thoughts in this video.

I’m keen to make this happen, but I can’t make it happen on my own. What I can do is co-ordinate stuff; contribute ideas; do some of the code etc and generally move things forward. If you can help in any way then please leave a comment on the post and I’ll be in touch.

Some links for things mentioned in the video…

  • Robocode is a good example of a code based game, although my view is its a bit complex for the age group we’re targetting
  • Raphael is a javscript vector graphics library – i’ve used it for a few projects and it’s good on the cross-browser front
  • Skulpt is an in-browser implementation of Python. I think there are lots of things about python that make it a good language for kids to code in, but of course maybe theres a better choice
  • Node seems like the obvious choice to provide any real-time element for the competitive challenges

I’ve banged on a lot about why it’s important that children learn about computing (mainly here, but also here and here). After attending the excellent coding for kids un-conference run by @hubmum and @katybeale, I made a promise to myself to do something practical to help more young people discover coding.

So… I pitched the idea of a coding for kids pilot to the Head Teacher of my son’s primary school and was pleasantly surprised that she was very open to the idea.

Shortly after that, a bit of serendipity came into play through a post on the Computing at School mailing list. Peter Higginson (mentioned on Stanford’s “Birth of the Internet” plaque) happens to live near me and was interested in doing something to help bring computer science to schools. Over a coffee (and some fascinating stories about the early days of the internet) we agreed to doing some sort of double act.

After a couple of planning meetings with the Deputy Head we settled on doing a pilot with a group of ten Year 5 (ie 9 year old) children. It would be two 1 hour sessions during school time. I was keen to target Year 5 as there is a general consensus that it’s about the age when people develop some of the thinking skills that computing needs (Plus I was somewhat influenced by Emma Mulqueeny’s Year 8 is too late thoughts)

So here’s what we did, what happened and some thoughts on what’s next…

What We Did

We decided fairly quickly to use MIT’s Scratch as the basis for the sessions. It’s free, very accessible for children of that age and there are lots of online examples and resources that the kids could run with on their own if they wanted to.

We structured each session so that it would start with Peter covering theory and explaining some principles; followed by some guided practical work led by me; then ending with some freeform kids-do-stuff-while-we-walk-round-and-help-out-where-we-can time (I’m sure theres a proper ‘teacher-phrase’ for that – perhaps someone will enlighten me).

In session 1 (full notes here), Peter introduced them to the basics of the Scratch environment, talked about variables and operations, made a dog chase a cat and showed how Scratch could be used to do some mathematical number crunching finding prime numbers (examples here). I then helped the pupils build their first programme – drawing simple shapes – starting with squares and incrementally modifying the code to draw more complicated shapes.

In session 2, (full notes here) Peter covered more theory including conditionals, loops and broadcast messages. We had then preloaded a simple game I’d put together  – Moon Monsters (example in all its glory here). I showed the students how it worked and then we encouraged them to modify it – changing how fast the monsters move, adding more monsters etc.

Some Observations 

Firstly, the kids lapped it up. It was super-satisfying to see the penny drop that they could tell the machine what to do. Since doing the pilot we’re told that the school has been opening up their ICT suite at lunchtimes and a few of them are still going in and coding off their own backs. I’m chalking that one up as a win.

Secondly, there was something fantastic about watching Peter teach the kids. A veteran of the earliest days of the internet enthusing and passing his knowledge onto a new generation – I hope that the group will remember that for a long time.

With no experience of teaching, I found prepping the practical parts of the sessions hard work – trying to get the right balance between something that the pupils will be excited by, but also be within their grasp was quite challenging. I have a new-found respect for the work teachers must put into new material for their classes.

The Future ?

The question I keep asking myself is “How do we make this sustainable?” – perhaps the answer lies in those of us who code, helping those who teach to get up to speed with something like Scratch. Maybe I can use the community we’ve built at Reading Geek Night to move that forward. Perhaps the answer lies in peripatetic coding teachers (much like the model of music and other specialist teachers). Perhaps there’s merit in out-of-school clubs and mentoring support for our newly minted coders.

Wherever the answer lies, we’re keen to keep experimenting and help get a few steps closer to an answer.

One of the things I’ve been pondering since attending the excellent Coding for Kids kick-off meeting last week is what measures should we look to for an indication of how well we are doing.

My sons primary school has recently been through an Ofsted inspection. With that in mind, it struck me that as we increase the number of kids who are exposed to programming, we should expect to see more mention of it in Ofsted reports.

So, if you were to take the last couple of years of primary school Ofsted reports and look for ones that mentioned programming, what would you find? Obviously, I wouldn’t expect the figure to be very high. Inspectors are not tasked to seek out examples of kids coding, so any mentions would just be because they had observed something that had stood out for them. However, if we are looking for evidence that Coding for Kids is having an impact, the reports might not be a bad starting point.

In a fit of data-geekery, last night I knocked together a script which scraped around two years of primary school data (10,747 Oftsted school inspection reports) from their website (Grrrr – Ofsted don’t organise their data to make this easy – but thats another story). A search for the word ‘programming’ returns 22 results. A search for the word “computing” across all of these reports returns 105 results (however when you read them, many of these are actually referring to computing facilities in the context of ICT provision).

So, looking back over the last couple of years, only 0.2% of primary Ofsted reports mention programming.

Yes it’s a very crude measure, but I’m hoping that in a couple of years, with the various initiatives being kicked off under the Coding for Kids umbrella, I’ll be be to repeat the exercise and report a much improved percentage.

(PS: I’ll try and do the same for Secondary schools at some point – also if anyone wants a copy of the base data I scraped then just shout)