SUPPORTING INTELLIGENT SYSTEMS TEACHING BY MEANS OF COMPUTER GAMES PROGRAMMING
University of Castilla - La Mancha (SPAIN)
About this paper:
Appears in: EDULEARN10 Proceedings
Publication year: 2010
Conference name: 2nd International Conference on Education and New Learning Technologies
Dates: 5-7 July, 2010
Location: Barcelona, Spain
Abstract:It is well known that the use of computer games at school had a significant educational value.
In this paper we do not focus on educational games, nor in other computer games (e.g. arcade) use to educate in an indirect way. On the contrary, computer games are a vehicle to illustrate the contents explained in the classroom and to motivate the students to work hard in their programming assignments. To do this we describe our experience in two compulsory subjects (Artificial Intelligence -AI- and Knowledge-based Systems) taught respectively in the first and second term of the 4th year at the Computer Science Engineering degree at the University of Castilla-La Mancha (Albacete, Spain).
We would like to emphasize that the goal of these two courses is not to teach computer (video) games programming, but to develop software agents to play games whose behaviour is based on the use of AI algorithms/techniques. Like that we tried to escape from the boredom of implementing small-programs based mainly in graph theory concepts to illustrate the in-class learned algorithms and to benefit from using the same problem so that the overhead of dealing and understanding several and distinct problems is avoided.
In this paper we describe the use of two different platforms/games (PacMan and RoboCode) as the framework for laboratory assignment in the two courses aforementioned.
Firstly, and using the Java project from Standford University (http://www-nlp.stanford.edu/~grenager/cs121/syllabus.html), we got a very valuable platform to start from. So, the three assignments are focused on programming "good" PacMan players/agents using: (1) Search techniques, including uninformed, informed and also adversarial search (minimax); (2) Metaheuristics, where students were required to implement both a genetic algorithm and a local search method. (3) Reinforcement Learning (RL), where the students had to devise and code their own method presenting a RL definition, a learner via RL and an agent able to play with the learned policy. For assignments 2 and 3 we had to extend the classes of the Java Project in order to provide the students a good framework to program there own methods and to test the quality of their solutions.
Next, we used Robocode (http://robocode.sourceforge.net/), another programming platform, also available in Java, where the goal is to develop a robot battle tank to battle against other tanks. In this case there are practical assignments were: (1) Design of robot control using rule-based systems and (2) An improvement of the previous implementation but using fuzzy logic in order to deal with "mobile" enemies.
From this, we conclude that these experiences had been quite positive for both students and teachers. As we initially aimed, this kind of problems based in games, have increased the motivation of our students, which made them work hard and reach high performance in their programming projects. We have checked how one same game can be used to illustrate a great deal of AI techniques, so the students only need to familiarize with the environment in the first laboratory exercise, which is also quite positive. Since these open computer games engines provide the necessary code to abstract the programmer from the details, the students only coded aspects related to intelligent systems algorithms, but obtained a fully program as output.
Keywords: Intelligent Systems, Artificial Intelligence, Knowledge-based Systems, software programming, computer game strategies, laboratory assignments.