Last night I went to the Coding For Kids Barcamp. This event, organised by Emma Mulqueeny, was designed to bring together geeks, parents, kids, and educators to see if we can improve the woeful state of computer science education in this country.
This is the blog version of the discussion I lead.
Kids And Phones
Kids love their phones. Can we use that love to encourage them to learn how to code?
Here's a great stat about teens and mobile phone ownership:
Two-thirds (65%) of children aged 8-15 own a mobile phone
- 49% of 8-11s
- 82% of 12-15s.
Pretty stunning stuff, I'm sure you'll agree. The only problem is, those statistics are from 2006!
Ofcom has been commissioning studies into phone ownership for several years. They give us a great insight into phone usage among kids.
For example, more recently, we see this gem of a stat.
The correlation between age and mobile phone use is particularly strong, with the proportion of children using a mobile almost doubling between the age of 9 (52%) and 15 (95%).
[...] children are acquiring mobiles at a younger age and using them more.
Again, wow! 95% of kids have a mobile. Oh, that stat is from 2008!
Let's go bang up to date with the most recent Ofcom study.
Smartphone ownership in 2010 comprised
- 3% of 5-7s,
- 13% of 8-11s,
- 35% of 12-15s.
A third of kids have smartphones. I'm not sure that we need a whole bunch more statistics to tell us that mobile phones - especially smartphones - are highly desirable to kids. Both boys and girls.
PC ownership isn't as rare as it once was - but it's still a pretty big barrier to entry. Especially if you have to fight parents and siblings for time on a shared computer.
Before running off into discussions about what should be taught - let's take a look at which platform is the best for kids.
Taking into account kids' smartphone ownership rates, we get a chart like this.
While BlackBerry is very popular at the moment, Android has already started to eclipse it.
The rise of Android is unstoppable when you consider how cheap the phones are getting.
This is the Huawei Ideos:
The Ideos currently retails for US $80 in Kenya. Eighty bucks for an Android 2.2 smartphone. With 3G, Wifi, GPS, touchscreen, and all the other fun stuff the more expensive phones have.
Here in the UK, we're seeing more handsets come in at the sub £100 mark.
There are going to be a lot of these cheap but capable smartphones in Christmas Stockings this year.
However, even at £100, that's still too expensive for many students. But I don't think it's too expensive for schools.
Back in the mists of time, when I was a child, our family was lucky enough to own a BBC Micro. This was one of the first mass-produced computers intended for educational user. Most schools had at least one kicking around. But they weren't cheap.
In 1981, the BBC Micro Model A cost £235. The B Model cost £335. (Source: Wikipedia's BBC Micro Page
Adjusted for inflation, that's £750 and £1,050 respectively. A huge quantity of money.
At £80 per phone, a school could quite easily buy a couple of Android handsets to go in each computer lab - and, perhaps, let them be loaned out to students.
There are two other app development platforms worth considering; BlackBerry and iPhone.
While BlackBerry is popular (for now) it is an absolute pig to program for. It has a level of complexity that is just painful. Added to the problem is its ridiculous signing requirements and you end up with a platform with is quite unusable for kids.
iPhone is the darling of the industry - and very easy to code for - but has three very serious drawbacks.
- Expensive. iPhone ownership is low because the hardware costs are so high.
- Limited platform. You can only create iPhone apps on a Mac. If your school has a few hundred Windows XP computers - you'd have to replace them all with expensive Macs.
- Hard to distribute. If you've written an iPhone app, it is relatively hard to put it on a dozen iPhones - unless you want to get it certified by Apple, which could take a while!
So, Android has the upper hand.
- The development kits is available on Windows, Mac, and Linux, and will run on very modest computers.
- Android programming is done in Java. Lots of free tutorials out there.
- 3D programming is available with OpenGL.
- There are no distribution restrictions. If a kid has written a fart app - they can spread it round the school to their heart's content, using nothing but BlueTooth if they wanted.
- Opportunity to make money. If you want to distribute or sell your app through the Android Marketplace, the registration fee is only $25. A school or club could easily register and get all their kids work up on the global stage.
So, how do we capitalise on that and get them interested in coding?
I think that, rather than getting kids to program big boxy computers - where they can only make use of their creations in the computer lab, or a PC they share at home - we should get them writing apps.
Not Angry Birds (although that's great from a physics & mechanics perspective), and not FourSquare clones (although, again, great for geography course work), and not InstaGram filters (could be useful in an art class, I guess), and certainly nothing like Rosetta Stone (may be useful if they're learning a foreign language, perhaps)...
Ahh.... you see, apps can be useful in most classes. Not just for an optional "programming" module.
More than that, they're cool. I don't know if kids still say "cool" - but apps have a high social cachet. "What's that app you're using?" "Oh, just something I wrote!".
Yes, we can start off on "Hello World", then fairly trivially move on to inputs, then conditional statements, then reading sensors, then drawing graphics...
Before you know it, kids have built an app which plays a Justin Beiber clip every time they answer a question correctly in a history test - but only while they're in the playground.
Isn't Someone Already Doing This?
Indeed they are! The CDI AppsForGood team go in to inner city schools and get kids to design apps which will be useful to them and their peers.
So, my CodingForKids pledge is two-fold
- Work with AppsForGood to help them achieve their aims. Be an expert advisor to their students. Involve the companies I work for with the project.
- Find and promote Android programming resources specifically designed for kids. Promote apps which have been built by young students.
We Need You!
If you want to get involved, please visit the CodingForKids Wiki and see how you can help.