Open Sauce, April 2005
For an article with so many links, I was surprised in a good way by just how many of them are still active and up to date (more or less) after more than five years. Great stuff if you’re interested in learning to program–or learning to teach young people how to program.
It’s more than just turtles these days with heavy-duty Logo
If French is the language of love, Logo is the language of learning–and not just learning to program, either. Elegant and simple, Logo is endlessly extensible and a powerful tool for study at almost any educational level, from elementary to post-doctoral.
If you think Logo is kid stuff, think again. Seymour Papert, mathematician, educator and co-founder of the MIT Artificial Intelligence Laboratory, designed Logo as a programming language easy enough for kids to pick up fast, but sufficiently robust to serve as a platform for computing projects of almost any complexity.
Programming in Logo means using the “turtle”: an entity that lives in the Logo environment and responds to commands you give it, either interactively at a command line, or through interpreted programs. Tell the turtle to go forward 50 units onscreen with the command “fd 50”; turn to the right with the command “rt 90”. Real programming comes quickly with loops (“repeat”), conditionals (“if”), and procedures.
Logo works well for teaching geometry: create a line by telling the turtle to draw as it moves forward; create a square by telling it, four times, to draw a line and turn 90 degrees. Robotics is just as well-suited to Logo: just turn the virtual turtle into a real robot. Research on “programmable bricks” at MIT during the 1990s produced the Lego Mindstorms robotics kit, powered by Logo.
My own first Logo was from Brian Harvey, creator of Berkeley Logo (a.k.a. UCBLogo, see Brian’s page), bundled with the book The Great Logo Adventure: Discovering Logo on and Off the Computer by Jim Muller.
You can find a downloadable version of Jim’s book if you dig into the Softronix website, as well as other Logo-related links.
Or you can try Brian’s three-volume The Great Logo Adventure: Discovering Logo on and Off the Computer for a rigorous introduction to serious Logo programming, at the Berkeley Logo site.
SUSE Linux (my [former] favorite) often chokes when compiling apps, like Berkeley Logo, from source, so I sought out a new Logo experience.
Only two–NetLogo, from Uri Wilensky, Center for Connected Learning and Computer-Based Modeling, Northwestern University and StarLogo, from the MIT Media Lab–met all my needs. Number 1: my Logo must run under Linux. Other Number 1: my Logo be free. And my final Number 1: an active project with a community of users and developers.
Where UCBLogo offers a basic interface to control and watch the turtle, NetLogo and StarLogo both make it trivial to create and control many turtles, making it dead simple to simulate large population behaviors. Both come with Logo code for modeling bird flocking, prey/predator population variations, gas molecule diffusion, creating fractal images, demonstrating mathematical and statistical theorems and much more.
The biggest hurdle: understanding that to program turtles, screen “patches”, and overall (“observer”) behaviors, you issue those commands in different modes. But once sorted out, it becomes almost trivial to tweak programs by adding, changing, or removing behaviors, er, I mean procedures. As Java apps, NetLogo and StarLogo both run everywhere, so choice is as much a matter of taste as function. I’ll continue using both as I climb the programming learning curve.
I could have bought a commercial Logo–and there are some very impressive looking commercial implementations available, mostly for Windows, sadly–but that’s not my way. Whenever I buy software, I read the box or other promotional material, and I buy into the product: it’s going to change my life, so I’m happy to spend my hard-earned bucks for it.
But after the install comes the disappointment. My computer runs no faster, nor can it do much more than before. I still must study the new program to make it work; the license precludes returning it if I’m unsatisfied, or selling it to someone else for whom it may work better. And the revision that solves all my problems is invariably due just six months hence.
Free software never disappoints. If it helps at all, I’m happy. I’ve gotten more than my money’s worth, and I never suffer buyer’s remorse. Perhaps a commercial product could do so much more, but it’s still a gamble. I’d rather go for the sure thing.
Free Logo Implementations
- Elica is a Windows-only, 3D Logo; apparently free but I couldn’t verify. It looks extremely cool and capable of doing some very excellent things like gaming, all in a format accessible to kids.
- StarLogo is an excellent version of Logo from MIT capable of programming multiple turtles as well as “patches” (bits of space within which the turtles act) that allow the turtles to interact with their environment. Released under a “free for research and education” license.
- NetLogo is another excellent research version of Logo, from Uri Wilensky, Center for Connected Learning and Computer-Based Modeling at Northwestern University; “free for research and education” license.
- MSW Logo is a Windows version of Brian Harvey’s UCBLogo.
- UCBLogo (a.k.a. Berkeley Logo) Brian Harvey, a lecturer at University of California, Berkeley, wrote and maintains UCBLogo; runs under Mac, Windows and *NIX.
- Logo++ is a simple, free (GNU license) version of Logo for Windows/X11.
- XLogo is a Mac OSX version of Logo released under BSD license.
- rLogo is Logo for the web; sparsely supported (?) and released under the GNU license.