My first exposure to programming was Logo in Junior High. I gotta download a copy and see if it is still a relevant teaching tool today. What normally pops into my head when folks ask what is a good language to learn programming with, I tend to veer towards either Python or Java.
“Logo is the name for a philosophy of education and a continually evolving family of programming languages that aid in its realization.”
– Harold Abelson Apple Logo, 1982
This statement sums up two fundamental aspects of Logo and puts them in the proper order. The Logo programming environments that have been developed over the past 28 years are rooted in constructivist educational philosophy, and are designed to support constructive learning.
Constructivism views knowledge as being created by learners in their own minds through interaction with other people and the world around them. This theory is most closely associated with Jean Piaget, the Swiss psychologist, who spent decades studying and documenting the learning processes of young children.
…The Logo Programming Language, a dialect of Lisp, was designed as a tool for learning. Its features – modularity, extensibility, interactivity, and flexibility -follow from this goal.
For most people, learning Logo is not an end in itself, and programming is always about something. Logo programming activities are in mathematics, language, music, robotics, telecommunications, and science. It is used to develop simulations, and to create multimedia presentations. Logo is designed to have a “low threshold and no ceiling”: It is accessible to novices, including young children, and also supports complex explorations and sophisticated projects by experienced users.
The most popular Logo environments have involved the Turtle, originally a robotic creature that sat on the floor and could be directed to move around by typing commands at the computer. Soon the Turtle migrated to the computer graphics screen where it is used to draw shapes, designs, and pictures.
Some turtle species can change shape to be birds, cars, planes, or whatever the designer chooses to make them. In Logo environments with many such turtles, or “sprites” as they are sometimes called, elaborate animations and games are created.