Programming conferences are unlikely places to find teachers. But at the recent PyCon UK conference, in the Coventry Technocentre owned by Coventry University, teachers and programmers were working together and sharing their relative expertise. Why? Because they care deeply about teaching computing to young people.
The UK government recently mandated that computer science be taught in British schools as a replacement for the much maligned IT curriculum that taught basic (and severely outdated) secretarial skills, with not much room for anything else. What is really beautiful about the new computing curriculum is that it’s incredibly open ended. There are some milestones that have to be met, such as “use sequence, selection, and repetition in programs; work with variables and various forms of input and output“, but how you get there is entirely up to the teacher.
This has resulted in an explosion of innovative ways to teach computing to kids and teenagers. Here are some of them.
Few programming languages are quite so well suited for teaching beginners and children as Python . There are a huge amount of reasons for this. Perhaps the first (and most compelling) reason is that things are simple, straightforward and work just as you would expect.
Python is a language that embraces simplicity and readability, and the Python developer community is infamous for being welcoming, conscientious and helpful. For all these reasons and more, it’s being used right now in British classrooms. Python runs on almost everything (even Symbian S60 Phones!) and is free to download and use. What’s better than that?
Okay, we can’t talk about teaching Computer Science without talking about the Raspberry Pi. They’re awesome little devices, boasting enough RAM and CPU power to run a full Linux distro whilst consuming almost no electricity.
They’re cheap too, costing a paltry $25. You can read our interview with Eben Upton – the founder of the Raspberry Pi foundation and creator of the Raspberry Pi – to get an idea of what they’re all about. In short, the Raspberry Pi is a cheap little device where kids can learn to code and experiment without worrying about breaking the family computer.
These have already became a massive hit in the classroom and have shifted millions of units. The right product for the right price? Is anyone really surprised?
You may be wondering what Minecraft has to do with the teaching of computing. That’s fair. Whilst Minecraft is a fun, creative video game , it’s unlikely to be seen in the classroom without being illicitly played under the desk on a cell phone.
Or, is it? Mojang, the developers of MineCraft, recently released the Raspberry Pi version of Minecraft. This is cool for a whole bunch of reasons. It’s free; runs on the limited hardware of the Raspberry Pi; and can be expanded by programming with its API.
Already people have used the Minecraft API for awesome things, including creating analog clocks with moving blocks; writing clones of snake that you control by moving the Minecraft character; and even Tetris. Tetris!
Scratch is a visual programming language created by MIT. Whilst visual programming languages share a number of attributes in common with text-based programming languages like Java and Python (in terms of flow control, sequence, selection and repetition), they differ in one crucial way.
Programs in Scratch are constructed by dragging and dropping blocks. Whilst this might not appeal to older students or hardened development veterans, it addresses one important demographic: younger students.
We’re talking about elementary school students, here. Primary school students. Those with less experience at the keyboard, but have enough hand-eye co-ordination to drag and drop blocks. And you don’t even need Scratch installed locally, as there’s a rather good browser-based implementation of Scratch on offer.
Kids And Coding
It’s never been a better time to be a young person passionate about programming. Regrettably, all the things which exist now (Linux, Raspberry Pi, Python) either didn’t exist when I was younger, or weren’t refined enough to be used in a classroom.
With that in mind, it’s probably never been a better time to be a young geek. But what do you think? Are you a teacher? Are you teaching coding to a young child or sibling? Let me know in the comments below.