OCR
3 SEEING, HEARING, AND TOUCHING COMPUTER ALGORITHMS (STUDY 1) Since computer algorithms are abstract processes, instructors use a variety of instruments to make them perceptible to learners. The most common educational tools use visual representations. A next, guite challenging step could be making the algorithms perceptible for the auditory sensory. In addition, connecting tactile senses to the learning environment can be even more challenging. Our first study focused on this topic (Kátai, Juhász, g Adorjáni, 2008). In this chapter, we present (1) the multisensory method and tool we developed to support the teaching-learning process of elementary algorithms and (2) the investigation we performed. 3.1 Anatomy of simple algorithms The majority of algorithms have a “loop skeleton”, its structure of loops. The instructions that represent the nucleus of the loops can be seen as the “meat parts” of the algorithm. In what follows, we recommend a two-step method for teaching and learning simple algorithms: 1. By analysing the task, we establish the loop skeleton of the algorithm that solves the problem. 2. We fill up the loop skeleton with the adequate instructions. Since the second step presumes the first, the teacher — when the problem solving takes place under his/her supervision — should not allow the implementation until the students comprehend clearly the loop skeleton of the algorithm. In the following, we will illustrate the above method through a sample problem. Problem: Write a C/C++ program that reads natural numbers from the keyboard until a zero number appears and then verifies whether the sum of the products of the digits of the prime numbers is prime or not (see Figure 3.1). We can help students to make the second step with the following Pölya-type (1945) question sequence: — What are the input/output data of the problem? — What kind of variables (data structures) should we use to store the input data? — Where do the input data reading and the output data writing have to take place in the framework of the algorithm? — What sub-problems do the “inner loops” have to solve? — What auxiliary variables are required to solve the sub-problems? — What (the nucleus of the loop) and while (the condition of the loop) do the particular loop statements have to repeat?