A large number of applications require computer programming expertise. Students that are able to handle complicated mathematical and scientific concepts often lack basic programming abilities. This is especially true in some parts of Europe, where programmers are sort after for a range of different projects.
A full range of computer programming and interfacing skills can be developed by implementing projects that couple together several concepts for a given goal. This might range from robotics to running a web server on a private Intranet. Such experimentation is not normally permitted with school computers or general purpose home computers. It can also be costly to purchase expansion boards, required for additional input/output (I/O) functionality.
The Raspberry Pi computer provides a platform for computer science experimentation projects. It can be installed with Linux and has several I/O connections that be used to directly interface with electronics or couple to additional components via cheap driver chips.
I have run a series of events with colleagues to encourage experimentation with computers and a greater understanding of computer programming: