<h1>PhiloComp.net</h1>

Learning Programming for Philosophers

Site Map

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. Programming can be tremendous fun, as well as educational. And the best way to start learning to program is indeed to have fun: to experience the pleasure of intellectual creativity as you capture your imaginative ideas in computer code.

Unfortunately, until recently systems designed for beginners have tended to be very limited in their scope, giving few opportunities to explore the more exciting areas of computing, or using only a "toy" programming language which cannot be taken further. So those wishing to learn programming beyond this face the daunting hurdle of learning a "professional" system, in which the joys of creative programming may be achievable only after a great deal of relatively dull study.

The systems presented here have been developed precisely to overcome these problems, enabling even novice programmers to share in the creative excitement of programming interesting algorithms. For those wishing to learn standard "procedural" programming, there are two Turtle Graphics Programming systems, one based on the syntax of the language Pascal, and one based on a Java-like (or C-like) syntax. Both of these systems 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

Totally Valid HTML 4.01     Website Designed and Built By Jonathan Millican