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 edu¬
cational 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 chal¬
lenging. 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 implemen¬
tation 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 key¬
board 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?