Updated 2003-08-11 07:17:03

Based on work done in Turtle graphics the LOGO way, an interactive environment simple enough for children aged 8-10 to use once the basics of computing have been taught.

Two basic goals were in mind, one was to add variables and the other was to remove the [] notation when performing computations et al.

Eg.
    Right [expr 360 / $num] Forward 1

becomes.
    Right Div 360 num Forward 1

While the instruction set is simple enough to use for creating simple shapes, complex shapes or positioning shapes relative to other shapes still requires advanced thinking.

A new concept has been added to the Turtle. This is the Puppy. It's job is to allow diagonal lines to be drawn from grid point to grid point without having to know trigonometry.

For more information see the help file at http://qs.co.nz/Tcl/Qogo/.

It is also easy to create new instructions that take arguments and save them (without having to resort to $ notation)

Im am very interested in feed back on this application in the following areas.

  1. Is it any use in a teaching environment?
  2. What is the name for the technique of interpreting by argument stealing?. Ie is it a new concept or is it something that has been done before.
  3. If global variables were defined as procs instead of vars, would this qualify as a functional language? That is all argements are functions that either compute or return static data.
  4. How do I implement local vars? As each command is a proc, how do I access local vars, do I modify 'proc needarg' to search in the uplevel space?

In closing, I have to disagree with Alan Kay, in writing this program and teaching it to my exceptional bright 9 year old boy I have found that no matter how one goes about teaching a concept, At some point it requires understandind beyond the simple constructs that are used.

That is to say, you can teach simple ideas with simple tools, but complex ideas require complex tools and complex concepts.

--- Philip Quaife 10 Aug 2003

FW: All the download links are broken on the page, just so you know.

A Typo in the url has been corrected , the correct url is [1].

I have also found the the tclsqlite dll has been built with versioned symbols so there may be problems loading with old glibc installations. I have changed the main file Qogo.tcl to first search for any installed sqlite before using the one supplied in the distribution.

Sorry for the inconvienence.

Category Language