LOGO

From OLPC
Revision as of 22:52, 4 September 2006 by 64.81.145.45 (talk) (Added some notes on some of the implementations)
Jump to: navigation, search

A powerful programming language built to be easy for children to use. Logo is essentially a dialect of LISP without the parentheses that traditional LISP requires. It has been implemented in many versions including Brian Harvey's UCBLogo and the multimedia authoring toolkit called Hyperstudio.

Sometimes there is confusion between the fully fledge programming language and the graphics module that implements turtle graphics.

There are lessons to be learned in all of these systems if OLPC application developers wish to stand on the shoulders of giants rather than reinvent the wheel over and over again. It can be considered one of the Predecessors of OLPC.

To attest for the broad scope of this software around the world look at the In other languages section of the Wikipedia

Alternatives

LogoWiki 
http://www.logowiki.net

Recently developed by Alan Kay and friends. Built on top of JavaScript. Is this enough Logo?

xturtle.py
http://ada.rg16.asn-wien.ac.at/~python/xturtle/

xturtle.py is a new turtle graphics module, which could (or should?) replace the old turtle.py - if not in python's standard distribution so at least in practical work. Is this enough Logo?

Logo inside Flash (in Spanish)
http://mondragon.angeltowns.net/paradiso/LogoFlash.html

It can't save procedures form session to session but it doesn't need to be installed (which is sometimes forbidden in school computer labs). Probably saving of sessions could be implemented given a server-side piece to communicate with.

PyLogo 
http://pylogo.org/PyLogo.html

Works under Python (which, it seems, will be a given in the laptop). A fairly traditional Logo implementation, but without much of a GUI (maybe useful with xturtle) Is this enough Logo?

Scratch 
http://llk.media.mit.edu/projects/summaries/scratch.shtml

Runs under Squeak. Is this enough Logo?

UCBLogo 
http://www.cs.berkeley.edu/~bh/logo.html

Needs a better GUI (Brian Harvey is working on one, but he is working on it alone and as a hobby. He wrote the this message about it. He said he might have it ready by Fall). It can be translated (without recompilation) to languages that have their character sets in 1 byte encodings. It was been translated to Spanish (LogoES). The only essential work needed is to add support for GTK I/O which is a relatively simple task. UCBLogo was written with the constraints of 640k PCs in mind, so it's very small. (glogo is a logo interpreter, using ucblogo as the core and the GNOME libraries to provide a Graphic User interface -- if I remember correctly this actually runs ucblogo as a subprocess, and redefines the graphical commands to print output that is then interpreted by the GUI frontend; as such it is rather limited.)

aUCBLogo
http://www.physik.uni-augsburg.de/~micheler/

Needs testing, packaging and materials (maybe it's still too beta). Looks like turtle graphics but a C-like language.

MSWLogo 
http://www.softronix.com/logo.html

Needs a migration to Linux. Has lots of learning material on the Internet. Based on the UCBLogo interpreter.

FMSLogo 
http://sourceforge.net/projects/fmslogo

Needs a migration to Linux

NetLogo 
http://ccl.northwestern.edu/netlogo/

Freeware, but not open source. Requires Java. Actively developed; high quality. Like StarLogo, it emphasizes highly concurrent multi-agent (multi-turtle) programming.

Necessary features

  • Standard Language syntax (as close as possible to Brian Harveys' UCBLogo)
    • No funny parenthesis: fd(10)
    • I don't mind having to add spaces between words: 1 + 2, instead of 1+2 (as in UCBLogo)
  • Multilingual support
  • Stable and attrative GUI
  • Trigonometric functions, sqrt, exp, power, log, ln (to be able to draw at least figure 24 accurately)
  • Friendly error messages: No "systax error #342342" (No trace backs?)

Requested Features

  • Optional inputs, like UCBLogo
  • Write a basic GTK interface for UCBLogo so that it can be run as a Sugar Activity
  • ColorUnder (or "Pixel"). This is useful to solve this kind of problems.
  • SetPenColor. With RGB colors too (not just 16 basic colores)
  • Extensions to exploit Hardware features (eg. ways to read and write to the ports)
  • Extensions to interact with OS to allow scripting
  • XML-RPC Interface to enable any kind of Inter-Application-Communication

Opinions

  • LOGO could be an excellent way to introduce programming and logic. I started with it!! I think this should be an starter way, but definitely and impreved new version (with more than one "turtle" at least). Today's children can understand easily and faster everything related to computers. And could be some kind of art too if are given the propers tools. (filling closed shapes, or maybe object oriented). Could be a very nice piece of soft!! --Gandolfi

  • LOGO is certainly a fun way to learn programming and/or to just play with a computer. Many modern implementations have multiple screen turtles. Perghaps at its simplest this can be found in MSWLogo (for Windows). - FREE. Newer flavors of LOGO are StarLogo and NetLogo. They offer powerful ways of controlling large swarms of turtles and their environment - the great benefit being to encourage truly distributed ways of thinking and programming. --L Pfeffer

Vaporware?
There are more than 150 different versions of LOGO. Few of them are free, fewer are multi-lenguage, fewer have a nice GUI, none? On top of that Turtle Graphics is not really LOGO. Kturtle is just Turtle Graphics and with the current version of KTurtle not even construct 24 can be drawn accurately. Basic information on the 161 known Logos can be found Logo Atlas including their manuals. Interesting work has been done in French, Portuguese and Spanish speaking countries that are more language independant.

Both NetLogo and StarLogo need Java, no? So Logo is still vaporware for our practical purposes.

NOTE that any and all software is grist for the mill. If NetLogo would be an asset to the OLPC, then we should try to set up a project to write a subset of NetLogo in Python which is supported by OLPC.
And if two versions of LOGO are vaporware that does not mean the OLPC can't run LOGO. UCBLogo will run perfectly well on the OLPC as it stands. The only essential work in adapting UCBLogo is to make it use GTK for it's I/O.

External Links

Why Use Logo? An Overview of Logo in Education
http://www.terrapinlogo.com/show.cgi?file=educators/why.html
Logo Web Site in Spanish 
http://mondragon.angeltowns.net/paradiso/
Logo Web Site in Brazil 
http://br.geocities.com/projetologo/logo/index.html