PhiloComp.net

Programming in Turtle Graphics

Computer 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, the sophistication of many programming systems gets in the way here, with lots of new concepts and techniques required before the novice is able to apply any creative ideas.

To get over this daunting hurdle, it is helpful to start programming in a system which is intuitively "natural", and where technical complications are kept to a minimum. A wonderful way of achieving this – which has since been very widely copied – was invented by Seymour Papert with his idea of Turtle Graphics, based on the metaphor of a turtle moving around the computer screen and drawing as it goes, all under the control of instructions given by a computer program. This sort of programming, and the results it produces, are easy to understand because they are so immediately visual. But the Turtle systems provided here show that Papert's idea can go well beyond simple graphics, to provide a basis for fascinating and powerful programs that introduce fundamental concepts of software engineering and artificial intelligence. The principles behind these systems were explained in Peter Millican's 2004 research thesis Turtle: Innovative Software for the Learning of Computing Concepts, which discusses much of the relevant pedagogical literature from the period, as well as providing technical details and results from teaching experience.

The latest versions of the Turtle System software are available from the following link, together with extensive educational materials:

Oxford University Turtle System Website

These Turtle Graphics systems are designed to enable absolute beginners to learn to program very easily in a friendly graphics environment, to progress quickly onto exciting (and visually impressive) techniques such as recursion, but at the same time to introduce the sorts of programming languages and techniques that are widely used in professional systems. The recent versions are far more powerful than the older versions that were previously here, with a wider variety of data types and commands that enable the easy creation of visual designs, animations, and interactive games (or other "apps"). They also go well beyond the previous versions in terms of computing education, with a far wider range of teaching materials and greater access to the underlying "Turtle Machine".

For those who want to learn more about how computers work, this provides a unique facility to "see under the bonnet" of a computer. The system incorporates a visual compiler which translates the written program into a form of "machine code" for a virtual Turtle Machine (when the program runs, it is this compiled "machine code" that is actually executed). Since the Turtle Machine supports parameterised procedures with full recursion, this gives an opportunity to learn about a fascinating topic which is usually confined to advanced university courses, but entirely accessible (though not easy) when presented in this way.

The first versions of the Turtle System were designed to introduce programming to Joint Honours students at the University of Leeds. For legacy interest, they are available here, together with full online documentation (including comprehensive help, learning materials, and exercises), in the old Windows Help format. For the 2003 system using Pascal-style syntax, go to Turtle Pascal 7.0. For the 2004 Java-style system go to Turtle Java 8.05.