Software Developed at Indiana University The Cognitive Science Program at Indiana University receives support from a National Science Foundation Department of Undergraduate Education Grant titled, "An Undergraduate Curriculum for Cognitive and Information Sciences" (DUE-9752299), in the amount of $249,996 and lasting for a three-year period that ended February 28, 2001. This grant allowed the Cognitive Science Program at Indiana University to develop the curriculum for a stand-alone bachelor's degrees and auxiliary programs in the cognitive and information sciences. The resulting curriculum has produced a state-of-the-art program that two independent reviews have lauded (see letters in appendix). In an effort to support development of similar programs at other institutions, as well as to serve a broad set of courses across the knowledge-based and human behavior curriculum, we propose to develop and export a number of different software applications via the Mind Project consortium. The software is in various stages of development, but work has begun on all projects. In many cases all that is required is porting to a multi-platform language, testing, and courseware development. We plan to use graduate student CS majors for programming, and paid undergraduate students for testing, courseware development, and assessment. Existing online materials can be found at: http://www.psych.indiana.edu/software/ The larger projects that will become the main thrust of our efforts are described below. Complex Adaptive Systems Important problems in psychology, computer science, economics, ecology, and neuroscience depend upon a deeper understanding of the mechanisms that propel Complex Adaptive Systems. A common feature of these systems is that organized behavior emerges from the simultaneous interactions of many units. Dr. Robert Goldstone (Psychology, Cognitive Science) has developed several existing software applications to support a course on complex adaptive systems. These programs address the following systems in depth: chaotic growth in animal populations, learning in the human nervous system, cooperation and competition within social groups, and the evolution of artificial life. These programs currently run only on Macintosh systems, and so the current proposal will support translating the code to Java for multi-platform support and web-based delivery. We also plan to add additional simulations that explore dynamical systems behavior of complex systems, such as predator-prey interactions and other coupled systems. An historical example is the cyclic variation of lynx and rabbit populations. However, the course considers populations of rabbits and grass because their interactions are better modeled by the equations developed in the course. Often it is observed that as the amount of grass grows in a regions, the population of rabbits will increase with their food source. However, as the rabbit population increases, the grass population will decrease from over-harvesting. Then, the population of rabbits will decrease because of the dwindling food supply of grass. With fewer predators, the grass population increases again, perpetuating the cyclic population variation. The graphic above illustrates the population of rabbits and grass. Students can experiment with the growth rate of the different populations and observe how difficult it is to establish a stable population. These same principles can be extended to situations such as the spread of ideas in a culture. Examples developed by Dr. Robert Goldstone for a course on complex adaptive systems are found at: http://cognitrn.psych.indiana.edu/rgoldsto/complex/ Smarts: Learning AI and Programming through Artificial Life Beginning in the Spring Semester 1999, Michael Gasser (Computer Science, Linguistics, Cognitive Science) has been involved in developing the undergraduate cognitive course Computation in Cognitive Science (Q260). This course introduces programming in Java in the context of artificial intelligence and artificial life. Gasser has written a large simulation application in Java called Smarts which the students modify as a part of their programming assignments. Each programming assignment is based on a different topic in artificial intelligence; topics covered in the current version are reinforcement learning, competitive learning, evolutionary computation, and adversarial search. Students modify the existing program, implementing the algorithms they have learned in class. The screen-dump below shows the graphical user interface for the assignment on evolutionary computation. The user interacts with the program in the "Evolution" window. The "World" window shows the current position of the agents and other objects in the simulated world. The "Genomes" window shows the genomes of the agents. The course and the software that goes with it are described at the following Web site: http://www.indiana.edu/~gasser/Q260/ SALSA: Learning about Learning through Artificial Life Michael Gasser (Computer Science, Linguistics, Cognitive Science) has been developing a software package called SALSA (System using Artificial Life for Studying Adaptation). The ultimate goal is a set of modules within which students can explore various adaptive algorithms, including genetic algorithms, competitive learning, reinforcement learning, and supervised categorization. What all of these modules will share is a two-dimensional world in which simple agents encounter and potentially act on other agents, food, and obstacles. One module, designed to introduce reinforcement learning, has been implemented and tested at the Indiana University Summer Cognitive Science Workshop in June 2000. In the reinforcement learning module, agents experience the world through their sensory systems, including touch, vision, and sonar. On the basis of their sensory input, they perform one of a small set of actions and receive a reward or punishment based on the consequences. Each agent has a neural network which uses the Q-learning algorithm to adjust the values associated with particular combinations of sensory inputs and actions. Students can design both the environment in which the agents live and the agents themselves. They have control over the placement of food and obstacles, the rewards and punishments associated with particular actions in particular situations, the kinds of sensory input that the agents have access to, and the actions that are available to the agents. Students can observe the progress of learning and explore the effects of each of the parameters they have control over. They can also have the agents they design for a particular environment compete with agents designed by others. The reinforcement learning module of SALSA is described at http://www.cs.indiana.edu/~gasser/Salsa/ Memory Detective The typical introductory psychology or cognitive science course organizes memory according to a number of different contrasts such as short-term vs. long-term memory, explicit vs. implicit memory, or declarative vs. procedural memory. A number of in-class demonstrations may serve to illustrate several different phenomenon. Students gain much more intuition about the workings of memory through experimentation, but difficulties with running studies hinders such efforts. We will create a software application that allows students to perform memory experiments on a computer-based model that is derived from the most successful model of human memory in the literature. Our classroom experience has shown that students comprehend the results of an experiment when they participate in its design. To this end, we will create a program that allows students to create word lists (or have them chosen randomly) and then submit these to the computer model for 'study'. The program will then rely on the aspects of the REM model to predict which words would be most likely to be recalled by subjects who studied a similar list. The model is able to do this because words are described in terms of their features, which allows similarities between words to be computed (ref). This aspect also allows the model to capture false memory effects. For example, when human subjects study a list of related words (such as dream, nap, snooze, yawn, rest) they often recall a related word (sleep) along with some of the studied words. This false memory effect is quite robust and gives students an idea of the processes of human memory. The typical interaction with the program would be as follows. As shown in Figure x, students would begin by choosing words from a list of 5000 words and placing them in either study list 1 or study list 2. Two separate lists allows the students to explore explicit and implicit memory by allowing the model to rely on familiarity when recalling words, or forcing it to code context (i.e., a subject might think: "this word seems familiar, but I can't recall whether it was on list 1 or list 2"). The model then returns the words that were recalled, which is somewhat random for each simulated subject. Note that the model displays false memory effects: when words related to 'sleep' are studied, the model produces some of these, along with the word 'sleep' which was not studied. The memory detective application allows the student to perform many different memory experiments in rapid order, and because they choose the word list they can try the same materials on human observers to test the model's performance. Through interactions with the program the students gain an intuitive grasp of the workings of the different memory systems. The program will allow multiple simulated subjects and collect summary statistics on how many times each word was recalled for 20 simulated subjects. This interaction provides the complete experience of running a memory experiment. Study Lists: Select Words: List 1 L1 L2 Nap Banana Pizza Dog Anteater Frog Dream Rest Daisy Rose Torch Flame Computer Telephone Shoe Shirt Sleep Snooze Nap Dream Rest Snooze Shoe List 2 Banana Anteater Frog Telephone Post-study distractor task time (seconds) 15 Test List 1 Test List 2 Test Both The Model Recalled These Words: Nap Sleep Rest Shoe Virtual EEG Lab A major component of the brain sciences is discovering the link between brain activity and conscious awareness. Research in Thomas Busey's lab at Indiana University (Psychology, Cognitive Science) has yielded a large database of electroencephalograph (EEG) data examining the brain's response to faces, cars, flowers and other common objects. All of his students for the past 3 years have had an opportunity to perform an EEG experiment looking at what makes face perception special. To answer this question, students chose stimuli such as faces, distorted faces, and other objects, and looked at how a particular component of the EEG that is though to be associated with face processing (the N170), is affected by the different stimuli. EEG systems are not widely available in teaching settings, and so to make this methodology approachable, we propose to create a large database of images and their associated brain responses. These will be taken from the existing data as well as digitized from journal articles that use similar methodologies. Students will be able to address the same experimental question by choosing stimuli, and then by viewing graphs of the resulting EEG data they will be able to answer the question of what the N170 component represents and whether faces are indeed processed differently than other objects in the brain. Neural Networks and Logic The purpose of the course Q250 Mathematical and Logical Foundations of Cognitive Science is to introduce students to some of the main mathematical and logical tools used in building models in the information and cognitive sciences. The emphasis is on the intuitive ideas behind the mathematics. In other words, the primary goal is to have the students learn the ideas first at an intuitive level and then to go towards a deeper acquaintance with the ideas. The course introduces the main concepts, notions and results from first-order logic, machines, and linear algebra for parallel distributed processing (neural networks). The first two parts of the course (the sections on logic and on machines) use existing software, specifically Tarski’s World and Turing’s World, both by Jon Barwise and John Etchemendy. When the course was originally developed, the third section—a five week introduction to the mathematics of neural networks—was presented to the students via a series of four interactive Mathematica notebooks, which allowed the students to change input and variables in models of neural networks and then observe resulting changes in output. While the interactivity of the Mathematica notebooks was a great improvement over textual descriptions and statements of equations, the students noted some disadvantages. First, Mathematica is a costly program, and while the students have access to it for free in the Student Technology Laboratories on campus, its prohibitive cost renders it effectively unavailable for student use on personal computers. Students also indicated that since Mathematica is a complex program and there are only five weeks in the neural network section of the course, the task of learning Mathematica prevented them focusing their full attention on understanding the mathematics of neural networks. Given the disadvantages of using Mathematica, we began rewriting and redesigning the material to make it accessible via the Internet in the form of applets and hypertext. In doing so, we have made some pedagogical improvements to the content and design, specifically giving the students more opportunities to step through calculations, rather than just being able to view changing output given changing input and variables. Several of the applets can be used in a variety of other disciplines, a benefit which is facilitated by the modular nature of the applets. For example, one applet steps students through the process of matrix multiplication. Students are given two matrices, A (of dimension 2 x 3) and B (of dimension 3 X 2). Students click on a button labeled step 1, and the calculation of multiplying the first row of matrix A with the first column of matrix B is shown in detail. A resulting 2 x 2 matrix appears, and highlighting is used to indicate where in the matrix the result of that first calculation belongs. Students continue stepping through the process until all the calculations have been completed. A separate applet allows the students to multiply matrices of various dimensions and then check their answers. Other applets show how neural networks can be used to generate sequences such as the Fibonacci sequence and how they can be used to build an architecture which can learn Boolean functions such as conjunction and disjunction. Virtual Robot (which we probably won't have the resources for) Q351, Introduction to Artificial Intelligence and Computer Simulation, surveys techniques for machine intelligence and computational modeling of human intelligence. The class surveys many AI areas, such as intelligent agents, neural networks, problemsolving and planning. Students implement AI programs for a number of these areas. Under this grant, we propose to develop a simulated environment for “virtual robotics” to enable students to explore each subarea as a step towards a achieving compelling overarching goal: developing a virtual robot that senses, develops representations of its simulated world, plans actions, and carries them out in this simulated world. This highlevel goal will provide a unifying course theme to contextualize and motivate the study of each subarea. This approach is in a spirit similar to existing initiatives to develop AI curricula based on physical robots (e.g., Kumar & Meeden, 1998), and, more broadly, with the agent-centered approach to teaching artificial intelligence (e.g., Russell & Norvig, 1995). However, our “virtual robotics” approach enables simple and inexpensive distribution of the software to other institutions, and enables more focus on higher-level issues than would be practical with physical robots, without the overhead of addressing hardware issues. It also enables students to perform large numbers of rapid automated experiments, and to experiment not only with agent characteristics, but with the world. Starting out with an “easy” simulated environment, and adjusting it to increase its difficulty, will help students understand the factors that determine the effectiveness of particular AI methods. Simulated robotics environments have been developed previously, and have proven an effective research tool, but have not been aimed at instructional use. For example, Tileworld (Joslin, Nunes, & Pollack, 93), a widely-used and publicly-available system, assumes a sophisticated user base and requires Common Lisp. The proposed system will be written in Java for portability, will have a simple-to-use interface, and will include a set of tools for generating simple environments, with those environments based on the office environments used in the competitions for physical robots run annually by the American Association for Artificial Intelligence (AAAI) at its annual conference. The system will provide the capability to load predefined environment definitions or to interactively place objects (e.g., desks, chairs, etc.) and rearrange the overall space (e.g., arranging walls and placing doors), and to view the virtual robot’s progress from above during simulated execution. The software will include modules implementing different component behaviors (ranging from low-level effector procedures and high-level planning), as well as instrumentation to facilitate experiments (e.g., capabilities to generate random goals and track the number of moves required to achieve a goal). When all modules are enabled, the simulator will provide an easy-to-use tool enabling students to observe and test the performance of different approaches, making it suitable for use in introductory courses, even those for which students have no programming experience. In more advanced courses, instructors will be able to disable one or more of the modules, to be replaced with student-written modules, enabling students explore the ramifications of design decisions in a rich environment, without having to develop code to handle superfluous details. During the semester of Q351, students will develop a collection of modules, motivated by the goal of achieving a full system by the end of the course. The capability for automated experimentation will enable students to systematically compare different approaches. The environment will also include the capability to change environmental behaviors (e.g., to adjust the probability that the simulated robot’s wheels will slip, or that an object will be moved by someone other than the robot). This will enable, for example, developing and testing purely deliberative planning models in well-behaved environments, and then changing to a more realistic environment to observe the problems that arise and motivate the use of reactive planning methods. Thus this system will provide a rich environment for learning at multiple levels, and with multiple focuses. D. Joslin, A. Nunes, and M. Pollack, The Tileworld User’s Guide. Technical Report TR93-12, Department of Computer Science, University of Pittsburgh, http://www.cs.pitt.edu/~pollack/distrib/users-guide.ps. D. Kumar and L. Meeden. A Robot Laboratory for Teaching Artificial Intelligence. Proceedings of the Twenty-Ninth SIGCSE Technical Symposium on Computer Science Education (SIGCSE-98), ACM Press, 1998. http://mainline.brynmawr.edu/Robots/ResourceKit/Paper.html. S. Russell and P. Norvig, Artificial Intelligence: A Modern Approach. Prentice-Hall, 1995. Timetable We plan to spend the first two years developing the software, and the final year testing the applications using a combination of evaluation of classroom use by students from the School of Education, mentored by Dr. Donald Cunningham. Undergraduate Assistant Instructors will help students deal with the inevitable issues that arise from using betaversion software. In the third year we will also send applications to institutions that have joined our beta-test program (see list in Appendix) and sponsor a summer research institute that will bring in students from across the country for a week to provide an intensive test-bed. A previous institute was quite productive in suggesting changes and developing modules for the applications.