Loggerhead

From OLPC
Revision as of 03:44, 19 January 2007 by Pengo (talk | contribs)
Jump to navigation Jump to search
A simple program in Loggerhead. Basic view for bashing buttons with "log" (program listing) automatically generated

Loggerhead is a mockup idea for a turtle graphics graphical logo-like programming environment for OLPC.

I'd like to develop a Sierra-compliant Turtle Graphics activity for the OLPC laptop called "Loggerhead" cause that's the name of a turtle that sounds a bit like "Logo" but isn't, and they have them at the Sydney aquarium. The idea is to make a turtle graphics package that young kids won't suck at when they first use it, and they can eventually become "kick ass" with. The design is inspired by that music program on OLPC that lets you just hit instruments and keys to begin with. Likewise, in a turtle graphics program, you should be able to just click a "forwards" button and the turtle will move forwards until you let go, likewise for rotate left, etc. The trick then is to get the child to discover programming. So as these actions are being done, a log is being made on the left side of the screen, and these commands can then be re-run and manipulated and the child dives into the world of code, without having to actually write any to begin with. If I had an OLPC I could work on this :) It could be done in python or in squeak. This is something i'd be passionate about. The alternative Logo implementations are way too complex as starting points, and few kids would get past the "sucks" stage. That's my paragraph.. Then there's some screen shots.. This has all been mocked up today.

More advanced stuff

Inputting a variable at runtime. More abstract features are available, to encourage understanding of more complex programming concepts
With lots of "expert" stuff enabled

features will be available, to encourage understanding of more complex programming concepts:

  • when setting a literal value (eg left "90 degrees") there might be a slider as well as a big Question Mark icon, which, when clicked, means the value will be requested each time the turtle-program is run. This variable will be given its own icon (a star, say) and it can be

used copied to elsewhere in the program. This is also the start of writing subroutines.

  • in the program listing, when multiple commands are selected (eg "left 90, forward 10") , a menu allowing the commands to be repeated x times, or to be conditionally run appears, so the child can discover this themselves.

As "difficulty levels", kids can enable features:

[X] multiple turtles
[_] spherical coordinate space
[_] turtle speed control
[_] set keyframes (for animation)
[_] plain text program listing

enable extra turtle methods:

[X] set position (Cartesian coordinates instead of left/right/forward),
[X] line thickness, dashed line, etc
[_] "does this movement cross a line"
[_] event triggered methods (e.g. friend appears on network)
[_] draw text

See also