Design

While user-interface designs are often explained in terms of the different screen that the user sees, this isn't possible for a system within Second Life since the user's avatar is allowed free movement within the 3D virtual world (though with rather limited methods of interaction). Our design is therefore described in terms of the more important of the different tasks identified in creating the HTA, and how they are implemented either using built-in features of Second Life (e.g. the chat system), or objects provided by us within the environment.

Design Overview

The turtle will consist of one object (the “turtle system”) within Second Life that users can store within their inventory. When dragged from there into the environment, it will show as a 10m square plane to give a frame of reference to the turtle user, and in the middle of the plane will be a representation of a turtle. The only way to have the turtle leave a trail is to create simple objects (cuboids or cylinders) for each segment of the trail (resizing as needed), with a new segment started each time the turtle turns.

Distributing and acquiring the turtle

Second Life offers no way of sending an object to another user, so the possibilities for distribution are limited to offering the object for sale on the Linden Exchange, or to leaving objects in the environment and allowing users to use the standard “Take” and “Take a Copy” commands available in the radial context menus. The latter is the preferred option within a classroom environment, since it avoids the users having to deal with yet another unfamiliar part of the interface of Second Life itself. The object's permissions will need to be set appropriately to allow the receiving users to make full use of the turtle (which will likely include needing edit permissions, to allow commanding the turtle via saved scripts).

Command set

A set of commands will be created based upon those available in the original Logo language. While some of these are beyond the scope of this project, a vast majority of the commands and language will be available to use, including the basic two-dimensional movement and rotation commands, and the controls for turning the pen on and off. To extend the system to three dimensions, additional commands to roll and tilt the turtle will be needed (actual movement will still be restricted to going forward in the direct the turtle is facing). Other commands will be included to make the system easier to use: an undo command (to be used when commanding the turtle interactively) and a colour command (to allow different parts of a drawing to be distinguished more easily). Creating procedures and loops must be supported to teach procedural programming.

Issuing commands

There are two main possibilities for issuing commands to the turtle: either interactively via the Second Life chat system (and thus similar to the console used in traditional Logo systems), or by creating scripts in Linden Scripting Language (like those used to implement the behaviours of objects within the virtual world, including the behaviour of the turtle system itself) and running them. The two reflect the different possibilities identified in the HTA for task 2.3.2.2.2 Attempt Moves: the chat system works better for more experimental use (including things such as working out exactly what the roll commands do), while an editor works better for drawing more complex shapes (where the benefits of being able to edit previously written code outweigh the drawbacks of having introduced an equivalent of the common write–compile–test cycle seen in most programming environments. Both possibilities should therefore be supported.

For the chat-system-based interactive use, the commands can use traditional Logo syntax (i.e. “forward 10”, with no parentheses for arguments to procedures), and likely should since it is quicker to type. The script-editor based interface would realistically need to be based on LSL though, with its C/Java-like syntax, since implementing an interpreter for the entire Logo programming language is not plausible.

Saving work

We expect students will want/need to save their work, both to hand in (or demonstrate) for assessment, and also if they are interrupted in the middle of an exercise (e.g. by the end of a scheduled lab session) and need to return to it later. If using the Second Life chat system to control the turtle there is no great need for a special method for saving the work: the user can simply copy their commands from the chat system's log into an external text editor or email. (While it would be desirable to have the system save the log automatically, and perhaps email it to the user, the memory restrictions on LSL scripts make this infeasible.) If using the script-editing window, the system will automatically save the user to the user's inventory.

In This Section