AgentSheets

AgentSheets is an easy to use game and simulation authoring tool. AgentSheets is used mostly in education to teach students about programming and multimedia through game design and computational science. The rule-based Visual AgenTalk programming language uses drag and drop visual programming to create and test programs. A built-in generator called Ristretto turns games and simulations in Java applets contained in web pages.

Similar to a spreadsheet, an agentsheet is a computational matrix. Unlike spreadsheets, this matrix does not just contain numbers and string but so called agents. These agents are represented by pictures, can be animated, make sounds, react to mouse/keyboard interactions, can read web pages, can speak and even recognize speech commands (Mac).

How AgentSheets is used
AgentSheets is used in a number of contexts worldwide:


 * Middle school students create food web simulations to explore the complexity of ecological systems
 * Middle school computer clubs students build computer games ranging from simple arcade classic such as Frogger to sophisticated AI-based games such as The Sims.
 * High school students use AgentSheets as story telling and simulation tool of historical events such as the César Chávez grape boycott
 * High school students simulate predator prey worlds and analyzed data created with spreadsheets and plots
 * After school science programs show students how to build their own science simulations ranging from forest fire simulations to the spreading of viruses.
 * High school students use AgentSheets as introduction to programming tool
 * Graduate and undergraduate courses on educational game design use AgentSheets to prototype, playtest, refine, and publish simple educational games

History
The original goal of this research was to explore new models of computational thinking. The first prototype of AgentSheets ran in 1989 at the University of Colorado, NCAR, Connection Machine 2. The Connection Machine is a highly parallel computer with up to 64,000 CPUs. Realizing how hard it was to program the Connection Machine the insight that "CPU cycles will always be ultimately cheaper than cognitive cycles" led to the exploration of several new programming paradigms:
 * Agent-Based Graphical Rewrite Rules: (1991) Behavior such as a train following train tracks can be specified through before/after rules. These rules can be created by programming by example. The user would tell the system to watch the train; the user would move the train on train track one step and stop recording; the system would create the rule allowing trains to follow train tracks. Agent-Based Graphical Rewrite Rules were later also used in the KidSim/Cocoa/Creator kid programming tool.
 * Semantical Rewrite Rules: (1994) It became clear that Agent-Based Graphical Rewrite Rules used in AgentSheets91 and KidSim/Cocoa/Creator were not powerful enough for a number of applications that required more general pattern. For instance, it was simple to create a rule to make a train follow a straight segment of train track but the number of rules quickly exploded when trying to have trains follow all combinations of turns and intersections. Semantic rewrite rules could interpret rules topologically. With a single rule a user could create a complete train follows train track behavior.
 * Programming by Analogous Examples: (1995) New behavior can be created through analogies. For instance the behavior of a car can be described as analogy to trains. A car moves on a road like a train on a train track. A challenge to this approach is conceptual exception handling. Analogies are often either incomplete or too general. This requires that users can refine programs produced by Programming by Analogous Examples.
 * Tactile Programming: (1996) Drag and drop interfaces can be used to compose syntactically correct programs. In Visual AgenTalk users create rules by dragging and dropping conditions and actions from palettes. The tactile aspect of Visual AgenTalk allows users to perceive through drag and drop what programs do. By dragging and dropping conditions, actions, rules and even methods onto agents they see the consequence of invoking program fragment without having to write a test program. Similar drag and drop programming can later be found in the eToys language part of Squeak and Alice.
 * Commercialization: (1996) With the support of the National Science Foundation AgentSheets has become a commercial product. The programming model has been extended, more interaction modalities have been added (e.g., speech recognition (Mac)), scientific visualization has been refined (e.g., 3D real time plotting (Mac)), and AgentSheets has been localized (e.g., Japanese and Greek).

Acknowledgements
Research on AgentSheets at the University of Colorado has been funded by the National Science Foundation and the National Institutes of Health. AgentSheets has been showcased as exemplary educational technology by numerous international organizations including the National Academy of Sciences, the Japanese Ministry of Education, The Public Broadcast System (PBS), Apple Computer, the European Commission, Organisation for Economic Co-operation and Development (OECD), and the Association for Computing Machinery.