@article {988, title = {Effects of oral metaphors and allegories on programming problem solving}, journal = {Computer Applications in Engineering Education}, volume = {26}, year = {2018}, pages = {852-871}, keywords = {allegory, experiment, metaphor, problem solving}, doi = {10.1002/cae.21927}, url = {https://onlinelibrary.wiley.com/doi/abs/10.1002/cae.21927}, author = {Hidalgo-C{\'e}spedes, Jeisson and Mar{\'\i}n-Ravent{\'o}s, Gabriela and Lara-Villagr{\'a}n, Vladimir and Villalobos-Fern{\'a}ndez, Luis} } @conference {500, title = {Experiences Designing and Validating a Gamified Development Environment for Learning Programming}, booktitle = {Proceedings of the 14th Latin American and Caribbean Conference for Engineering and Technology }, year = {2016}, address = {San Jos{\'e}, Costa Rica}, abstract = {

Learning to program in a programming language is a difficult task for Computer Science students. Vygotsky{\textquoteright}s constructivism theory states that learning is unavoidably done through association of new concepts with existing ones. Based on this theory, students must build upon life experience concepts, abstract computer concepts (like memory indirection and execution threads), and programming language concepts (like pointers and threads). We hypothesize that we can ease the association process and improve the learning of abstract concepts by using metaphors, letting students program them directly through gamified development environments. We propose a methodology to design gamified development environments supporting the concept association principle. We provide an example of a gamified development environment idea using metaphors for learning abstract programming concepts reported as difficult to learn in a student survey. The gamified development environment idea was validated by Programming II (CS2) professors through two focus groups with slightly positive results.

}, keywords = {learning, metaphor, programming language, video game}, url = {http://laccei.org/LACCEI2016-SanJose/meta/RP183.html}, author = {Hidalgo-C{\'e}spedes, Jeisson and Mar{\'\i}n-Ravent{\'o}s, Gabriela and Lara-Villagr{\'a}n, Vladimir}, editor = {Larrondo, Maria and Alvarez, Humberto} } @conference {397, title = {Allegories for Learning Abstract Programming Concepts}, booktitle = {Proceedings of the Tenth Annual Conference on International Computing Education Research}, year = {2014}, month = {08/2014}, publisher = {ACM}, organization = {ACM}, address = {New York, NY, USA}, abstract = {

Constructivism theory states that learning is unavoidably done through association of new concepts with existing ones. Although programming concepts are abstract metaphors of some colloquial concepts, they seem to be not enough to overcome learning difficulties. We hypothesize that interrelated systems of metaphors (allegories) of abstract programming concepts can ease the association process and improve student learning. Our research introduces allegoric development environments and proposes to experimentally evaluate their effects on learning of programming concepts reported as difficult by students.

}, keywords = {allegory, learning, metaphor, programming language}, isbn = {978-1-4503-2755-8}, doi = {10.1145/2632320.2632326}, url = {http://doi.acm.org/10.1145/2632320.2632326}, author = {Hidalgo-C{\'e}spedes, Jeisson} } @conference {461, title = {Playing with Metaphors: A Methodology to Design Video Games for Learning Abstract Programming Concepts}, booktitle = {Proceedings of the 2014 Conference on Innovation \& Technology in Computer Science Education}, year = {2014}, publisher = {ACM}, organization = {ACM}, address = {Uppsala, Sweaden}, abstract = {

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.

}, keywords = {learning, metaphor, programming language, video game}, isbn = {978-1-4503-2833-3}, doi = {10.1145/2591708.2602661}, url = {http://doi.acm.org/10.1145/2591708.2602661}, author = {Hidalgo-C{\'e}spedes, Jeisson and Mar{\'\i}n-Ravent{\'o}s, Gabriela and Lara-Villagr{\'a}n, Vladimir} }