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, which discusses much of the relevant pedagogical literature, as well as providing technical details and results from teaching experience:

Turtle: Innovative Software for the Learning of Computing Concepts

The Turtle Graphics systems provided here 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 learn the sorts of programming languages that are widely used in professional systems.

The latest version, Turtle System 10 (released in 2013) is by far the most powerful, enabling the creation of visual designs, animations, and interactive games (or other "apps") that can be run within the system itself or mounted on your own web pages. Further work is under way to enable them to be run independently on mobile devices. Version 10 also goes well beyond the previous versions in terms of programming education, with a wider variety of data types 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 new Turtle System currently uses a Pascal-style programming syntax (as used in systems such as Delphi, Modula and Oberon). But it will shortly be available in a form which allows the choice between a Pascal and Java-style syntax (as used also in systems such as C and C++). Future ideas include a Python-style syntax, since one educational theme of these systems is to show how programming skills are generic rather than language-specific: once you have learned to program with a good understanding of the concepts, it is generally easy to move to a different language.

A Java-style system, dating from 2004, is available at Turtle Java 8.05. For the older 2003 Pascal-style system, go to Turtle Pascal 7.0. Both of these are provided with full online documentation (including comprehensive help, learning materials, and exercises), in the old Windows Help format.

Seymour Papert

Seymour Papert

Invented the idea of Turtle Graphics


Snapshot from programmed video

Snapshot from video made by Turtle Graphics