September 25, 2012

...Learn TDD with Codemanship

Programming Outside Of School: Time To get Our S**t Together?

Last year, in the course of organising various related activities, I had the chance to informally straw-poll about 60 head and deputy-head teachers to gauge the general mood towards including computer programming in the classroom.

I learned then that support for programming in schools was low - less than 25% of schools had any desire or intention to include it in their curriculums.

Over the last year I've been the voice in the wilderness, warning activists that we were in for a disappointment if we thought schools were the answer.

A recent study by National Foundation for Education Research suggests my 60 data points were no aberration. If anything, they may have been an optimistically skewed sample.

The study found that only 14% of ICT teachers who responded considered including programming in the computing curriculum a high priority. A worrying 30% considered it a low priority, and 12% no priority at all.

As my own experience suggested, one significant factor might be their ability to teach programming. The study didn't ask ICT teachers if they could program, but asked how confident they felt about teaching it, a statistically interesting percentage replied that they had low or no confidence.

Teachers who go on short programming courses tend to find that their initial confidence - bouyed by a disturbing trend for overrating their achievements by the course instructors (possibly for commercial gain - who wants to pay hundreds of pounds to go on a course that ends with "well done - you are now slightly less clueless"?) - gives way to the realisation that there's actually a hell of a lot to learn, and even in relatively simple applications, a heck of a lot you need to know just to make a modern computing device do something vaguely useful.

Whether it be through simplistic optimism or cynical dumbing-down, the barriers to getting teachers teaching real programming have been grossly underestimated.

It may be cynical pragmatism that leads some ICT teachers to say programming's not important. Yes, we have a fair share of people who would prefer to argue that certain skills aren't important, rather than admit they lack those skills and start a long journey to gain them. But that's doubtful in many cases.

More likely is that ICT teachers who rate programming as not a high priority just don't get it. They need to look around at the world as it is now, and imagine the world that's emerging. Be it in the workplace, on the roads, in the hospitals, in the science labs, in concert halls and recording studios, in TV and radio stations, in our own homes and in the very classrooms they're looking out from, software is becoming more and more a core part of everyday life.

In the future, little new will happen in so many walks of life - science, engineering, manufacturing, commerce, medicine and healthcare, entertain and the arts, transport, energy - without someone writing new software. Believe it or not, you cannot download every conceivable computer program possible from the App Store. They haven't been written yet.

And let's not forget that the software that's already been written tends to need to evolve. Would Tesco be as competitive today if they had to rely on code written in the 1960's?

The history of human civilisation is the history of ideas, and software is literally made of ideas. Shield children from that, and you risk excluding them from a foundational ingredient of the 21st century.

A nation that can use software but can't create it will be every bit as hamstrung as one that can read books but can't write them. You think I'm exaggerating?

But, as I've been saying all along, it seems likely that school isn't going to be the answer. I come from a generation that taught themselves to program at home. There was only one teacher at my school who could program. He started a club for it, which ran for 25 years until his retirement last year. Nobody has taken the mantle from him, and I was informed that the club closed. My school has no programming or computer science - let's not forget, not the same thing - on its curriculum, and, judging by their complete disinterest in discussing it, no plans to include it.

So, it's on to Plan B (or should that be Plan A++) for the majority of children who may not get the opportunity to learn programming at school. What can we do for them?

Well, one option is to ignore these findings and impose programming on them. Good luck with that one. I'll have no part in it.

Another option might be to form an unholy alliance between industry, educators, media and enthusiasts to organically grow a market in "programming for kids" that can exist independently of the school system.

Let's be clear, in such a market, cynicism and greed will be a problem. Already we see people and businesses mercilessly exploiting the recent rash of publicity for money, media exposure and influence. Many of them can't actually program a computer themselves. But they can think of a cool name, and knock up a decent-looking logo and a Facebook page. And these days, that seems to be enough to establish one's "expertise" in most domains.

We live in an age where announcing you're going to do something seems to count with equal weight to actually doing something. Let's face it, some of these people just want to get their name's in the papers. They'll likely-as-not actually do nothing when push comes to shove. I've had first-hand experience of this, when I naively agreed to feature an experimental pilot that hadn't even started in a local TV news report. Unsurprisingly, a year later nobody's followed up to find out how it turned out. Poeple at home may have been curious to know that the school featured, for example, dropped out as soon as the camera stopped rolling.

But what they do achieve is to create confusion and to obstruct legitimate activism, like Computing At School, who've been quietly slaving away over this problem - building a curriculum, building support, lobbying government, raising money - for a few years.

I fear this may have also contributed to the low percentage of ICT teachers who feel programming's of high importance. Frankly, I don't know what's going on half the time myself. It's just a disconnected, uncoordinated mess once you get outside of the relative calm of the CAS bubble. It's a testament to the likes of Simon Humphreys and Simon Peyton-Jones that they maintain forward momentum, with just so many people outside pushing and pulling in different directions.

To quote Douglas Adams on the progress of his Hitchhiker's movie: it's like trying to cook a steak by having a succession of people come into the room and breathe on it.

All the hooplah about computing in schools, and Michael Gove's subsequent scrapping of the ICT curriculum with no immediate workable replacement, has left a vacuum, and all manner of crap ranging from the well-meaning-but-misguided to the bleakly cynical has rushed in to fill it.

For computing in school, my wish is that - rather than everybody going off and doing their own thing - we should all get behind CAS and push. If you won't do that, then shame on you. Seriously. Now's not the time for reinventing wheels or carving out competing empires, especially if they're little more than empires built on smoke. It just detracts from a serious effort being made by serious people who have worked seriously hard on it for a serious amount of time.

But now it seems clearer than ever that CAS isn't enough. What about the schools who don't view programming as a high priority, or as no priority at all? The next potential Ward Cunningham or Steve Freeman or Dan North might be languishing in a programming-free zone.

Personally, I think it's time to get our shit together on this. But I've suffered knock-back after knock-back over the last year as wave after wave of media-hyped nonsense has kept the cat continually among the pigeons. Nobody seems to have any idea what's going on now. Least of all me.

Suggestions on a postcard, please.

Posted 8 years, 4 months ago on September 25, 2012