How Powerful Is Icicle
Total Page:16
File Type:pdf, Size:1020Kb
The Icicle Programming Environment for Children Robert Joseph Sheehan A thesis submitted in partial fulfilment of the requirements for the degree of Doctor of Philosophy in Computer Science, The University of Auckland, 2005 ABSTRACT This thesis describes the design, development and testing of a programming environment for children. Several different approaches were employed to produce guidelines to aid in the design of the environment: a brief examination of the theories of child development, the production of a simple first programming environment, interviews of children to determine what they understood about computer programming and the programs they wanted to produce, and the evaluation of previous programming environments for children. The resulting guidelines ranged from suggestions as to the age range of children the environment should be aimed at, through to the necessity of making the environment fun. Icicle (Interaction computing in a constructionist learning environment), the programming environment that was produced, includes several novel approaches to producing and representing programs. Changes in state, or interactions as they are referred to in Icicle, are used as the basis for computation. Instructions are represented by animations, and parallelism is provided in a very simple way. The system was tested with twelve, nine and ten-year-old children. They found Icicle to be usable and very enjoyable. They produced many programs using Icicle and believed that it enabled them to produce any type of program that they desired. The real limits of Icicle are also discussed. i To Stephanie. ii ACKNOWLEDGEMENTS I wish to thank my supervisors and friends, Dr Alan Creak and Dr Jennifer Lennon, for staying around to see this finished. I also wish to thank the pupils and staff of Marist Primary School, Mt Albert, for allowing me to come into the school and disrupt things, not just for one study, but for two. The children were delightful and the staff were always friendly and helpful. iii TABLE OF CONTENTS Abstract..................................................................................................................................................i Acknowledgements ...........................................................................................................................iii Table of Contents ..............................................................................................................................iv List of Tables ......................................................................................................................................vi List of Figures.....................................................................................................................................vi Introduction and Motivation............................................................................................................1 Motivation..............................................................................................................................1 Children using computers...................................................................................................2 Why children shouldn’t use computers............................................................................3 The proper place of computers .........................................................................................5 The Task and the Result......................................................................................................6 I. Background for a Children’s Programming Environment.....................................................7 Programming.........................................................................................................................7 Developmental theory ...................................................................................................... 14 Summary.............................................................................................................................. 19 II. Logo and the Design of ICE ................................................................................................... 20 Logo...................................................................................................................................... 20 A better approach to turtle-graphics.............................................................................. 22 ICE ....................................................................................................................................... 24 Lessons from ICE ............................................................................................................. 34 III. What do children think computer programming is? ......................................................... 36 Background......................................................................................................................... 37 The study............................................................................................................................. 37 Designing programming environments for children.................................................. 49 Summary.............................................................................................................................. 53 IV. The Themes and design of Icicle........................................................................................... 54 Guidelines and lessons...................................................................................................... 54 Stagecast Creator................................................................................................................ 55 The Themes ........................................................................................................................ 59 Lively concrete objects ..................................................................................................... 60 Interaction computing ...................................................................................................... 64 Closeness of mapping....................................................................................................... 70 Ease of Parallelism.............................................................................................................73 Flexibility ............................................................................................................................. 75 The Icicle instructions and interactions ........................................................................ 77 Completeness of instruction set ..................................................................................... 81 Sets of rules......................................................................................................................... 82 iv Things lost from ICE ........................................................................................................82 V. The User-Level Description of Icicle .....................................................................................83 Construction of Icicle performers ..................................................................................83 Adding performers to the world .....................................................................................86 Defining rules in Icicle ......................................................................................................87 The Icicle instructions and editors..................................................................................97 Reducing the number of rules .......................................................................................114 The Rules panel ................................................................................................................116 VI. Implementations......................................................................................................................119 Java ......................................................................................................................................119 Scheduling..........................................................................................................................119 Multiple instruction streams for individual performers............................................123 Executing the microinstructions ...................................................................................125 Speed...................................................................................................................................125 The puzzling nature of undo and redo ........................................................................127 Icicle programming patterns ..........................................................................................128 VII. Children using Icicle..............................................................................................................133 Conducting the study.......................................................................................................133 Learning Icicle...................................................................................................................135 Understanding Icicle........................................................................................................138 Principal questions ...........................................................................................................143 Further comments