A tale of two Ebens

Recently I’ve been following the spectacular progress of Raspberry Pi with awe and delight. Eben Upton’s brainchild of a computer that empowers and inspires children to learn to program has garnered a lot of attention in the adult world; it remains to be seen whether its plucky British inventor and retro computing appeal can translate into real success where it matters—with children.

Meanwhile, I’ve been led to some startling talks given recently by Eben Moglen, the founder of the Software Freedom Law Center, and general counsel for the Free Software Foundation. They both deal with the importance of free software and free hardware, and the second in particular recasts the arguments into the current political climate as a strategy for getting the attention of politicians. It’s in the second talk too that Moglen insists on the importance of children, describing children’s curiosity as the greatest force for social change that we possess.

Moglen’s urgent and inspiring call to action (“technologists must engage politically to save civilisation”) rather overshadows Upton’s (“get kids excited about programming with cool toys”), but they share at least two foci: not just children, but also small inexpensive computers; for Moglen spends some time talking about the Freedom Box project, to create small inexpensive low-power servers that everyone can use to regain control over their own data.

And indeed, people are already making the Freedom Box software stack run on Raspberry Pis.

Is there some hope that we may as well as claiming the children also be able to reclaim their parents? I find it rather sad that so much emphasis is placed on children, as it overlooks the childlike potential of adults: for that potential is all of ours while we yet live.

Raspberry Pi: enough to go round?

Raspberry Pi’s most important achievement so far is in generating considerable publicity. The genius of its marketing is that it appeals to the current generation of tech journalists, who were raised on the 1980s home computers whose spirit it invokes. Whether it will appeal today’s children however is less obvious, and arguably more important. Having the inner working exposed (unlike home computers) should help, though it also exposes a serious failing (more on that later).

What measure of success?

How successful it is likely to be depends largely on what you think the problem is.

Reproducing the past

Raspberry Pi’s founder, Eben Upton, defines the challenge as getting a pocket-money-priced computer suitable for teaching children to program mass-produced. The R-Pi meets that definition for the sort of middle-class household that boasts a spare HDMI-compatible monitor plus an old mouse and keyboard and offers generous pocket-money, but elsewhere failing to count input devices and a display in the cost seems disingenuous, and an all-software solution that ran on just about anything, including phones and old PCs, and could be freely downloaded, would seem nearer the mark.

Upton would reply that merely adding “an app for that” doesn’t invite the child to program as the old home computers did (when you switched them on you were immediately presented with a programming environment). Compare this with games consoles and PCs: you can program them, but by default they offer games or an office desktop respectively.

More seriously, many parents quite rightly lock down the computers their children use to prevent their visiting undesirable web sites or installing new software, or even insist on their being supervised: forbidding conditions under which to nurture the sort of exploratory play by which we all learn to love programming. A separate device which belongs to the child, contains no sensitive parental data, and can’t go online addresses all these problems, and the child can be left alone with it as safely as with a book.

Rebuilding the workforce

So far, so good: we’ve recreated a small corner of the 1980s, and a small self-selecting segment of relatively privileged children will have a chance to become programmers. But we already need far more programmers today than when the children of the 1980s entered work, and we’ll need even more when today’s children grow up. To make up the shortfall, programming needs to go mainstream.

This is a challenge that’s already being met locally in many areas; Upton’s approach is to reach out to children directly via programming competitions (or “bribery” as he calls it); although this approach might work without substantial involvement by schools, it seems unwise not to make a serious push for inclusion in the school curriculum.

Remaking society

I believe, however, that programming is far more important and central a skill for the modern world than even its most ardent industrial cheerleaders suggest. Being a non-programmer today is like being illiterate two hundred years ago: it’s possible to get by without understanding anything about programming, but you end up relying heavily on others.

It’s a subtle point, because it’s rare that one needs to actually read or write code; rather, one needs to understand how computers work because increasingly they are embedded in, and hence govern, the systems we use to organise our lives.

Many competent and confident users of computers are reduced to impotent gibbering by machine malfunction, because learning how to operate a computer gives one very little insight into how they fail, whereas understanding bugs and other failures is central to learning how to program. It’s as if the person who could help you repair your blender is the one you’d ask how to cook a soufflé, or as if the person best able to navigate a car was a mechanic.

(Why computer systems are like this is a fascinating question whose answer involves the immaturity of the technology, its complexity, and the degree to which interface and systems design is still driven by technical rather than human considerations, but one I can’t elaborate on further here.)

Even more important is the mindset underlying programming: programmers, like scientists, believe that systems have rules which, if they can’t be looked up (“reading the source code”) can be discovered and codified (“reverse engineering”). But programming has an additional, empowering belief: that rules can be changed or replaced. In a society that is increasingly rule-bound and run by machines, a programmer’s mindset offers both the belief that things can be improved, and the tools to change them. That is why it’s essential that every child should understand at least the principles of programming, even if they never read or write a line of code as an adult.

Scaling up

Hence, it is necessary that programming become part of the core school curriculum, and it will be a good sign that it is embedding itself in our culture when it becomes so. Raspberry Pi has three major problems here: the hardware, the software, and connectivity.

Seeing to the bottom

The problem with the hardware is optically obvious, because of R-Pi’s lack of external casing: it’s entirely closed. You can see the components, but you can’t take it apart to see how it works, or modify it in any way. This is partly a result of the nanometre scale on which modern electronics is built, but it’s also caused by the increasingly draconian intellectual property régime under which we suffer. Unfortunately, the beating heart of the R-Pi, a Broadcom SoC (“System on a Chip”), is a prime example of this.

Even more unfortunately, it’s hard to see how anything like the R-Pi could be built without such regressive technology (in this case, via a special help from Broadcom that Upton, as an employee, managed to secure). All this means that the R-Pi is not only little use in firing the imagination of the next generation of hardware engineers (just as sorely needed, if not as numerously, as the software kind), but its hardware reinforces the “black-box, do not touch” mentality that its software is trying to break down.

Programming for all

Unfortunately, the programming environments provided, although open, are the standard machine-first arcane languages and tools that adults struggle with. Why not use something like Squeak Etoys, which is based on decades of research in both programming and teaching programming? (The plurality is part of the problem too: the R-Pi offers distracting choice, unlike old home computers which simply dumped you into their one built-in programming environment.) Fortunately, this is easy to fix: just update the software shipped with R-Pi.

Changing the world, Learning together

The final problem, connectivity, is a subtler one. Above, I mentioned that an advantage of giving a child their own device is that it need not be connected to the internet, and hence can be safe for them to play with unsupervised. But the R-Pi lacks other sorts of connection that are important. First, it can’t affect the world physically (though peripherals attached to it could). While the privacy and absolute power one enjoys in the virtual world inside the computer is exhilarating and empowering, children also love toys that have real world effects, and it’s an important aid to the imagination to see that one’s electronic creations can have direct physical outcomes.

The Logo systems of the ’70s and ’80s had a natural real-world extension in the form of drawing “turtles”; today we have Lego Mindstorms, but they’re expensive, and only partly open. What we need is a RepRap for children. Secondly, children want to play with each other; their computers should be able to network too. The One Laptop Per Child machines do this; R-Pis should be able to too (and again, fortunately, it’s mainly a matter of software).

Feeding the five million

In summary, Raspberry Pi is, closed hardware aside, a great platform that could help catalyse a much-needed revolution in the perception of programming. The good news is that the remaining technical steps are in software, and can be taken without the heroic step of re-mortgaging one’s house, as Upton did to fund R-Pi. The bad news is that the rest of the job is social, and hence much trickier to achieve than a bank loan.

Unchanging rhetoric on higher education

I tried to post this as a comment to the Guardian article Universities must cut private schools intake, says Simon Hughes, but the web site said “Your browser sent a request that this server could not understand.”

The tune of the government, sadly but unsurprisingly, never changes, and continues in its hypocritical vein, suggesting that ministers are not really interested in improving access to the élite universities most of them went to.

If they were, then we might hope ministers to tell us how things have changed over time (how is access to Oxbridge now compared to 30 years ago? much better than it was, but still some way to reflecting society), to laud successes, and to commission and act on research to improve things further.

And they might stop implying that what Oxbridge want to do is keep the plebs out and keep educating the rich.

I was briefly acting Director of Studies in Computer Science at one of the bigger Cambridge colleges in the late 90s. My successor, a state-school educated Northener, had to address the problem that applications were falling off (apparently in the 21st century, computers are no longer cool), and there were barely enough applicants for the places available, let alone good applicants. So, he went on the road, mostly to state schools whose students weren’t applying to Cambridge. In jeans and T-shirt he’d talk to kids, encouraging them to apply, and to their teachers. Often, it was among the teachers he’d meet the most resistance: “Even if we did get our kids to apply to Cambridge, we wouldn’t apply to you, you’re from a posh college,” was one of the more bizarre comments he got.

Cambridge has had a university-wide programme to widen access which has been in place since I was an undergrad there nearly twenty years ago. My college has its own scheme too, and staff were encouraged to do the sort of thing my friend did. The University is desperate to get good students (even at the peak of the Computer Science boom, in the early 90s, the department was worried that the maths skills of applicants were weak), and it doesn’t care where they come from.

The way the government is increasingly piling up-front costs on to students, the answer is going to be “from rich families and/or abroad”. The new funding system may be rational, it may even be fair, but it won’t broaden access, and my friend will still be left wondering where on earth he is supposed to find the next generation of computer scientists.

Tags: education