When I was growing up, computers were only just starting to make inroads into schools and homes, mostly via affordable (not to everyone true, but to a large slice of the population than previously) machines such as the BBC Micro, and the ZX Spectrum. As I've mentioned before my first serious forays into computer programming where actually with an Acorn Electron (a cut down, and hence cheaper, version of the BBC Micro). While these machines were often used as glorified typewriters or for playing games they were also easy to programme. When you turned them on they didn't boot straight into some complex graphical operating system, but to a simple prompt. You could enter commands that would load programmes, or you could enter simple commands that would make the computer do something. If you messed up you just turned the machine off and then on again. There was no danger of you messing the machine up in any way that would stop it working perfectly next time you turned it on. Combined these two things led to a generation of kids who messed around programming computers and who have grown up and become software engineers.
Unfortunately as computers have become more complex, the ability to experiment with programming has reduced. Also it is much easier to mess up a modern computer so that it requires a complete re-install rather than just a quick on-off of the power switch. Together this things seem to have led to a severe drop in the number of kids who are learning to programme. Of course they aren't helped by the focus of IT lessons in schools towards knowing how to use office software rather than teaching computing skills.
Having been involved in university lab classes and marking assignments over the last decade, it is clear even to me that most students arriving for an undergraduate course in computing have very few existing skills. Unfortunately they tend to graduate without learning too many more. Yes they can knock up a programme to solve a particular assignment, but often they pay no attention to details such as maintainability or efficiency (time or space). Let's just say that if I had to build up a team of programmers I doubt I'd be willing to hire most current computer science graduates, given the level of programming ability I've seen. Now I'm not really in a position to affect more than a few students by giving constructive feedback on assignments etc. Fortunately there are plenty of other people in the UK who agree that the level of computing knowledge among today's kids has fallen so far that we are in danger of not producing enough qualified graduates. Their solution to the problem is the Raspberry Pi.
I've been following the Raspberry Pi project for a while, and when they went on sale at the end of February I got my order in at the first possible moment. Due to the overwhelming demand in the device the websites of the two distributors were almost brought down. Anyway I must have been one of the earliest through the ordering process because my Raspberry Pi was one of just 2,000 that have currently been sent out to customers. So what exactly is a Raspberry Pi?
Put simply a Raspberry Pi is a fully fledged computer. It has all the same fundamental components as any regular desktop computer but costs, wait for it, just $35 and is the size of a credit card! The idea being that it is as cheap to kit out an entire class with a Raspberry Pi each as it would be with a textbook each. The computer has 256MB of RAM (not all of it is available as some is used by the GPU), uses a 700MHz ARM CPU (similar to that which you'd find in a smartphone), and an SD card for storage. All you need to do is add a keyboard (and mouse if you are using a GUI), a display, and then power it using a mobile phone charger. For a display you can use either HDMI or composite which allows you to plug it into old and modern TV's as well as modern computer monitors (via a HDMI to DVI-D cable). The SD card contains the whole operating system and is easy to re-image (i.e. recreate) if it gets messed up (it took about 30 seconds for me to set up my card using the default Debian distribution).
The idea then is to get these into schools were kids can learn to programme and about how computers work without worrying about messing up a family PC, or a PC required for standard ICT lessons etc. Currently though most of the Raspberry Pi's will have been bought by people like me who are interested in technology and grew up programming simpler machines than we commonly use today. We will iron out any bugs in the hardware, and write software for the device, so that when, later in the year, a cased version is launched for schools there will be teaching material and applications available. I'll certainly try and help the community in anyway I can and for the first time in over a decade I have hope that maybe the level of computing skills I see in undergraduates might actually go up rather than down!
Oh and from a quick play this afternoon, it can run GATE! (For those who don't know GATE is how I earn my living).