Teaching Introductory Artificial Intelligence Through Java-Based
Total Page:16
File Type:pdf, Size:1020Kb
Proceedings of the Second Symposium on Educational Advances in Artificial Intelligence Teaching Introductory Artificial Intelligence through Java-Based Games Amy McGovern Zachery Tidwell Derek Rushing School of Computer Science School of Computer Science School of Computer Science University of Oklahoma University of Oklahoma University of Oklahoma [email protected] [email protected] [email protected] Abstract tegration, 4) the human dimension, 5) caring, and 6) learn- ing how to learn (Fink 2003). Traditional course lectures We introduce a Java graphical gaming framework that enables and exams focus on foundational knowledge. In our teach- students in an introductory artificial intelligence (AI) course ing, we use active learning to engage students (Prince 2004; to immediately apply and visualize the topics from class. We have used this framework in teaching a mixed undergradu- Felder and Brent 2009). We use the projects to focus on all ate/graduate AI course for six years. We believe that the use six dimensions of significant learning. of games motivates students. The graphical nature of each Specifically the projects 1) enable students to better re- game enables students to quickly see how well their algo- member their foundational knowledge by 2) applying it to rithm works. Because the topics in an introductory AI course new domains. By applying the techniques to a variety of do- vary widely, students apply their algorithms to multiple game mains, they 3) integrate their knowledge and connect ideas environments. A final challenging environment enables them from previous courses. By working within an existing code- to tie together the concepts for the entire semester. base, they demonstrate and modify their own skills while working with other students which addresses 4) the human Introduction dimension. Although we do not specifically address caring 5), students gain a new appreciation for AI by participating Our goals in teaching introductory artificial intelligence (AI) in the class and projects and learn that they are interested in are to create a significant learning experience (Fink 2003) it for some aspect of their career. By working on projects and to enable students to develop the problem solving and across a wide variety of domains and skills, we enable stu- teamwork skills necessary for success in their future career dents to learn about material more deeply and become better (Woods et al. 2000). These goals are intertwined. To achieve students. And, we encourage creativity through extra-credit, them, students need to be deeply engaged in the subject mat- which motivates many of the students to learn additional ma- ter. Inspired by past success in teaching AI (McGovern and terial about each topic 6). Fager 2007; DeNero and Klein 2010), we have created and tested a general gaming framework for projects for an AI In addition to the dimensions of learning specified above, class. We have been teaching a mixed upper level under- Fink also specifies that a successful learning experience for graduate and graduate introductory AI course for six years. students includes high quality and frequent feedback. The Because such a class covers a wide range of topics, using a graphical nature of the projects provides this because stu- single project paradigm for the entire semester can be dif- dents are able to immediately observe the higher-level be- ficult. We have found that the use of graphical game-based havior of their agents. It also enables them to quickly debug projects keeps the students’ interest level high and engages their agents as they refine their overall understanding of the them in the projects. In this paper, we introduce a general specific topic. Java1 gaming framework that enables us to use a variety of Computer games have a long history of motivating learn- games and enables students to quickly visualize their agents. ing both outside computer science (for a thorough treatment We assume students are either familiar with Java (through of this topic, see Gee, 2007) and within computer science required undergraduate courses) or capable of quickly learn- (e.g. Alice2, Scratch3, introductory programming courses ing Java (expected of graduate students). such as Leutenegger and Edgington, 2007 and Bayliss, 2009 Fink defines a taxonomy of significant learning that builds describe, and cross curriculum programs such as Burns, on the traditional Bloom’s taxonomy of learning (Bloom 2008 and Sung 2009). We focus specifically on using games 1956). In Fink’s work, a course that becomes a signifi- in teaching AI, a topic discussed at both the 2010 and 2011 cant learning experience should integrate six dimensions of Symposium on Educational Advances in Artificial Intelli- learning: 1) foundational knowledge, 2) application, 3) in- gence (EAAI). Copyright c 2011, Association for the Advancement of Artificial Intelligence (www.aaai.org). All rights reserved. 2http://www.alice.org/ 1http://www.java.com 3http://scratch.mit.edu/ 1729 Course goals and details The learning objectives for our introductory AI course are as follows: • Select the AI technique best-suited for a novel prob- lem/domain and justify your choice, including an analysis of the complexity of your choice • Implement an AI solution to a complicated real-world problem and evaluate its effectiveness • Gain the skills, confidence, and experience to implement your own AI solutions within an existing large codebase • Function effectively in a team The first and second objectives directly relate to a project- oriented class. By giving the students experience at imple- menting the AI techniques in a variety of environments, they can better understand why they should choose a particular technique for a problem domain and they can immediately see how effective it is. Although the third and fourth ob- Figure 1: A single agent moving around the Spacewar en- jectives do not directly relate to the topic of AI, they are vironment. The brown circles are asteroids of varying di- critical for our goal of enabling students to develop problem amters. The green circles are energy beacons. The agent is solving and teamwork skills that will be useful throughout aiming for the red circle. their career. We provide an existing codebase for each of the games and students must implement their agents within this codebase. For most of the students, this is their first expe- recharge its energy cell by collecting energy beacons from rience in working with a large existing codebase rather than the environment, or by returning to its home base if it is implementing their project from scratch, as is traditional in available. Ships can also be damaged or destroyed by colli- many classes. By the end of the semester, the students have sions with asteroids floating in space, from the fire of other gained critical confidence in their skills as computer scien- ships, or from mines. They can temporarily invoke a shield tists. For the final objective, we have experimented with a to protect themselves but the shielding costs energy. Ships variety of team-based projects over the six years of teaching become temporarily uncontrollable if they are hit by an elec- this course. We believe that teamwork is an essential skill tromagnetic pulse. Asteroids can be damaged or destroyed for a computer scientist and we strive to help students gain by shooting at them. Our original implementation used only skills in this arena by working together. the features noted in (McGovern and Fager 2007). However, We divide the topics covered in our course into three the- students continued to request additional features and devel- matic areas: search, learning, planning/multi-agent systems oped many of them on their own. (planning overlaps multi-agent systems). We use Russell Spacewar is an interesting arena for both AI and ma- and Norvig’s book (Russell and Norvig 2009) as the course chine learning algorithms. Using terms from (Russell and textbook. Norvig 2009), it is partially observable, stochastic, sequen- We next describe each of the games, the projects corre- tial, dynamic, continuous, multi-agent, and competitive. sponding to each environment, and the AI topics covered by This makes it a challenging problem for any AI project. Suc- each of the projects. cessful agents will avoid collisions as well as shoot oppo- nents. These individual tasks are difficult and combining Asteroids/Spacewar them makes the task even more challenging. Inspired by our past success of using Spacewar to teach AI The Spacewar system is quite flexible and enables stu- dents to work on a variety of projects. We have successfully (McGovern and Fager 2007), we began our games with the ∗ Spacewar source code4. Spacewar is a reimplementation used it for introducing A navigation in a more realistic en- of the classic arcade game of asteroids (Graetz 1981). In vironment than is typically presented in textbooks, for learn- the original game, a single ship attempts to navigate safely ing using both genetic algorithms and reinforcement learn- ing, for classical planning, and for multi-agent coordination. around an asteroid filled environment and to shoot the other ∗ ships. We have modified this to remove the effects of gravity Because A search is designed for fully observable, de- and the single central sun. Instead, the environment con- terministic, episodic, static, discrete, single-agent environ- ments (exactly the opposite of Spacewar), students must tains some number of (potentially moving) obstacles and ∗ other ships. Each ship carries an energy cell that fuels its stretch their understanding of A to learn how to apply it to a more real-world task. Figure 1 shows a single agent Space- thrusters, shields, mines, cannons, electromagnetic pulses, ∗ tractor/repulser beams, and life support systems. If the en- war environment where students program their A agent to ergy cell is depleted, the ship self-destructs. A ship can navigate safely around asteroids without the interference of another agent.