CLeogo(ID:5768/cle005)

Collaborative Leogo 


Collaborative Leogo


Related languages
Leogo => CLeogo   Extension of

References:
  • Andy Cockburn "Cleogo: Collaborative and Multi-Metaphor Programming for Kids" APCHI'98: Asia Pacific Conference Human Computer Interaction, Japan, 15-17 July, 1998, pages 187-192. IEEE Computer Society Press. view details Abstract: Cleogo is a novel groupware environment that allows several users to simultaneously develop programs through any mixture of three alternative programming metaphors: a direct manipulation language for programming by demonstration; an iconic language; and a standard text-based language.

    Cleogo is motivated by the pedagogical values of peer-learning and of collaborative problem solving, and by our desire to investigate flexible and appropriate user-interfaces for programming, particularly for youthful users.

    Through its real-time groupware facilities Cleogo provides a shared conversational artifact around which students can talk, gesture and work on programming tasks. Its three concurrently active programming metaphors allow students to choose a method of program expression that best suits their task and skill level. Critical issues in the design and motivation of Cleogo are described.

    External link: Online copy Extract: Introduction
    Introduction

    There is little doubt that computer literacy will be an essential skill in the coming millennium. Computers are embedded into many household appliances such as video recorders and cookers, and the advent of "ubiquitous computing" technologies (Weiser 1993) indicates that computing devices will continue to pervade our lives at home and at work. People lacking the ability to communicate with, or program, these devices are likely to be severely disadvantaged.

    We are investigating novel interfaces that help people, particularly children, to learn how to program computers. Our work on Cleogo, a groupware multiple-paradigm programming environment, is motivated by two mutually reinforcing philosophies. First, from a pedagogical perspective, we firmly believe in the value of peer-learning and collaborative problem solving. Collaborative problem solving prompts learners to "express beliefs in ways that serve to organize what they know and to identify gaps in their understanding" (Edelson, Pea & Gomez 1996). Cleogo's real-time groupware facilities in which each student has their own screen, keyboard and mouse allow it to serve as a "conversational prop" (Hill, Brinck, Patterson, Rohall & Wilner 1993) around which users can talk, gesture and problem solve.

    Second, we are interested in providing "appropriate" interfaces for end-user programming. We do not believe that any single programming paradigm can suit all tasks and all users. Instead, we provide three equivalent and mutually consistent programming paradigms -  programming actions expressed as input in any one of the paradigms cause corresponding output expressions in the other two paradigms. The three programming paradigms are a standard text-based language, an iconic language and a direct manipulation environment for programming by demonstration. Users are free to select whichever paradigm best suits their task or their skill level. Cleogo's groupware facilities ensure that one user's programming actions are immediately communicated to all other users.

    The structure of the paper is as follows. Section 2 reviews related work on groupware educational systems and on novel programming environments for children. Cleogo and its design rationale are described in section 3. Issues of evaluation and further work are discussed in section 4, and section 5 summarises the paper. Extract: Cleogo's three environments
    Cleogo

    Cleogo is substantially different from any of the systems reviewed in the previous section. First, it is fully group-aware, allowing distributed users to simultaneously develop programs and observe their execution. Second, because Cleogo supports three alternative paradigms for program expression, its users are free to choose whichever paradigm best suits their current task and their skill-levels. Users can fluidly intermix any of the three paradigms at any time.

    The following two sections describe first, Cleogo's three programming environments, and second, its support for collaboration.

    3.1 Multiple Programming
    Paradigms
    Cleogo is a collaborative version of the single user'system Leogo. Leogo's design and evaluation is described in Cockburn & Bryant (1996) and Cockburn & Bryant (1998). Cleogo's multiple programming paradigms are identical to those of Leogo, but they are described here for completeness.

    The three programming environments are, from left to right, the iconic programming environment, the direct manipulation environment for programming by demonstration and the text-based environment.
    […]

    Text-based programming.
    The text-based environment […] supports a standard dialect of Logo, without list processing commands. Program lines are typed into the text-entry widget at the bottom of the screen and are executed when the user clicks the "Do It" button or when they press the return key. The history of previously executed commands, which may have been expressed in any of the paradigms, is shown in a scrollable listbox. Users can re-execute lines or sequences of lines in the history list through a point and click interface.

    Iconic programming.
    The left-hand window […] provides iconic representations of all of Cleogo's language elements. Iconic mechanisms for Cleogo constructs include mechanisms for defining new procedures with parameters and sample parameter values, constructs for creating repeat loops, constructs for generating conditional statements, a "Calculator" for generating expressions, mechanisms for calling turtle motion procedures, and icons allowing the user to call user-defined procedures with parameter values. All iconic programming actions cause corresponding actions to be displayed in the text-based programming window and in the direct manipulation programming window.

    Parameter values for any procedure call are set through the slider widgets alongside the procedure icons. User-defined procedures can display an arbitrary number of parameter sliders, but to save screen real-estate procedures defined within the iconic programming environment are limited to two parameters.

    Cleogo's calculator provides an iconic-programming mechanism for entering expressions such as :size < :height * 5. Expressions are used to determine conditional statements and to give the bounds of REPEAT loops. The calculator allows local parameters to be included in expressions.

    To define a new procedure in the iconic programming environment the user types the name of the procedure and its parameters (at the top of the window). Sample values for each of the parameters can be set, allowing the user to see the effect of the procedure while it is defined: in standard Logo, the effect of a procedure can only be viewed after it has been defined and called, making procedure declaration a highly abstract process. To start recording the procedure, the user clicks the tape-reel icon (top right hand corner), which becomes animated, and a continuous whirring sound notifies the user that all actions (which may be expressed in any of the paradigms) are being encapsulated in the procedure. To finish recording the user either clicks the tape icon (in the iconic environment), types END (in the text environment), or clicks the tape-stop button in the direct-manipulation environment. A new button is created at the bottom of the window to allow the procedure to be called, and an associated slider is created for each of the procedure's parameters.

    Direct manipulation programming.

    In standard Logo, the middle window [...] would be the output region displaying the turtle motion described by a text-based program. In Cleogo, however, this region supports limited facilities for direct manipulation programming by demonstration. Users generate Logo commands by dragging different segments of the turtle with the mouse. Corresponding programming actions that produce identical turtle motion are simultaneously displayed in the iconic and text programming windows. Dragging the turtle's head causes it to rotate on the spot. Dragging its body causes straight line motion forwards or backwards, and clicking the turtle's tail toggles between Pen-up (no trail on motion) and Pendown (leaving a trail).

    The tape recording icons at the top of the window allow the user to record procedures and to undo and redo previous actions. Undo and redo are particularly valuable in educational environments as they encourage students to explore without concern for the consequences of erroneous actions. To start recording a set of actions the user clicks the tape-record icon, and all actions prior to stopping the tape (in any of the environments) are encapsulated into a procedure that is named through a pop-up dialogue box.

    The program expression facilities of the direct-manipulation environment are weaker than the other two environments. Parameters, conditions, expressions and loops are not supported, and procedures cannot be called directly from the direct-manipulation environment. For some time we considered a variety of metaphors to increase the programming functionality of the direct-manipulation environment, but rather than risk weak metaphors and interface kludges to partially solve these limitations, we decided to avoid the issue with the philosophy that certain programming tasks are not suited to direct-manipulation. Children using the system appear to have no problem with the lack of complete equivalence between the environments (Cockburn & Bryant 1996).