LOGO as a Programming Language for Educational Applications

by Jim Andris

The LOGO language was developed in 1967 by the Logo Group at MIT under the direction of Seymour Pappert, author of the internationally acclaimed book Mindstorms: Children, Computers, and Powerful Ideas. It was the first language specifically designed to enable children to learn by discovery. According to Billstein, Libeskind and Lott in Logo: Programming and Problem Solving, "Logo is intended to provide an environment in which learners progress through the developmental stages of learning by exploration." (p. 1)

A Language for Integrated, Experimental Learning

Originally designed to conform to the child developmental theories of Jean Piaget, it is the theories of Jerome Bruner, a great promoter of Piagetian theory, which most clearly frame the significance of Logo as a tool £or education. In Studies in Cognitive Growth Bruner and others define three modes of representing knowledge: enactive, iconic, and symbolic. In enactive representation the significance of a stimulus is in the motor reaction it produces. Iconic representation is representing external objects with imaaes, either internal or external. Finally, symbolic representation is linguistic in nature. Each of these three modes of representation has its own characteristics. Children start out with primarily the enactive mode and progress through the dominance of the iconic mode to the modal Western adult form of symbolic representation.

One of the two major capabilities which were designed into Logo is the so-called turtle graphics. A "turtle" composed of a triangle or a turtle symbol may be controlled by commands from the keyboard or from within a Logo program. For example, the command FORWARD 50 RIGHT 90 will cause the turtle to move forward 50 units and turn right 90 degrees. Complex programs for the turtle to follow are built up from a small number of primitives.

Relating turtle graphics back to Bruner's forms of representation, it can be seen why Logo is such a powerful tool for educators. The concept of a geometric figure, say a square, can be translated into enactive mode. The child may be instructed to walk forward 10 paces, turn right, walk forward 10 more paces, and so forth, until a square has been described on the floor. A connection can be made between these movements and the symbols FD 10 RT 90 FD 10 in this way, giving a concrete interpretation of a symbolic language. Finally, what the child sees as these commands are executed, is a visual image of a turtle drawing a square on the monitor--the iconic mode.

A more contemporary approach to holistic education emphasizes "whole-brain learning". Most of us are now familiar with the concepts of "right-brained" and "left-brained" thinking. The right brain tends to specialize in schematic thinking and detailed visual imagery, the left brain, in categorical and linguistic thinking. Symbols such as FD 50 RT 90 are processed by the left brain (or if they are processed by the right brain, are processed as pictures rather than symbols). Images such as a square drawn on the monitor screen are processed by the right brain. Logo turtle graphics makes it possible to have these two modes working in concert, or if a learner has a preferred modality, Logo allows that modality to dominate.

In fact, one might even think of Logo as a language which literally allows the left brain to communicate with the right brain. The learner inputs a symbolic string at the keyboard, and observes a moving turtle tracing geometric forms on a screen. This is a perfect setup for experimental learning. Add to this the fact that children love to draw, and we have a formula for learning by doing. In order to draw a certain geometric figure, the child can experiment with different strings of symbols until the desired result is achieved. With just a little prompting from the teacher, the child is on his or her own schedule of learning.

A Language for Learning Problem Solving Skills

The advantages of turtle graphics for integrated learning are almost immediately obvious to anyone observing a child use Logo. At a somewhat more subtle level, Logo is tailor-made to encourage a problem solving approach to problems. However, we need to carefully deliniate the meaning of this assertion, for there are many definitions and levels of problem solving in education.

If we look carefully at human activity, we can see that our problem solving activity grows out of our creativity. That is, we are continually conceiving of goals or broader aims that we desire, but which we have not achieved. Out of our attempts at goal-achievement grow our problem-solving endeavours. Those of us who are systematic in our goal achievement recognize the importance of a self-conscious approach to problems, i.e. the importance of being able to document the steps in our approaches to solving problems. In other words, we have a procedural outlook: we attempt to identify sets of steps which constitute solutions to our problems. On the other hand, it is important not to become so caught up in methodology that we block the generation of novel solutions to problems.

The Logo language is procedural in just this desired sense. The learner can experiment with several lists of Logo elementary commands, or primitives. When from this experimentation emerges a list of commands that solves the problem at hand (say to draw a small circle), that list of commands can be given a name. This is done in Logo by typing the word "TO" followed by the name of the procedure, followed by the list of commands, followed by the word "END". From that point on, it is no longer necessary to type in the list of commands. Simply typing the name of the procedure will execute the entire list of commands. On the other hand, used properly, Logo can illustrate that there is nothing sacred about a particular list of commands, and alternative procedures for solving the same problem can be developed and given names, e.g. CIRCLEl and CIRCLE2.

At still a deeper level of the Logo language (beyond its procedurality), we can discern still other ways in which it significantly reflects the characteristics of human problem solving. Human problem solving is recursive, general, and hierarchical. The Logo language reflects all of these characteristics, some better than others. Perhaps if we trace the solution of a problem through its phases of development we can illustrate these characteristics of human problem solving as they manifest themselves in Loao.

Recursion may be defined as repetition. For example the procedure

TO SQUARE
FD 50 RT 90 FD 50 RT 90 FD 50 RT 90 FD 50 RT 90
END

will solve the problem of finding a way to draw a square in Logo. On the other hand, the procedure

TO SQUARE
REPEAT 4[RT 90 FD 50]
END

solves the same problem without writing out the directions for drawing each side of the square. Instead, it simply says "draw a side, four times." Incidentally, this is called finite recursion, because we are counting to a finite number. The procedure

TO SQUARE
RT 90 FD 50
SQUARE
END

solves the same problem with an infinite recursion. (P.S.: CTRL-S to stop!) Recursion is an extremely important characteristic of human problem solving and it is reflected in nearly all computer languages.

Another important characteristic of human problem solving is its generality. We would prefer to solve a problem for a whole set of cases rather than have to solve the problem separately for each case in the set. Translated into our square problem, we might ask, why write a procedure for drawing a square of fixed size, when one can be written for drawing a square of any size? The procedure

TO SQUARE :N
REPEAT 4[FD :N RT 90]
END

solves the problem of drawing a square of size N. Perhaps and even more amazing demonstration of the power of recursion and generality combined is based on the fact that the exterior angles of a regular polygon are given by the formula 360/s, where s is the number of sides of the polygon. The following procedure draws a regular polygon of side, n, and number of sides, s.

TO POLY :S :N
REPEAT :S[FD :N RT 360/:S]
END

Hierarchicality is perhaps the most significant characteristic of human problem solving. This is the quality of analyzing a complex task down into subtasks, and those subtasks into still other subtasks. Every complex human procedure from writing or playing a symphony to balancing a checkbook displays hierarchicality. Logo is outstanding in its ability to reflect this important quality in its procedure. The key here is the fact that if one writes the name of procedure A as a step in procedure B, procedure A is automatically executed in proper sequence. The following procedure for drawing a house demonstrates hierarchicality, in that it is broken down into a square and a triangle, which are accomplished with the procedure POLY.

TO HOUSE :N
POLY 4 :N
FD :N
RT 30
POLY 3 :N
END