By Tim Slavin / Language of the Month / August 2014 Issue
Image by JD Hancock on Flickr
This language, developed in the 1960s, exists solely to introduce children to basic programming concepts and teach programming.
In the 1960s, Seymour Papert, a mathematician who had worked with Jean Piaget, the Swiss psychologist, moved to the United States where he do-founded the MIT Artificial Intelligence Laboratory with Marvin Minsky. Papert worked with a team from Bolt, Beranek and Newman, led by Wally Feurzeig. Together Feurzeig and Papert created the first version of LOGO in 1967.
The LOGO programming language is designed to help kids learn programming hands on. Instead of memorizing theory or using complicated programming structures, LOGO users learn programming basics with simple words and directions. An object, usually a turtle, might be directed to move forward 20 steps.
The language is modular, extensible, interactive, and flexible. It is designed to have a low threshold and no ceiling, easy for kids to use as it allows experienced programmers to perform complex explorations and build sophisticated projects.
Originally the LOGO language controlled a small robot turtle tethered to a computer and, in some cases, with a pen attached to draw lines which made shapes and patterns.
There are 197 variations of the LOGO language. The UCBLOGO version from the University of California, Berkeley is the most robust.
What Makes the LOGO Programming Language Special?
Probably the most interesting and unusual aspect of LOGO has to do with its origins. Most programming languages begin with a mathematical or mechanical problem to solve.
While LOGO began with the Lisp programming language and ideas about artificial intelligence, the goals of the language reflect the thinking of Jean Piaget, the Swiss psychologist. Piaget believed children learn best working in a constructive way, by building things. LOGO is a language that makes it easy for children to learn programming by directing an object to perform a series of tasks.
LOGO is specifically designed to engage kids in the four C's: Critical thinking and problem solving, Communication, Collaboration, and Creativity and innovation. LOGO lets kids use computers to actively engage the world as designers and builders.
The LOGO programming language is a set of commands to be performed by an object, usually a turtle. All commands are relative to the object. So LEFT 90 tells a turtle to turn left 90 degrees. The same command in a block or modular language like Scratch or Alice would be slightly more complicated, finding then adding a block then configuring the block to turn the object left 90 degrees. A script language would be even more complicated, for example, taking into account the object, a range of directions, a range of degrees the object could turn, and possibly other parts of the environment.
In addition to its simple commands, you can include sets of commands inside other commands. This allows kids to evolve into more complex language structures, as well as learn complex planning skills to create shapes and patterns.
How is LOGO Used?
The LOGO programming language is everywhere. The language is taught in schools, of course. But LOGO also is in many phone and table applications, for example, Move the Turtle. There's a board game, Robot Turtles, which uses the basics of LOGO in a fun card game kids and parents can play. LEGO Mindstorms also is based on LOGO. And the Turtle Academy is an online site in multiple languages to help kids learn LOGO with a web browser. There are many more examples.
LOGO also appears to be used to explore and solve problems in graphics and physics. In other words, LOGO is a great language for kids, teachers, parents, and anyone interested in programming.
LOGO Programming Language
http://el.media.mit.edu/logo-foundation/index.html
http://el.media.mit.edu/logo-foundation/logo/index.html
http://el.media.mit.edu/logo-foundation/resources/links.html
http://el.media.mit.edu/logo-foundation/resources/discussion.html
https://en.wikipedia.org/wiki/LOGO_%28programming_language%29
20 Things to Do With a Computer
A brilliant essay about using computers as tools to teach kids how to do things, not manipulate computers. (thanks @HackerJimbo for the suggestion!)
http://dspace.mit.edu/handle/1721.1/5836
UCBLOGO
https://en.wikipedia.org/wiki/UCBLOGO
http://www.cs.berkeley.edu/~bh/logo.html
LOGO Artificial Intelligence Memos
Written by Seymour Papert in the 1960s and 1970s, they give a sense of the ideas that drove the creation of LOGO.
http://logothings.wikispaces.com/Readings
LOGO and LEGO Mindstorms
http://www.media.mit.edu/sponsorship/getting-value/collaborations/mindstorms
Turtle Academy
Learn LOGO in English, German, Spanish, Dutch, Portuguese, Russian, Hebrew, and Chinese.
http://turtleacademy.com/
MicroWorlds LOGO
http://en.wikipedia.org/wiki/MicroWorlds
http://www.microworlds.com/
Move the Turtle
http://movetheturtle.com/
http://itunes.apple.com/us/app/move-turtle.-programming-for/id509013878?ls=1&mt=8
Robot Turtles (and Robot Turtles Adventure Quest Expansion Pack)
http://www.robotturtles.com/
http://www.thinkfun.com/robotturtles/adventure/
http://www.thinkfun.com/robotturtles
https://www.kickstarter.com/projects/danshapiro/robot-turtles-the-board-game-for-little-programmer
http://duxter.com/robotturtles
FMSLOGO
http://fmslogo.sourceforge.net/
Computer Science LOGO Style
A free online resource using LOGO to teach computer science.
http://www.cs.berkeley.edu/~bh/v1-toc2.html
Krissy Venosdale and Skype in the classroom
Here's an enthusiastic teacher using technology to help her students discover how the world is an awesome place to explore.
SketchUp for Beginners
It's not hard to create simple three-dimensional objects and buildings with SketchUp software. Here's a simple introduction with lots of links to learn more.
Computer Science Curriculum Resources
Resources to learn about national standards for computer science and how to implement them in the classroom.
The Principle of Least Astonishment sounds very Monty Python. But it is a key concept in software and interface design.
Music from Garbage
People do amazing things with technology, in this case, creating music from tossed out computer hard drives, circuit boards, and other electronic garbage.
All programming languages have a way to find Elvis, but it can be difficult to learn how.
3D Software Tools and Resources
3D software is a fun way to engage people interested in computing but not necessarily coding or computer science.
Many languages have been created for younger kids and to help teachers in a classroom setting.
If you want to build a ship, don't drum up people together to collect wood and don't assign them tasks and work, but rather teach them to long for the endless immensity of the sea.
The Traveling Salesman Problem
Not only a funny phrase, it is a math and computer science problem that helps solve real world problems.