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