I attended a talk given by Prof. Alan Mycroft at the Indian Institute of Technology Bombay yesterday. It was an interesting talk about the genesis of the Raspberry Pi and the educational system it was designed to fit in. Some notes from the talk follow.
The Pi has several competitors. Some from before such as the BeagleBoard and Arduino boards. Some after the Pi became such a hit such as VIA's Banana PC and the ODroid-X . The Pi folks are not worried because it was never a competition for them. Their goal was to inculcate in young students a keen understanding of the fundamentals of computer science. If that is achieved via other boards, so be it.
Pi was named so because originally it was envisioned to be running just the Python interpreter. Raspberry because it is fashionable to name computers after fruits and also because " blowing a raspberry" implies disrespecting the establishment. Due to the myriad circumstances, a Linux based system was created instead. Interestingly, it is indeed possible to program the Pi on the bare metal . Except for some parts of the GPU, everything in the hardware and software is open source and documented.
One comment made by Prof. Mycroft was that most teachers are not IT savvy and almost none are computer science degree holders. Therefore, converting ideas for lessons by one teacher into a course that can be used by every teacher requires enormous hard work.
Nearly all school IT curriculum teaches technology to the students, not the computer science discipline. Thus their fundamentals are weak when they apply for computer science undergraduate studies. Teaching some aspects of the computer science discipline (also known by some as computational thinking ) will greatly enhance the quality of the applicant pool. Plus, there are ways to do so cheaply (for example, Tim Bell's work on CS unplugged ).
For school students who are beginners to programming, Scratch and Python are ideal languages. C/C++ is very powerful and it is quite easy to absorb bad practices. Java although much better requires planning out the entire class hierarchy for even simple projects.
Prof. Mycroft is very worried in the ways the software patents are being abused to raise cost, curb understanding and teaching and to restrict advancements in algorithms and designs. For example he said, a recent trend especially in video based patents is as follows. A company patents an algorithm A which is valid for 20 years. After some 10 years, it comes out with a better algorithm which is now patented for 20 years. After 10 years the cycle repeats. In the meanwhile, all traces of the original algorithms are carefully removed so that there is a perpetual copyright protected algorithm for encoding or decoding a video format that came into being more than 20 years ago (and should therefore have lost the patent protection).
There are no plans for the Raspberry Pi organization to abandon it's charity status. In UK, it is nearly impossible to convert the output of a charity (in this case the Raspberry Pi) into a commercial concern whose profits do not benefit the charity. As he jokingly remarked, the only real alternative would be to shut down the charity and move to North Korea.