Learning through Programming Agents

Sean Brophy, Dan Schwartz, Gautam Biswas and John Bransford
Box 45, GPC
Vanderbilt University
Learning Technology Center
Nashville, TN



We are working on a project to help people reflect on what they know while programming computer agents to perform in specific situations.  We draw on a parallel  that programming agents may have learning benefits similar to those of teaching other people.  The following briefly reviews the foundation for learning by teaching and how this idea is used in education.  Based on this  premise, the final section outlines an environment designed to explore new dimensions for learning through programming a virtual agent.

Learning by Teaching

A belief in the  value of learning by teaching is widespread; an example involves graduate students who become TA's in areas such as statistics and note that teaching helped them really learn.  The literature relevant to learning by teaching  includes topics like reciprocal teaching (Palinscar & Brown, 1984), small group interactions (Johnson & Johnson, 1975), self explanation (Chi, 1989), and peer-assisted tutoring (e.g., Fuchs et al., 1996).  Much of this  literature makes references to the fact that tutors often learn as much as, if not more than, their tutees (e.g., Webb, 1983). Nevertheless, strong empirical evidence on this point is difficult to find.  Some benefits of  learning by teaching seem to be that teachers have to anticipate what their students' need to learn, that teachers are often confronted by "naive questions" from students that make them rethink their own understanding of their  discipline, and that teachers have opportunities to notice explicitly the importance of different behaviors for people's abilities to learn.  Placing learners in the role of "teacher" requires the learner to evaluate a  situation from a new dimension.  It encourages them to notice relevant features of the domain and how they relate.  Also, the process requires them to think about how to articulate it to someone else in a comprehensive  manner.

Previous work in learning by programming and the metaphor of computer agents provides insights toward creating opportunities that may yeild benefits similar to those of learning to those of learning by teaching.   Within the domain of computer technology, the idea of learning by teaching was emphasized by Papert (1980) in the context of helping students learn logo by teaching the "turtle" (see also Abelson & diSessa, 1980;  Mayer,  1988; Salomon, 1992). Extensions of this idea include programming lego toys and robots to interact with one another explicitly (e.g., Kafai & Resnick, 1996; Repenning & Sumner, 1995), programming computer agents to  collaboratively learn from one another (e.g., Dillenbourg, in press), creating micro worlds, and creating software to help others learn topics such as mathematics (e.g., Harel & Papert, 1991).

Most of the work on  intelligent agents is designed to simplify problem solving tasks for humans by providing flexible and knowledgeable assistants that help us manage our world. Electromechanical agents or robots perform complex repetitive tasks in  industrial processes and conditions hazardous to humans.  Software agents or softbots can search the Web for specific information. Software agents' effectors and sensors are software utilities, many of them Internet related.  Knowledge of the domain and user preferences allow software agents to plan sequences of actions on behalf of a user. Dynamic replanning in light of unexpected changes and new user input adds to the agents capabilities (Lieberman  & Maulsby, 1996; Maes, 1997).

Intelligent agents possess qualities that make them autonomous entities that can exist in complex, dynamic, and open environments such as the Internet.  An agent can "sense, and act on,  its environment, and has a set of goals or motivations that it tries to achieve through these actions." (Maes, 1997).  Research in the area of intelligent agents focuses on questions like "How does an agent make an  appropriate decision; How does an agent learn; How does it adapt." In this context, learning focuses on algorithms designed to maintain an agents' autonomy and perform the desired goals of the person employing the agent.


Learning by Programming Agents

Programming intelligent agents requires several important processes: 1)  defining what the agent needs to know 2) defining a  representation of this knowledge 3) and programming this knowledge into the agent.   This process of evaluating the needs of the agent to perform a task can lead to deeper understanding of the domain the agent needs to  know about.   Kaelbling (1992) notes how her efforts to program an agent to interact in a domain helped her deepen her understanding of the domain.  Several researchers have capitalized on this idea to create  powerful learning environments.

 Repenning and Sumner's AgentSheets (1995) environment makes it easy to create SimCity type of simulations.   A designer must evaluate  how  an agent acts and how it  interacts with other agents (dependencies) in the simulation environment.  The designer must translate their hypothesis into an agent's actions/interactions using a visual programming environment to program sets of  propositions defining the behavior of the agents.  To create these propositions, users identify conditions when specific actions should be taken by agents, and they can specify actions using simple click and drag  techniques.  Then the designer can evaluate the design by "running" the simulation to evaluate whether they correctly modelled the desired outcome.  Used as a learning environment the designers are learners trying to  model the dynamics of a complex situations.  This inquiry process of evaluation, implement and test provides an excellent learning opportunity that requires very little programming experience.

AdventurePlayer is another  "agent" based simulation environment that  provides feedback about a learners progress.   This program is based on the concept of Anchored Interactive Learning Environments (AILE; Crews et al., 1997).    That is, an "anchor" story provides the context for solving a problem.  In Adventure player, students define an plan by defining a sequence of actions agents must satisfy to reach a goal state defined at the end of the anchor  story.  Agents in the simulation include characters and objects that appear in the anchor story.  Like Agentsheets, student can execute their plan to diagnose errors in their plan.   This tool is designed with  built-in scaffolds that assist students in bridging gaps in their knowledge of complex problem solving tasks.  In AdventurePlayer, scaffolds are gradually removed as students make progress in problem solving.

Other work,  such as the Persona project at Microsoft (Ball et al., 1997) has focused on sophisticated user interactions, communication and social skills.  With respect to research on helping agents to learn, recent architectures have  focused on agents that can learn from examples, advice and explanations (e.g., Huffman &  Laird, 1995; Lieberman & Maulsby, 1996). In Huffman and Laird's system, based on the INSTRUCTO-SOAR framework, agents learn  tasks through tutorial instructions in natural language as part of their ongoing performance.  They employ a learning framework called situated explanation to provide contextually guided responses to incomplete explanations  generated by students.  Empirical results show good learning capabilities in a number of situations, but limitations in the ability to generalize to more widely applicable abstract forms.  Lieberman and Maulsby (1996)  focus on teaching "instructible agents" by example and by providing advice. Agents learn by observing user actions, sometimes by being told what is relevant (demonstration), and  in more sophisticated systems, by identifying  relevant information,  applying it, and learning through mistake correction.  This work compares a range of instructible systems along various dimensions and examines the trade-off among dimensions, such as system  intelligence versus user control.

Establishing A Context For Learning By Teaching

We are interested in expanding on the idea of having children learn to program agents.  Our work with the  Jasper Series has taught us the importance of anchoring situations that scaffold children's thinking.  Therefore, we want to move toward learning environments that promote learning through programming agents to act  intelligently in an anchored situations.  The programming activity requires students to program their agent for specific situations.  Like Logo or Agentsheet type activities, students need to reflect on the nature of the  situation, the relationship between knowledge and the desired end goal.  Unlike some implementations of Logo, the new agents must operate in a given environment rather than in a "blank" computer screen void of any goals other  than the desired outcomes of the programmer.

One example might be teaching an agent to make analogies between two systems of different domains but similar characteristics.  We are currently exploring the potential of  "interactive analogies" (Brophy & Schwartz, in review) as a method of getting students to notice important features of a system.  Analogical reasoning between domains often help an expert  use what they know about one  domain to obtain insights toward solving novel problems in another domain.  However, experts use their deep understanding of the base domain to make inferences about a target domain.  We are exploring the potential of  guiding novices through a comparison of two dynamic simulations.  For example, we ask them to compare a battery operated flashlight circuit with a fluid circuit consisting of a water tower and paddle wheel.  Through a  series of questions we ask participants to explain various faults with the flashlight system.  Then we ask them to explain the fault in terms of the fluid system.  The intention is for students to begin to notice the  various aspects of how an electrical systems works.  The potential exists to use these interactive simulation as a method of demonstrating to a "pedagogical agent" how to make an analogy between these domains. Making  systematic comparisons between two systems will help students understand a little more about each of the domains. The performance of the agent to solve problems using the analogies provides feedback to the learner.  

The challenge is to explore various methods of programming agents to interpret  various representation like analogies, graphs, etc.   Several visual programming systems provide excellent methods for programming  agents actions.  We are exploring additional alternatives to these methods to accept various types of inputs and decision making processes.  Programming an agent to understand when and how to use these representations  could result in better understanding by the programmer.


Ableson, H.  and diSessa, A.  (1980).  Turtle geometry: The computer as a medium for  exploring mathematics.  Cambridge, MA: MIT Press.

Ball, G., Ling, D., Kurlander, D., Miller, J., Pugh, D., Skelly, T., Stankosky, A., Theil, D., Van Dantzich, M., & Wax, T. (1997).  Lifelike computer characters:  The persona project at Microsoft research. In J. M. Bradshaw (Ed.),  Software Agents (191-222). Menlo Park, CA: AAAI/MIT Press.

Brophy, S. P., and Schwartz, D. L. (in review). Interactive analogies.  Submitted  to the 1998 Internation Conference for the Learning Sciences at Georga Tech.

Cognition and Technology Group at Vanderbilt [CTGV].  (in press). Adventures in Anchored Instruction: Lessons from Beyond the Ivory Tower.  In  R. Glaser (Ed.), Advances in instructional Psychology, Vol. 5, Mahwah, NJ: Lawrence Erlbaum & Associates.

Chi, M. T. H., Bassok, M., Lewis, M., Reimann, M. & Glaser, R. (1989). Self-explanations: How students study  and use examples in learning to solve problems.  Cognitive Science, 13, 145 182.

Crews, T. R., Biswas, G., Goldman, S. R. and Bransford, J. D. (1997). Anchored Interactive Learning Environments.  International Journal of Artificial Intelligence in Education, 8.

Dillenbourg, P.  (Ed.).  (in press). Collaborative learning: Cognitive and computational approaches.  New York: Elsvier Press.

Fuchs, L.  S., Fuchs, D., Karns, K., and Hamlett, C. L.  (1996).  The relation between students ability and the quality of effectiveness of explanations.  American Educational Research Journal , 33, 631-644.

Harel, I., and Papert, S.  (1991).  Constructionism.  Norwood, NJ: Ablex.

Huffman, S. B., and Laird, J.E. (1995). Flexible instructable agents, Journal of Artificial Intelligence Research, 3, 271-324.

Johnson, D.  W., and Johnson, R. T.  (1975).  Learning together and alone.  Englewood Cliffs, NJ: Prentice-Hall.

Kaelbling, L. P. (1992).  NSF Young Investigator. National  Science Foundation Award Abstract - #9257592.

Lieberman, H. and Maulsby, D.  (1996). Instructible agents: Software that just keeps getting better.  IBM Systems Journal, 35(3&4), 539-556.

Maes, P.  (1997).  Agents that Reduce Work and Information Overload. In J.M. Bradshaw (Ed.) Software Agents . Menlo Park, CA: AAAI/MIT Press.145-164

Mayer, R. E. (Ed.). (1988).Teaching and learning computer programming:  Multiple research perspectives.  Hillsdale, NJ: Lawrence Erlbaum Associates.

Papert, S.  (1980).  Mindstorms.  New York: Basic Books.

Palinscar, A. S., & Brown, A. L. (1984).  Reciprocal  teaching of comprehension monitoring activities.  Cognition and Instruction, 1, 117-175.

Repenning, A., & Sumner,  T. (1995). Agentsheets: A medium for creating domain oriented visual languages. Computer, 28, 17-25.

Webb, N. M. (1983). Predicting learning from student interaction: Defining the interaction variables.  Educational Psychologist, 18, 33-41.

Wooldridge, M., & Jennings, N. R. (1994). Formalizing  the cooperative problem solving process. In Proceedings of the Thirteenth International Workshop on Distributed Artificial Intelligence (IWDAI), Lake Quinalt, WA. 403-417.