OCR
2 MULTI-SENSORY COMPUTER SCIENCE EDUCATION During our first three research studies, we focused on supporting CS education based on the principles of multi-sensory learning. In this chapter, we analyse why teaching-learning computer programming is a challenging task and why multi-sensory approaches could enhance this educational process. The methods and instruments we designed cover the following areas: loop structures, recursive algorithms, sorting strategies. 2.1 Difficulties in teaching-learning programming Since the early days of programming education, teachers have signalled problems regarding students’ programming abilities. Researchers (cognitive scientists, learning theorists, computer scientists, etc.) have identified specific difficulties related to learning to program (Mead et al., 2006). For example, du Boulay (1986) focused on identifying problematic areas and common mistakes made in them. According to Spohrer and Soloway (1986), Winslow (1996), and Soloway, Bonar, and Ehrlich (1983), most students have problems in combining algorithmic structures into programs. Navrat (1994) emphasizes the abstractness of the programming process as a possible factor contributing to students’ difficulties in learning to program. The common (disappointing) conclusions of several studies in the early 2000s were: students cannot program, trace programs, or design programs at acceptable levels (McCracken et al., 2001; Lister et al., 2004; Eckerdal, McCartney, Moström, Ratcliffe, & Zander, 2006). Another conclusion of that research period was that the problem is both long-standing and has an international character. Research on learning scientific concepts also yields insights into why understanding complex information is difficult. Many scientific domains (also including mathematics) deal with abstract concepts that students have difficulty comprehending. Mastery of these concepts requires that students build flexible and runnable mental models. Frequently, the scientific models describe phenomena for which students have no real-life referents and incorporate invisible factors and abstractions. This is particularly true in the case of learning algorithms, which is also characterized by a high-level abstractness (Dede, Salzman, Loftin, & Sprague, 1999). The following chain of ideas confirms the multiple abstract character of programming: the programming language itself can be considered as a first-level abstraction, the computer program will be the second abstraction level, and the