The Raspberry Pi: A project to shake up the stagnation of educational computing

As previous articles may have suggested, I’m a Linux aficionado, and have been for several years. I’ve been trying my hand at Linux systems for something like ten or eleven years, running through successive versions of SUSE Linux and openSUSE, later adopting Debian and Ubuntu on some of my other computers. Ultimately, my time with Linux has helped hone my computer skills, often requiring more of a technical mind when things go wrong than the equivalent Windows system, but feeling all the more satisfying when everything goes smoothly.

The readily-available command-line-based programming tools from the GNU Project have helped me learn more about the structure of the languages I’m learning than the graphical IDEs that I used on Windows. As Linux has evolved, the old methods of doing things often remain for a transitional period, allowing for a smooth transition as one sees fit without closing oneself off from newer applications. While it’s not yet a perfect alternative to Windows for the vast majority of users, Linux is often a better platform for learning how to use a computer technically than a comparable Windows or Mac OS X installation, for the freedom it allows, the easy extensibility and the ethos of the hobbyists it has grown up around.

For years, I have lamented the wilful ignorance that many people have towards computer technology when it isn’t handed to them with a flashy graphical user interface which aims towards the lowest common denominator. While I can understand that most users don’t want to be hacking C on a command line, and that there are places for people who do want to be doing this to learn, it is frustrating to see otherwise intelligent and capable people become brain-dead consumers as soon as they face a computer screen. I have no hesitation in asserting that most of their problems are a case of a total lack of interest rather than some inherent condition of computers to create fools out of intelligent people. Even in a world increasingly dominated by information technology, it seems to be fashionable to close one’s self off from computers as if they were some sort of magical artefact, and as if those that can use them well are practitioners of some sort of black art.

Educational systems at primary and secondary level have had trouble keeping up as well. Faced with a field of rapid evolution and even more rapid obsolescence, the education systems in the UK and Ireland, among others, have taken the same sort of “lowest common denominator” approach as many software providers. Education in computing most often takes the form of learning how to use office software, without any real provision for the teaching of programming techniques, nor of basic computer science techniques such as sorting, binary mathematics or such other useful principles. This isn’t just a theoretical matter either; many IT and other computing companies in the UK have reported a lack of educated staff in the fields of computer science, information technology and allied fields. Even Google’s chairman, Eric Schmidt, has lamented the lack of computer science education among the youth of the United Kingdom, a field which the British helped define in the 1950s and 1960s.

I am clearly not the only person displeased at the state of computer education at primary and secondary level. During the 1980s, during the golden era of home computers, before the near-monopoly of the x86 architecture and of Microsoft operating systems, computers booted up into BASIC interpreters, which although not capable of very much, defined programming as an inherent and integrated part of the computing process. Harking back to these ideas, a group of interested parties has formed a registered charity in Britain known as the Raspberry Pi Foundation, aimed at developing and producing a low-cost, tightly-integrated computer (the eponymous Raspberry Pi) on a motherboard small enough to be carried around easily and replaced inexpensively. The leader of the Raspberry Pi project, Eben Upton, works with Broadcom, which use British-designed ARM processors in their embedded designs, while David Braben, co-developer of the seminal game, Elite, for the BBC Micro, is another member of the foundation.

Together, the group has designed a computer containing a 700MHz ARM11 processor with an integrated GPU and ports for HDMI, composite RCA video and a 3.5mm jack. Two models will be available: the Model A contains a single USB port and 128MB of RAM, while the Model B adds another USB port, an additional 128MB of RAM for a total of 256MB, as well as a 10/100Mb Ethernet port for internet connections. A series of GPIO, I2C and other connectors is available as a separate header for both models, while an SD card slot provides the storage capacity for the operating system. The total cost of the computer, which has entered production and will soon be available for shipping, is projected to be £18 ($25) for the Model A and £22 ($35) for the Model B.

The cost is one of the greatest draws of the Raspberry Pi project, low enough to be easily replaceable if the unit is damaged beyond repair or to be used in robotics, integrated computing and other hobbyist projects. For that price, you get a surprisingly proficient piece of hardware, capable of running the likes of Quake III at 1080p, and capable of being a useful media player as well as an educational platform for programming, content creation, et cetera. The ARM processor architecture just happens to be one of the best for teaching assembly language, a skill which has recently largely been restricted to computer science and engineering courses. The GPIO and other headers allow the Pi to be used for robotics and automation projects at low cost, while the provision of the composite RCA connection allows old televisions to be used as screens in the absence of a high-quality monitor.

Such a device therefore addresses several concerns at once, while not really compromising on anything which is important for an effective syllabus of computer education. The hardware will soon be available; with Michael Gove recently announcing the scrapping of the much-maligned ICT syllabus to be replaced with a course with a greater focus in computer science, it remains to be seen if there can be a shift in mindset about technology away from treating it as a black box, and more as a platform for creativity and development, but I remain cautiously hopeful.

The Raspberry Pi’s homepage is available at The first batch of Raspberry Pi units, all Model B units designed for hobbyists and software developers, should soon be available for purchase. I, for one, am wishing for success in this endeavour.


Goodbye, SOPA, and good riddance

In the wake of the recent blackout of many websites, including Wikipedia, it appears that the ill will directed towards the Stop Online Piracy Act, SOPA, has led to its shelving by Congress, as well as a postponing of the bill by its founder, Rep. Lamar S. Smith. I, among many others, am very reassured by this. Some of the objectors to SOPA were themselves small-scale copyright holders whose businesses would be harmed by the passing of the bill; others were people interested in net neutrality and in privacy on the internet. Others still were pirates whose jobs would be made somewhat more difficult with the passing of SOPA, and it should be remembered that their acts are repugnant, such an approach to stopping their actions as SOPA would have enabled was potentially very short-sighted, with a lot of scope for abuse and manipulation of the system.

My objections to SOPA (and for that matter, to the similar PIPA bill and to DMCA and others in the past) come somewhat from my support of free and open-source software, including that which underpins the internet. I’m not a particular fan of copyright in many ways in other fields either; while I think that it is a necessary evil, I don’t think that 70 year periods of copyright do anybody any good, nor do I think that many of the bigger parties with copyright protection in the music, cinema or video games industry actually deserve most of their money. That isn’t my main concern with SOPA, though. My main concern is that the bill was proposed and sponsored by a set of politicians who seem to know next to nothing about computers, and whose support of the bill seems to have been swung much more by the funding that each of them has received from the MPAA and RIAA than any actual education on the subject.

I don’t know much about Lamar Smith’s voting record, nor much about his achievements as a politician. What I do know, however, is that he is not a computer scientist, nor does he seem to have any sort of formal education in computing or in information technology nor in any allied field. Indeed, of all of the co-sponsors of SOPA, only a single one seemed to have any sort of formal computing education, a situation which is echoed in the PIPA bill, and indeed in the DMCA before it. This, then, is a set of law-educated politicians deciding things on technology without knowing anything substantial about the technology which they’re imposing laws on. That’s like letting me set new statutes on the limits of fraud, a situation which is at once risible, preposterous and more than a bit unsettling.

I’m really very distressed by the ease at which these acts can be proposed by people who remain ignorant of the things they seek to change. Luckily, the response to SOPA has stopped it in its tracks, and I say, once again, “Good riddance!” to it. However, PIPA is still in the pipeline, ACTA is still being negotiated and other bills will surely follow. The war against technological ignorance in politics as well as the outside world is far from being won, and in fact, I know I’m on the losing side. We’ve won an important battle, though. Everybody who opposes SOPA and PIPA for the right reasons, keep up the good fight.

Historical Operating Systems – Apple’s System 6

Apple’s approach to the computer market has always rested on its hardware, with a deeply integrated approach to its operating system software which is still obvious even with the Intel-based hardware architecture of today’s Macintosh computers, and the UNIX operating systems used in almost all Apple hardware. In the 1980s, when Apple was one of the biggest customers of Motorola 68k processors and relied on its own proprietary hardware, their integrated approach was even more obvious, with a stylistic approach which stood apart from competitors such as Commodore’s Amiga, and especially stood apart from the distinctly ugly early versions of Microsoft Windows which were found on the myriad of IBM PC-compatible machines in the market.

System 6 was the penultimate revision of the Macintosh System Software designed for Motorola 68k processors. It was released in 1988, slightly after the release of the Macintosh SE computer, an integrated all-in-one unit which resembled the original Macintosh units, along with the Macintosh II, the first of the Macintoshes with a separate monitor, and the first able to display colour images. Ultimately, like its predecessors, System 6 took its provenance from the system software of the original Macintosh 128k, although it had been developed somewhat since then.

The system software of the Macintosh 128k was graphically impressive, but with a single-tasking approach which more closely resembled that of the command-line-based operating systems it was competing against, it wasn’t particularly technically impressive. Given the obvious capacity for a GUI to run more than one program at a time, which was demonstrated on the predecessor to the Macintosh, the Lisa, this was a somewhat disappointing state of affairs. This was only rectified with the release of System Software 5 in 1987 and its MultiFinder extension which allowed cooperative multitasking for the first time.

With the capacity for System 5 and System 6 to run on older machines, this extended the multitasking back to the Macintosh Plus and the 512Ke. Cooperative multitasking was not the optimal way of solving the problem of running more than one program at a time; it relied too much on the voluntary ceding of CPU time by each application, and led to problems such as entire networks slowing down because people held down their mouse buttons for too long. The Amiga, which had been released two years previous, used pre-emptive multitasking, a technically superior option, although one which required more complicated underlying software and which imposed a slight additional load on the CPU. Apple’s operating systems, on the other hand, would end up using cooperative multitasking all the way up to Mac OS 9, and even then had to provide the capability for cooperative multitasking to provide backwards compatibility.

Where System 6 lacked technical sophistication, however, it arguably made up in style. Where the GUI contemporaries of System 6, such as AmigaOS and RISC OS, started off with garish colour palettes and only later developed styles that were more comfortable to the eye, System 6 continued the slow evolution of the interface style that would persist on Apple’s platforms all the way up to the adoption of Mac OS X. With the Chicago typeface across the persistent top menu bar, the familiar Trash can and the iconic Happy Mac and Sad Mac icons, the familiar elements had already been set in place for the standard Mac OS interface for the next ten years.

A typical screenshot from a Macintosh SE – which would still look familiar to users of the latest versions of Mac OS 9.

System 6 came on four 800KB floppy discs, or later on two 1.4MB floppy discs, and the system could be booted directly from the floppy drive, while also having the capacity to be installed on both internally- and externally-mounted hard drives. As the older Plus and 512Ke models weren’t provided with hard drives as standard, and as System 6 officially dropped support for the slow and expensive Hard Disk 20 which had been supplanted by SCSI-based technology in the newer computers, the ability for the operating system to still be booted from the floppy drive gave older Macintosh users the features of the newer operating systems without having to buy completely new machines.

Even with the floppy interface, System 6 is notable for its rapid loading time. Even on the likes of the Macintosh Plus or SE, the operating system will load to a fully-working state in about thirty seconds, more quickly than a modern PC or Mac running the likes of Windows or Mac OS X. This rapid loading time was facilitated by the use of 68k assembly language to program the operating system, unlike its successors which would use C and were not as well-optimised for their individual platforms. System 6 was obviously very tightly integrated with the Macintosh architecture – a situation which would have suited Apple right down to the ground.

Ultimately, though, that tight integration with one processor architecture and one line of hardware couldn’t persist forever. While System 7 would run slower on any 68k-based Macintosh than System 6, and could no longer be booted from a single floppy disc, it was portable to the PowerPC processors which Apple had planned for its computers since 1991, and finally adopted in 1994. System 7 also had support for 32-bit memory addresses, rather than the limited 24-bit addresses of System 6 – limiting it to a scant 8 megabytes of RAM. While System 6 would run smoothly on a late-1980s or early-1990s Macintosh, its limitations weren’t in keeping with Moore’s Law.

Today, System 6 is one of the revisions of Mac OS Classic provided for free by Apple on its support website. The North American versions of System 6.0.3, 6.0.5 and 6.0.8 are provided as compressed StuffIt Expander images which can be expanded into four 800K or two 1.4MB floppy images. These images, once extracted, will work in various emulators of Macintosh systems, as well as providing users of old Macintosh systems a way to keep their systems going even if their original system discs stop working. It’s difficult to find many other operating systems from this time period – both AmigaOS and RISC OS are tightly controlled by their owners, while Windows versions predating Windows 3.1 are barely worth trying – so this is an interesting chance to see what GUIs looked like from the non-PC-compatible side of the fence.