Programming for Philosophers

The links between Philosophy and Computing are both broad and deep. But the two disciplines are rarely taught together, so there may be many aspiring philosophers who have never had the chance to learn programming for themselves. Listed here are a number of systems designed to enable beginners to start with programming, some of which are designed for children, and some for older users who may be keen to move on relatively quickly to "professional" systems.

For those wishing to learn standard "procedural" programming, there are Turtle Graphics systems, providing introductions to programming in the syntax of BASIC, Java, Pascal, and Python. All of these provide an introduction not only to programming, but also to How Computers Work: compilation, machine-code, and what goes on "under the bonnet" of a dynamic programming language.

Those wishing to gain an understanding of functional programming are encouraged to explore Mike Spivey's GeomLab system, based on the theory of Functional Geometry developed by Peter Henderson. This beautifully exhibits the power and elegance of recursive functional programming, by generating "Escher-style" pictures to your own design.

The Alice system from Carnegie Mellon University provides a point-and-click environment for designing 3-D animations, which makes such design very straightforward whilst also enabling users to see the generated (Java-type) code, giving a useful introduction to object-oriented programming. Animations – which can be quite sophisticated – can be mounted on the Web for sharing.

Greenfoot is "a combination between a framework for creating two-dimensional grid assignments in Java and an integrated development environment (class browser, editor, compiler, execution, etc.) suitable for novice programmers. While greenfoot supports the full Java language, it is especially useful for programming exercises that have a visual element. In greenfoot object visualisation and object interaction are the key elements."

Gamemaker "allows you to make exciting computer games, without the need to write a single line of code. Using easy to learn drag-and-drop actions, you can create professional looking games within very little time. You can make games with backgrounds, animated graphics, music and sound effects, and even 3D games! And when you've become more experienced, there is a built-in programming language, which gives you the full flexibility of creating games with Game Maker."

The Computing At School initiative is dedicated to promoting the teaching of real Computing (programming rather than IT Skills) in British schools. It provides various resources, including an excellent document giving Sample Programming Activities for Schoolchildren in Key Stage 3, containing projects in Alice, Greenfoot and Gamemaker designed (and integrated with the Key Stage requirements) by Emma Wright, Head of ICT & Computer Science, Harvey Grammar School, Folkestone, Kent.

The Raspberry Pi Foundation is a charity devoted to promoting the study of computer science and related topics, especially at school level, and to put the fun back into learning computing. It is developing a credit-card sized computer that will cost around $25, based on an ARM chip and open source software.

Scratch is a system designed at MIT to enable young people to learn about programming while designing interactive entertainments: "Scratch is a new programming language that makes it easy to create your own interactive stories, animations, games, music, and art -- and share your creations on the web".

Also of interest here is How to Design Programs, a free web-based book and accompanying software to promote the teaching of Scheme as part of a "Liberal Arts" education.

The CS4FN (Computer Science for Fun) magazine contains many relevant articles and links to other resources.

Snapshot from programmed video

Snapshot from video made by Turtle Graphics

Escher-style fish pattern

Escher-style pattern produced by Mike Spivey's GeomLab