Cocoa is an easy-to-learn, purely visual programming environment for children. Using Cocoa, children can create simulations in which pieces they design move around and interact on a game board. They can define the behavior of the pieces using a simple programming-by-demonstration interface. The simulations can be saved as standalone applications or as Web pages. Cocoa is freely downloadable at http://cocoa.apple.com.
First the authors describe the philosophical underpinnings of Cocoa. Cocoa embodies the principles of analogical programming, in which the structure of the representation gives information about what is represented. In contrast, textual programming languages are examples of Fregean programming, in which signs or symbols are used to represent relationships between functions and arguments. Next, the authors contrast the Cocoa rule set for a train simulation with a HyperTalk textual program. The small set of visual rewrite rules (before picture and after picture) are easy to interpret rule by rule, whereas the textual program seems considerably more complex (for example, if the number of items in BtnIconName > 1 then…). Finally, the authors report on encouraging empirical studies of children actually using Cocoa, as well as describing related work, especially the work of Repenning [1], which provides a glimpse of the future of these types of systems.
While the authors successfully make the case for visual programming environments like Cocoa in limited domains (they are easy to learn and allow one to do simple things simply), the paper lacks a discussion of the limitations of this sort of programming environment in general. Nevertheless, the paper should be of great interest to designers of visual programming environments and educational construction kit software, as well as to nonprogrammers who wish to create Web pages with dynamic, interactive content such as games and simulations.