Friday, 2 September 2011

(Raspberry) Pi in the sky

Dave Grohl"I wish I were Dave Grohl" I declared to my poker buddies, mostly just to fill the time having once more crashed out early and handed over yet another of my hard-earned tenners to our head of maths. None of them responded, so I continued to sit and watch in quiet awe of the Foo Fighters frontman executing textbook rock-star poses in front of thousands of delighted fans at some festival on MTV.

Why is Grohl one of my idols? He's a rock legend, was part of arguably one of the most important bands of the 90s, and then went on to various projects creating some really great music along the way. According to Google search he is also the most famous "Dave" in the world and the "nicest guy in rock".

Back in the real world, another legend has a new project. David Braben co-wrote the classic game Elite way back in the early 80s and has now designed the Raspberry Pi, a cheap and cheerful computer-on-a-USB-stick that will cost about 15 quid.

The Raspberry Pi is an attempt to lower the barrier of entry for kids to become programmers. Eben Upton, who founded the project, says in the Observer:
"While a lot of homes have a computer these days, kids aren't encouraged to start messing around with programming languages on these family machines. No one wants their home PC going into meltdown. A useful analogy might be that you wouldn't let your children take the family car apart, but you might be happy to let them loose on a bike – so the Raspberry Pi is the computer equivalent of that cycle.

You can program it using scripting languages like Python, or compiled languages like C and C++. You could write a game of a similar level to Angry Birds or Quake 3...

We need to convince the government that programming should be more prominent in the curriculum."

This will sit nicely with Google chairman Dr Eric Schmidt, who was in town this week singing a similar tune:
It's not widely known, but the world's first office computer was built in 1951 by Lyons' chain of tea shops. Yet today, none of the world's leading exponents in these fields are from the UK...

I was flabbergasted to learn that today computer science isn't even taught as standard in UK schools... Your IT curriculum focuses on teaching how to use software, but gives no insight into how it's made.

It seems to me that these commentators are making the following three points:
  1. The UK needs to produce more computer programmers
  2. Cheap hardware will encourage kids to "tinker" and learn to program
  3. Computer science should be part of the National Curriculum
I'm not sure any of these make sense, and I'll treat them one at a time.


1. The UK needs to produce more computer programmers

We are actually producing a lot of programmers. In fact, according to UCAS, computer science was the fifth largest subject in the UK university system in 2010:

RankSubjectAcceptances% changeApplicants% change
1Law16,931-3.4%94,2313.1%
3Psychology16,0634.9%93,84516.2%
5Computer science11,6051.3%55,25911.2%
8English studies10,092-2.8%60,8825.7%
11History8,6161.4%50,2156.8%
18Mathematics7,2765.2%40,9728.9%
42Physics3,6572.9%20,37211.9%


So we have plenty of computer science undergraduates at university and lots of competition for places with nearly 5 applicants to every place available. Do we really need more than 11k per year?


2. Cheap hardware will encourage kids to "tinker" and learn to program

The Raspberry Pi is clearly an amazing development, and I love it. I love what the project is doing and what they are trying to achieve - but is this a silver bullet that will inspire a generation of coders in the same way that the BBC Micro did for David Braben and so many others in the 80s?

As a kid having your very own machine to play with, break, and fix for hours on end is clearly better than sharing the family PC. However, in three years of doing computer science at university I didn't meet anyone who had caused their computer to "meltdown" through their coding efforts.

What's more important to my mind is not the hardware, but the software. The Raspberry Pi's processor can't run Windows, instead the FAQ page suggests that only Ubuntu or Debian Linux will be supported at first. Using a free OS means the cost barrier is kept low for our wannabe geeks, but whilst Linux distributions such as Ubuntu are much more stable these days, they are still more complicated to install and maintain than, say, Windows or Mac OS. This may put kids and/or schools off before they have even started.

It's not a deal-breaker, especially if the project develops a distro tailored for the Pi, or even starts shipping units with this pre-installed. But one did not have to set up a BBC Micro in this way - it had an OS and a nice accessible programming language (BBC BASIC) ready to go straight out the box, which helps explain why this computer led to so many people "tinkering" with coding. Users purchased Beebs to do other things - be it business, education, or games - then started playing around with creating their own inventions. Why would anyone other than an established geek buy a Raspberry Pi? I certainly don't anticipate many school network managers queuing around the block to purchase machines that don't fit the standard model of a PC, no matter how cheap they come (they'll just get nicked for a start).


3. Computer science should be part of the National Curriculum

This bit really baffles me. It just does not make sense to force every child through programming on the national curriculum. Imagine the reaction if my man Dave Grohl proclaimed: "It's an outrage that the country who gave us Jimmy Page, Eric Clapton and Brain May does not teach every kid how to play the electric guitar as standard"?

Don't get me wrong, I think there are huge problems with the ICT curriculum, and agree that merely teaching kids to use Office is not what the subject should be.

However, coding on the curriculum is never going to happen for the simple reason that we don't have the teachers to deliver it. I have not had the opportunity to meet vast numbers of fellow ICT teachers, but the majority that I do know come from backgrounds other than computer science and have little or no programming experience.

Even if we did magic up extra teachers, the kids would hate it. Programming is often a slow, tedious process with endless hours of debugging and battling with incomprehensible error messages before getting to the point where it "works". Whilst environments such as Scratch are already used in some schools to ease kids into developing simple code, for me the gap between this and "real" programming is too big and it would be a disservice to students to have them believe otherwise.

Adding programming to the curriculum would not even necessarily lead to more computer scientists. Look at the numbers studying maths and sciences at university - both compulsory to age 16, but have far fewer undergrad students than computer science.

Finally, it seems terribly old-fashioned to think that the way to get kids into something is to ask teachers to light the spark. Most programmers, like most guitar players, started in their bedrooms with no formal tuition and took it from there. I don't see any reason to change this, especially with the dawn of the Internet and open-source software kids can "learn on the job" and contribute to real projects without ever having to get dressed.

We could certainly encourage more students in terms of after school clubs and extra support, but this is crucially different to crowbarring coding into an already crammed curriculum, which would not even serve the purpose Google and others want. Sorry Eric.


c

Image from Galaxy fm on Flikr

6 comments:

  1. Who would have thought that education standards might still be stuck in the 1920s ?

    Statements like " the kids would hate it. Programming is often a slow, tedious process with endless hours of debugging and battling with incomprehensible error messages before getting to the point where it "works". "

    Really "The Kids" ? Which kids would these be ? the Degrassi junior high kids of your maligned imagination or the desperate hopes of one more soccer trophy for the school year book ?

    I was once a kid and I learnt programming in school. We had BBC micros and Logo and we learn to program in basic. There were kids that excelled in the school sports teams; or the school orchestra; or the school debate team so there are , and will be , kids that excel at programming.

    Now lets carry on up the wall of your velvet wall papered imagination of 'school life and times' where you say " but whilst Linux distributions such as Ubuntu are much more stable these days, they are still more complicated to install and maintain than, say, Windows or Mac OS" .

    Oh what utter banal and ill informed tosh you speak sir. Are you Seriously planning a career in education? if so I recommend you to a career in marketing and PR as you clearly care more for the sweeping anecdote than the open eyed reality.

    Tools such as Virtualisation make product installing and using of open source or windows or mac products easy and in most cases comes ready made to just do the work. Ubuntu is itself designed with the view that your going to install it from some esoteric locations so it makes life very easy to install.

    Your just carving a wide swathe or opinion and holding it as fact.

    last part; and its a Doozy for those of us who study in maths or statistics your utilisation of the facts "Sources: Acceptances - "Final end of year figures 2010" Applicants - "Applicants and applications received by 30th June - complete tables" both from UCAS " is not proof of anything and might reflect on change or interest but its not proof for or against the argument.

    What I suggest you do Chris is go back and learn a little more about these and other details if only so that you might understand how to spell Education.

    ReplyDelete
  2. hmm. at school, I was actually dissuaded fom playing my guitar. and the one teacher that recognised my skill tried to exploit it for his own personal gain. disclosure over. firstly, you seem to think that ubuntu is hard to install which to me is a siren screaming "hasn't tried it" secondly languages inmost universities generally tend to be high level languages like matlab, java and c#. this is denying our smartest the bare metal test of pure assemby and c,for when performance is critical. kids love to tinker and this is a perfect way to let them. sorry about caps, typing on a kindle ishard!

    ReplyDelete
  3. Rebuttal:
    https://plus.google.com/106432666226114859463/posts/KxQwi5rgqd4?authuser=0

    ReplyDelete
  4. Thanks loudmouth/TDM/Michael for your comments. Looks like I should clarify two things:

    1. My reading of Dr Schmidt's comment "today computer science isn't even taught as standard in UK schools" is that he is advocating making coding a compulsory part of the national curriculum. It's making it "standard" I am arguing against, with visions of 30 kids doing one lesson a week of programming in the Government sanctioned National Standard way. The whole population does not 'need' programming skills like they do maths and English. As both TGM and Michael point out, it's the kids who will stay over break tinkering with their creations that we want to encourage (complete with that inspirational dedicated teacher to help things along). Michael's point d) is well made and is something I will think about - but right now I still feel the lunchtime/after-school club is a better environment than a curriculum mandated lesson.

    2. The Pi is hoped to inspire new programmers in the same way as the Beeb did, but my key point is that the Beeb 'worked' straight out the box. You did other things with it first *then* got into dabbling with a bit of code. For a complete novice 13 year old, asking them to install the whole OS first is, to my mind, an unnecessary barrier between them and the coding bit we want them to enjoy.

    I will definitely buy a couple of Pis (one for me, one to use in school) stick Ubuntu on and see if some kids want to learn to program it - but I really would not enjoy being asked to teach the whole of year 9 to write C on a class set of them!


    c

    ReplyDelete
  5. Kids will hate it? What, all of them? Introduce children to programming, and, just like any other subject, some will hate it and some will like it. Find the ones that like it and teach them further. It doesn't need much in the curriculum - just enough to find out those who will enjoy it and those that won't.

    Windows vs Linux. I find Ubuntu easier to maintain than Windows Vista, and I am no Linux Guru.

    Raspberry Pi will work out of the box - just plug in the SD card and hey presto, a working Linux system. I know, I've got a prototype on my desk, and it works. Not Ubuntu though - Debian.

    Do we need more Computer Programmers. Yes, we do. The company I work for employs a lot of programmers, and we have to employ a lot from abroad, because we cannot get people in the UK with the requisite skills set. More people exposed in school = more people who are actually interested = better quality reaching university = better result leaving university = more UK employees for us.

    ReplyDelete