TinyLogo

© 1999 Timothy Lipetz

Main Page

Topics on this page: What is TinyLogo? What is Logo? What is TinyLogo Good For? What are some limits of TinyLogo? The Legal Stuff, Where to Learn More about Logo, Installing TinyLogo, Program History, Why I Wrote TinyLogo, How to Contact Me

See also: TinyLogo Main, Beginners Guide, Advanced Information, Built-in Procedures, Samples

What is TinyLogo?

TinyLogo is a programming language and program execution environment for the Palm handheld computer. It is especially friendly to beginning programmers or people who just want to get a simple idea of what programming is all about. Once TinyLogo is installed, programs can be written and run entirely on the Palm computer. Also, since TinyLogo programs can be saved and loaded from memos, they can be exchanged with anyone else running TinyLogo. TinyLogo has over 90 built-in procedures and most importantly, allows you to extend the language by writing your own procedures. Within a very short time, new programmers can write their own procedures to create computer graphics, play music,manipulate words and sentences, and calculate numbers.

What is Logo?

TinyLogo is a dialect of the Logo programming language. Logo was developed at MIT by Seymour Papert and others to support their theory that the best computer education is in the experimentation that happens when "the student programs the computer, rather than the computer programming the student!" Logo is designed to be very easy to learn. It provides immediate feedback about the results of each programming experiment. And thus the student can progress quite far with trial and error. This is not to say that there should be no structure to the education, but rather that a few simple nudges by the instructor are often all it takes for the student to boldly explore new realms.

What is TinyLogo Good For?

As mentioned above, TinyLogo is a good introduction to programming. But the very reason it is such a good introduction is that you spend more time playing with the language than studying it.

While full Logo implementations support many more features than TinyLogo, the feature set chosen for TinyLogo includes all the features commonly used by beginning Logo programmers. Some examples of what you can do with TinyLogo…

What are some limits of TinyLogo?

TinyLogo does lack some advanced Logo features. Also TinyLogo has both memory and speed limitations. Thus, TinyLogo would not be the language of choice for writing a production Palm program. For example, you certainly wouldn’t choose it to write a DateBook replacement.

The Legal Stuff

TinyLogo is Freeware. This means I retain the copyright, but allow copies of the program to be freely distributed provided they are unmodified and are not used for commercial purposes. This TinyLogoMain.htm file and the locally linked image and htm files must accompany all distributions. If you wish to include TinyLogo in a collection of shareware/freeware, please contact me with the particulars.

I reserve all rights to TinyLogo and allow its distribution and use only under the above conditions. I make no warrantees about suitability of the program for any use, nor do I assume any responsibility for any consequences of its use.

Okay, we got that out of the way, now let's have some fun.

Where to Learn More about Logo

After you have completed the Beginners Guide, there is lots more information about Logo in books and on the Internet. After all, the language is over thirty years old, which is pretty mature in "computer time."

These links should get you started.

The Logo Foundation

EUROLOGO

ECAWA's Logo Special Interest Group

Logo: A Turtle for the Teacher

comp.lang.logo Internet news group.

Installing TinyLogo

TinyLogo runs under PocketC and requires Palm OS 3.0 or greater.

Depending on what you already have installed, and whether or not you want the documentation installed, you will need to install from one to five files.

You must install TinyLogo.prc.

The samples program, TinyLogoSamples.prc, is highly recommended.

The following documentation files may also be installed. If you have a Doc reader use TinyLogo_Procedures.PDB. If you do not have a Doc reader, you can still have on board documentation by copying the contents of TinyLogoProcedures.txt to a new memo in the Palm Desktop - it will load as a memo on your next HotSync.

TinyLogo requires PocketC from http://www.orbworks.com. You must have version 3.10 or later. If you do not already have a suitable version of PocketC installed, you will need to install the runtime version of PocketC, which is included in this package. It does not hurt to install it over an existing copy.

TinyLogo also requires the MathLib. If you do not already have a suitable version of MathLib installed, you will need to install the version included in this package. It does not hurt to install it over an existing copy.

In summary:

Program History

Versions 0.1alpha to 0.9alpha - unreleased versions 3/99 through 7/99.

Version 1.0 - 7/99 - Basic set of 78 procedures, Interactive and Turtle modes

Version 1.1 - 12/99

Why I Wrote TinyLogo

Okay, confession time. I really didn't set out to write a Logo implementation. It began as I was in a boring meeting and doodling. I was drawing a looping pattern that had intrigued me since school days (see Samples: Loops). Anyhow, I wondered about a good way to draw it on my Palm Pilot, and I was reminded of the many intricate patterns my kids produced running TI Logo on our old Texas Instruments TI 99/4a computer.

At first, I thought I would just write a simple program that borrowed a few Turtle Graphics features from Logo. However, at each stage I kept running across Logo features that I just had to include. Of course, I had to have user-defined procedures and naturally recursion and it would be pretty hard to avoid arithmetic, logic, or program flow commands. This went on for hundreds of hours of development - a bit more than I had expected in the original doodling thought!

On reflection, I guess this will brand me as a Hacker with a Big H!!! That is, a "hacker" (small "h") programs a computer to do his doodling, but a "Hacker" (big "H") implements the programming language on the computer first! :-}

In the end, I did say no to some things (such as Dynamic Binding, Defines, Nested Scoping). I think that my wrestling with what to include or not has resulted in a Logo implementation that is both small (if you can call 90 built-ins small) and also rich enough to give beginners a complete programming experience.

Perhaps, that makes TinyLogo a "Toy" language. That's fine with me. I think we truly learn more from a good toy than from a pile of dry textbooks.

How to Contact Me

Email me at: lipetz@netset.com

Although TinyLogo is freeware, I do like to know that it is being used and appreciated. Share your impressions with me. Maybe send a few TinyLogo procedures of your own. Oh, and yes, send me your bug reports too.

See also: TinyLogo Main, Beginners Guide, Advanced Information, Built-in Procedures, Samples