Logo is an educational programming language best known for allowing users to draw shapes using a robotic or graphical turtle.
First developed in 1967 by a team of researchers at Bolt, Beranek and Newman, Logo is a dialect of Lisp and was designed for teaching programming concepts to students of all ages. Logo is modular, extensible, interactive, and flexible, and thus has been used to teach not only programming, but also a variety of other educational objectives, including teaching mathematics, language development, robotics, music, and science.
While designed for and utilized primarily by children, Logo is a sophisticated computer language that can be used for both simple and complex programs. It is generally used to create images, multimedia presentations, simulations, and games; but it is possible to create highly complex applications using Logo. In fact, during the 1980s there were several attempts to establish Logo as a full-fledged programming language, implementing object-oriented programming and compilers to development stand-alone applications. However, none of these efforts gained much traction in the programming community, and Logo remained the Lisp for kids.
Logo is best known for its use of a “turtle,” which students direct with simple commands to create a variety of shapes. Originally, the turtle was a physical robot with a retractable pen. By feeding the turtle a set of commands, students could program the robot to move around a sheet of paper, drawing patterns as it went.
For example, the command “Forward 100” told the turtle to move 100 steps in the direction it was currently facing. Left 90 told the turtle to turn 90 degrees to the left. By repeating these commands four times, the turtle would draw a square:
repeat 4 [forward 100 left 90]
Unlike many traditional programming languages that relied on graphical coordinates to draw objects on the screen, turtle programming is based on the current position of the object being directed. If students want their graphical turtle to point toward the bottom of the computer screen, they must first determine where the turtle is facing at that moment, and then calculate the degree change needed to point straight down. Logo’s creator, Seymour Papert, explained the programming used for the turtle as “body-syntonic reasoning,” which essentially meant thinking from the perspective of the object being programmed. This approach requires students to remain constantly aware of the position and location of the turtle, as subsequent moves build upon the moves that came before them.
This approach also allows students to create complex geometric shapes by defining a new procedure, and then repeating that procedure from a slightly different starting angle. For example, after defining a square, the program can then direct the turtle to turn 10 degrees and draw a square 36 times. The resulting series of overlapping squares will look similar to something you might draw using a Spirograph.
repeat 36 [ repeat 4 [forward 100 left 90] left 10]
Over the years, several variations on the turtle concept have been used. The original turtle was a wired robot; later the robot went wireless. Most versions of Logo scrapped the robot altogether in favor of a graphical representation of the turtle placed on the computer screen. Some of these looked like turtles. Others, in more stripped-down versions of Logo, were simply triangles, where the point represented the direction the turtle was facing. More modern derivations of Logo utilize multiple turtles (or other types of animals), which can all be programmed to move independently and simultaneously, to create animation.
In the mid-eighties, LEGO even got involved in Logo programming. Rather than turtles, LEGO Logo allowed students to construct their own robots using motors, sensors, and, of course, LEGO blocks. Once built and connected to their computer, students could write code to direct their Lego creation, in much the same way their predecessors controlled the original turtle robots.
Logo reached its peak during the 1980s, when the personal computer was first becoming mainstream. For a time, every computer company had their own version of Logo: Apple, Texas Instrument, Atari, Commodore, and even IBM. However, as the personal computer industry became dominated by DOS-based, work-centric machines, the popularity of Logo began to wane. Through the 1990s it remained popular in schools, but since then it has increasingly been replaced by newer learning languages — some of which are easier to use and more powerful, others of which are simply flashier.
However, several versions of Logo remain, and they continue to be highly successful tools for teaching children the basic principles of programming and code. Some current versions include:
UCBLogo: This graphically-refined version of Logo is often considered the current standard. It’s inclusion of recursion makes it ideal for teaching both beginning and advanced programming concepts.
MicroWorlds Logo: This commercial version of Logo adds several additional features, including a drawing tool, musical component, and import capabilities.
Scratch: This is not actually version of Logo, but it is a similar visual environment that allows students to build programs by connecting graphical blocks together, rather than through coding. Despite its simplicity, Scratch can be used to create games, interactive stories, and animations. Check out of Scratch Resource page on it.
Logo is a fairly simple programming language, so it shouldn’t be hard to pick up. Here are some tutorials to get you going.
- Brown University Logo Tutorial: a simple one page tutorial that will provide you with all the basics.
- Turtle Academy: a far more extensive resource, including its own interpreter. Try running one of our simple programs from above!
- Logo for Kids: An Introduction (pdf): this is Bob DuCharme’s ebook on Logo.
Though Logo will probably never again see the success it had in the last century, it remains a popular tool in classrooms and a highly-effective way to teach programming concepts to students of all ages. While the original turtle graphics were fairly simple, modern implementations are incredibly complex, allowing programmers to direct hundreds and even thousands of “turtles” at the same time, create rules for interactions between the turtles, and much more.
This highly versatile language provides hands-on, project based learning in not just computer science, but math, language development, creativity, robotics, music, art, and much more. Long after its peak, Logo continues to influence educational software and apps, and will do so for many years to come.