Language
FIGnition is not capable of very advanced languages, so BASIC would be a reasonable choice here, but RaspberryPI has much more power and memory, so you can run full-scale languages. The suggested Python is not a bad idea, but in spite of it being fairly easy to approach, it is also very difficult to find errors in programs.
I would prefer a language designed specifically for teaching, which would have the following properties:
- An easy-to-understand model of computation. This rules out, for example, OO languages and scripting languages with strange scope rules.
- Support for case-based programming, i.e., pattern matching on structured data.
- Read/write access to a screen buffer with primitives for reading/writing rectangular areas of the screen and for drawing simple figures such as lines, circles, polygons, flood-fills etc. Much like BBC Basic. Support for scroll in four directions.
- A primitie soundtrack datatype and an interruptable queue of sound effects that would support multiple concurrent sounds. So you, for example, can start a music track, add sound effects on top of this and interrupt the music when something happens.
- Primitives for reading/writing bitmaps and sounds in many different formats (PNG, JPEG, MP3, ...).
- Automatic memory management (garbage collection).
I specifically don't want a language where a lot happens "under the hood" that is not easily understood. Scratch and similar languages that have mechanisms for animation and collision detection remove control and understanding of what actually happens.