In School Science and Mathematics 94 (1994), pp. 176-186.

Bringing Algorithms to Life: Cooperative Computing Activities using Students as Processors

Gregory F. Bachelis
Department of Mathematics, Wayne State University

David A. James
Department of Mathematics and Statistics, University of Michigan-Dearborn

Bruce R. Maxim
Department of Computer and Information Science, University of Michigan-Dearborn

Quentin F. Stout
EECS Department, University of Michigan

Abstract: The design and analysis of algorithms is important to the understanding of basic mathematical concepts and is also at the heart of computer methods for problem solving. We describe some activities which enable a secondary school mathematics or computer science class to "bring to life" algorithms by having the students themselves act out the various parts. The activities are grouped together in modules, according to the problem they are intended to solve.

At the beginning of a class, a goal is discussed, such as sorting a list of numbers or adding large numbers. A serial algorithm, in which things occur one step at a time, is put forward. Then the class is challenged to come up with ideas to modify the algorithm so as to speed up the achievement of the goal. Pipelining, in which things are done in "assembly-line" fashion, or, more generally, parallelism, in which many steps can occur at the same time, are introduced as a means of accomplishing this. By the end of the class, the students have been led to one or more efficient parallel algorithms. At each stage, the students "act out" the algorithm at hand, with each student playing the part of an individual switch or processor. Thus the entire class is involved in the activities.

The students "cooperate" in two senses: In the planning stage, the students are cooperating as individuals, each with his or her own ideas and suggestions. When it comes time to act out the algorithm, however, they usually play the role of homogeneous processors, acting in concert as they step through the algorithm. Students learn that successful execution of their plans requires correct and timely action by all of them, and they see that many individual units each performing simple tasks can together achieve a complex goal.

Keywords: parallel algorithms, cooperation, sorting, addition, multiplication, sieving for primes, sorting, efficiency, systolic, pipelining, computer science