AgentSheets

AgentSheets was one of the first modern block-based programming languages designed for children. The idea of AgentSheets was to overcome syntactic challenges found in common text-based programming languages by using drag-and-drop mechanisms conceptualizing commands such as conditions and actions as editable blocks that could be composed into programs. Ideas such as this would go on to be used in various other programming languages, such as Scratch. AgentSheets was used to create media-rich projects such as games and interactive simulations. The main building blocks of AgentSheets were interactive objects, or "agents," that were programmed through rules. Using conditions, agents could sense the user input including mouse, keyboard, speech recognition and web page content in more advanced versions. Using actions agents could move, produce sounds, open web pages, and compute formulas.

History
AgentSheets was initially considered as a cyberlearning tool to teach students programming and related information technology skills through game design.

AgentSheets was supported by a middle and high school curriculum called Scalable Game Design aligned with the International Society for Technology in Education's National Educational Technology Standards (NETS). The mission of this project is to reinvent computer science in public schools by motivating & educating all students to learn about computer science through game design starting at the middle school level. Through this curriculum students go on to build increasingly sophisticated games and, as part of this process, learn about computational concepts at the level of computational thinking that are relevant to game design as well as to computational science.

The results of the NSF ITEST program supported research investigating motivational and educational aspects of introducing computer science at the middle school level are extremely positive in terms of motivational levels, number of participants, and participation of women and underrepresented communities. Participation was high because most middle schools participating in the study have made Scalable Game Design a module that is part of existing required courses (e.g., computer power with keyboarding and learning Microsoft PowerPoint). Many of the middle schools instruct all of their students in scalable game design reaching in some schools over 900 students per year, per school. Of the over 1000 students participating in the project in the first semester, over 52% were girls. Of the girls, 85% enjoyed the scalable game design course and 78% would like to take another game design course.

Design
The built-in drag-and-drop language was designed to be accessible enough so that students without a programming background can make their own simple Frogger-like game, and publish it on the Web, in their first session. AgentSheets was also powerful enough to make sophisticated The Sims-like games with artificial intelligence. To transition from visual programming to more traditional programming, students can render their games into Java source code.

Similar to a spreadsheet, an AgentSheet was a computational grid. This grid contains numbers and string (much like a normal spreadsheet) as well as "agents," or, interactive objects programmed through rules. These agents are represented by pictures, can be animated, make sounds, react to mouse/keyboard interactions, can read web pages, and can speak and recognize speech commands on Mac versions. This grid is suited to build computational science applications modeling complex scientific phenomena with up to tens of thousands of agents. The grid is also useful to build agent-based simulations including cellular automata or diffusion-based models. These models can be used in a wide variety of applications, such as understanding how a mudslide works, when a bridge collapses, and how fragile ecosystems are. The ability to support game development skills as well as computational science applications with the inclusion of scientific visualizations made AgentSheets a computational thinking tool that is used in computer science and STEM education.

Usage
AgentSheets was used in a number of contexts worldwide, including


 * Middle school students creating 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
 * Research exploring Artificial intelligence and collaborative agents, e.g., Anti Objects

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 65,536 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 the 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 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 need more general patterns. For instance, it was simple to create a rule to make a train follow a straight segment of 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 that 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 an 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) AgentSheets becomes the world's first drag-and-drop educational programming environment. Drag and drop interfaces can be used to compose syntactically correct programs. In Visual AgenTalk (VAT), a rule-based visual programming language, 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 fragments without having to write a test program. Similar drag-and-drop programming can later be found in the Etoys language (part of Squeak), in Alice, and in Scratch.
 * AgentSheets Inc.: (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 on Mac versions), and AgentSheets has been localized (e.g., Japanese and Greek).
 * Scalable Game Design: (2008) A game design-based free curriculum covering computational thinking ideas from elementary to graduate school based on AgentSheets. The mission of Scalable Game Design is reinventing computer science in public schools by motivating & educating all students including women and underrepresented communities to learn about computer science through game design starting at the middle school level. The project is funded by the National Science Foundation.
 * Conversational Programming: (2010) AgentSheets 3 is the world's first programming environment supporting computational thinking by providing information about the meaning of the program. Unlike visual programming approaches, which only help with syntactic challenges, such as avoiding missing semicolons, Conversational Programming helps with the semantics, that is the meaning of your program. Is this condition true right now? Would this rule fire? Why does that rule fail? A conversational programming agent will tell all this and more in a non-intrusive kind of way.