A correct understanding about how computers run code is mandatory in order to effectively learn to program. Lectures have historically been used in programming courses to teach how computers execute code, and students are assessed through traditional evaluation methods, such as exams. Constructivism learning theory objects to students’ passiveness during lessons, and traditional quantitative methods for evaluating a complex cognitive process such as understanding. Constructivism proposes complimentary techniques, such as conceptual contraposition and colloquies. We enriched lectures of a “Programming II” (CS2) course combining conceptual contraposition with program memory tracing, then we evaluated students’ understanding of programming concepts through colloquies. Results revealed that these techniques applied to the lecture are insufficient to help students develop satisfactory mental models of the C++ notional machine, and colloquies behaved as the most comprehensive traditional evaluations conducted in the course.
Metaphors of ordinary concepts are intensively used in computer science for naming abstract concepts and for designing users interfaces. Metaphors are mappings from a source domain (e.g., a stream) to a target domain (e.g., a sequence of bytes). Typically computing phenomena are explained using incoherent discourses at the source domain, formed by metaphors taken from a diversity of origins. Nonetheless, versatility of metaphors allows for the creation of coherent discourses in the origin domain that map the target computing discourse, and we call them allegories. The limited number of existing studies about this topic has compared only textual allegories, visual allegories, and the traditional unconnected metaphors. Although their findings are heterogeneous, equal effectiveness is the most frequent empirical result between these three types of metaphors. Furthermore, we have not found any study about oral allegories, in spite of oral being the most used modality for metaphors in computer science education. This article experimentally compares the effects of oral allegories and oral metaphors on a complex problem‐solving task. As in previous studies, our results did not find any significant differences on support or detriment of oral allegories. Our results support new metaphor theories posing that the context significantly influences the metaphors’ efficacy, and encourages future research about the interaction between context and allegories.
Learning to program a computer is a difficult task for many Computer Science students. Constructivism theory states that learning is unavoidably done through association of new concepts with existing ones. In order to learn abstract programming concepts, like memory indirection and execution threads, students must build them upon life experience concepts. We hypothesize that easing the association process by using metaphors, and letting students program them directly through video games, can foster learning of abstract concepts. We propose a methodology to design video games under this principle, and provide an example using metaphors for difficult abstract programming concepts. KeywordsLearning; programming language; video game; metaphor PLAYING WITH METAPHORSConstructivism theory states learning is done by association of new concepts with existing ones [1]. When learning computer programming, students must mentally construct abstract concepts like pointers and threads, by associating them with other concepts acquired in their life experience. Because abstract concepts cannot be experienced by the senses, students must resort to imagination in order to make these associations. When left to the imagination alone, these associations can be weak or incorrect.Association of abstract computer concepts can be established with ordinary concepts through metaphors. Teachers can use verbal or illustrated metaphors, as Waguespack did with programming concepts [3], and Forišek and Steinová with algorithms [2], without empirical evaluation of their strategies. Constructivism theory states students learn in active state; in other words working directly with the metaphors in order to deduce, by themselves, the fundamental principles of abstract concepts through ordinary concepts. We hypothesize that representing metaphors of abstract programming concepts in a video game, and letting students program them directly, can help students learn them better.Video game related systems such as Robocode, Greenfoot, CodeCombat, and CodeSpells, have been developed for learning computer programming. But their game concepts (tanks, crates...) are not direct metaphors of abstract programming concepts. We propose a methodology for developing video games where objects represent simultaneously both worlds: a familiar real life concept and an abstract programming concept. When students follow natural gameplay rules for those objects, they automatically learn abstract programming rules. We illustrate our five step methodology with an example of a puppetry game: Choose the abstract concepts to represent with metaphors.We chose the concepts of concurrency and memory handling in C++ because they were reported as the most difficult and useful topics to learn by our surveyed students. 2. Find colloquial concepts that resemble abstract ones. We found puppetry fits the selected concepts ( Figure 1). A puppeteer resembles an execution thread that follows a script (code segment). Puppets placed in the scenery (dynamic heap segment) must be controlled throu...
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
customersupport@researchsolutions.com
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.