Using AI to Learn about Algorithms

Article excerpt

Abstract

As a course available for general education credit, one purpose of our undergraduate Introduction to Cognitive Science course is to increase students' understanding of mathematical concepts. We chose to concentrate on the concept of algorithm. The course contains a section discussing artificial intelligence as a way to simulate human cognition, using both symbolic and numerical algorithms. Since many undergraduate students are uncomfortable with numbers, we chose a program that used a symbolic algorithm. We replaced the discussion of this program with a live demo that students could discuss step by step. The demo program simulated a grocery store bagger. As this program was an example of an expert system, a program that simulates human expertise, students could not only watch the program make choices for different sets of groceries, but change its bagging rules as well. Thus students were able to observe the underlying expert system algorithm as well as a family of bagging algorithms. Course evaluations showed that students enjoyed the demo and found it more helpful than the material it replaced, but they still found the material difficult.

Introduction

An important part of learning mathematics at the university level is the concept of algorithm. Yet many undergraduate students are uncomfortable with numbers, even to the point of math anxiety (Tobias, 1990). This paper reports on an attempt to increase students' understanding of the concept of algorithm in a general education course without triggering the nonproductive responses often fostered by previous negative experiences with mathematics. To this end, we replaced a segment discussing the behavior of various computer programs in our Introduction to Cognitive Science course with a live demo that students could discuss step by step.

Moursund (2005) points out that the term "algorithm" has different connotations in mathematics education and in computer science. For both types of educators, an algorithm describes a procedure for solving a problem or obtaining a result. In mathematics, an algorithm usually involves a calculation, while in computer science, an algorithm may use words, structures, or other symbolic elements instead of numbers. For this study we selected a symbolic algorithm rather than a numerical one. Using familiar content along with an approach and notation that students had not seen before, we hoped to trigger curiosity and enthusiasm rather than the negative feelings that a numerical approach might otherwise trigger.

Naps et al. (2002), in a survey of software visualization experiments, conclude that learner engagement with the software may be the most important factor in student learning. This is consistent with Papert's classic work (Papert, 1980) on engaging children in creating software using the Logo language. Papert's work was based on the constructivist approach of Piaget (1973). Some of the practices most generally considered useful for this purpose include adapting to the knowledge level of the student, supporting flexible execution control of the program, supporting learner initiatives in changing the data, showing history in addition to current state of the system, and including explanations along with the demo. The intent of these practices is to help students attain deeper levels of understanding as measured by Bloom's taxonomy (Bloom & Krathwohl, 1956). Using these principles, we wanted to help students understand the concept of algorithm by providing students a compelling experience where they could see an algorithm run and affect what it does.

In the next section we explain our motivation for teaching artificial intelligence in a Cognitive Science course and how we selected the software to use in the study. In the following section we describe how the software works and how we used it in class. Then we give the results of our study. Finally, we place our work in context. …