Possible contributions of analogical reasoning to the problem of abstraction and transfer in programming teaching
Abstract
This review article explores a possible contribution of research on analogical reasoning to the problem of transfer in programming -in the transition between the learning of concepts in middle school and their application at university. The ease with which students construct programs in multimedia environments carries the disadvantage of translating these concepts into “real” text-based languages, probably because not enough work has been done on the problem level. According to research in teaching programming, students tend to have greater difficulty at higher levels of abstraction (understanding the problem) than at lower levels (such as coding). Comparing problems through analogical reasoning is a strategy from cognitive psychology extended to various disciplines. We suggest that its application in programming teaching could contribute to solving the problem of the difficulty of abstraction at the problem level and facilitate the transfer.
References
Armoni, M., & Ben-Ari, M. (2013). Computer Science Concepts in Scratch. Department of Science Teaching , Weizmann Institute of Science. https://stwww1.weizmann.ac.il/scratch/scratch_en/
Armoni, M., Meerbaum-Salant, O., & Ben-Ari, M. (2015). From Scratch to “Real” Programming. ACM Transactions on Computing Education, 14(4), 1–15. https://doi.org/10.1145/2677087
Barnett, S. M., & Ceci, S. J. (2002). When and where do we apply what we learn?: A taxonomy for far transfer. Psychological Bulletin, 128(4), 612–637. https://doi.org/10.1037/0033-2909.128.4.612
Bell, T., Rosamond, F., & Casey, N. (2012). Computer Science Unplugged and Related Projects in Math and Computer Science Popularization. En H. L. Bodlaender, R. Downey, F. V. Fomin, & D. Marx (Eds.), The Multivariate Algorithmic Revolution and Beyond. Lecture Notes in Computer Science, vol 7370 (pp. 398–456). Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-30891-8_18
Burgoon, E. M., Henderson, M. D., & Markman, A. B. (2013). There Are Many Ways to See the Forest for the Trees: A Tour Guide for Abstraction. Perspectives on Psychological Science, 8(5), 501–520. https://doi.org/10.1177/1745691613497964
Çakiroğlu, Ü., Sude, S., B., K., Sari, A., Yildiz, S., & Öztürk, M. (2018). Exploring perceived cognitive load in learning programming via Scratch. Research in Learning Technology, 26. https://doi.org/10.25304/rlt.v26.1888
Catrambone, R., & Holyoak, K. J. (1989). Overcoming contextual limitations on problem-solving transfer. Journal of Experimental Psychology: Learning, Memory, and Cognition, 15(6), 1147–1156. https://doi.org/10.1037/0278-7393.15.6.1147
Chi, M. T. H., Feltovich, P. J., & Glaser, R. (1981). Categorization and representation of physics problems by experts and novices. Cognitive Science, 5(2), 121–152. http://www.sciencedirect.com/science/article/pii/S0364021381800298
Dahl, O.-J., Dijkstra, E. W., & Hoare, C. A. R. (1972). Structured programming. Academic Press Ltd.
Denning, P.J., Comer, D. E., Gries, D., Mulder, M. C., Tucker, A., Turner, A. J., & Young, P. R. (1989). Computing as a discipline. Computer, 22(2), 63–70. https://doi.org/10.1109/2.19833
Denning, Peter J. (1985). The Science of Computing: What is computer science? American Scientist, 73(1), 16–19. http://www.jstor.org/stable/27853057
Denning, Peter J. (2003). Great Principles of Computing. Communications of the ACM, 46(11), 15–20. https://doi.org/10.1145/948383.948400
Denning, Peter J. (2017). Computational thinking in science.
Factorovich, P., & O’Connor, F. S. (2016). Cuaderno para el docente. Actividades para aprender a programar. Fundación Sadosky. http://programar.gob.ar/descargas/manual-docente-descarga-web.pdf
Faries, J. M., & Reiser, B. J. (1988). Access and Use of Previous Solutions in a Problem Solving Situation. https://apps.dtic.mil/dtic/tr/fulltext/u2/a224717.pdf
Franklin, D., Hill, C., Dwyer, H. A., Hansen, A. K., Iveland, A., & Harlow, D. B. (2016). Initialization in Scratch. Proceedings of the 47th ACM Technical Symposium on Computing Science Education - SIGCSE ’16, 217–222. https://doi.org/10.1145/2839509.2844569
Gentner, D. (1983). Structure-mapping: A theoretical framework for analogy. Cognitive Science, 7(2), 155–170. https://doi.org/https://doi.org/10.1016/S0364-0213(83)80009-3
Gentner, D. (1989). The mechanisms of analogical transfer. En S. Vosniadou & A. Ortony (Eds.), Similarity and Analogical Reasoning (pp. 199–242). Cambridge University Press.
Gentner, D., Loewenstein, J., & Thompson, L. (2003). Learning and transfer: A general role for analogical encoding. Journal of Educational Psychology, 95(2), 393–408. https://doi.org/10.1037/0022-0663.95.2.393
Gentner, D., & Markman, A. B. (1997). Structure mapping in analogy and similarity. American Psychologist, 52(1), 45–56. https://doi.org/10.1037/0003-066X.52.1.45
Gentner, D., Rattermann, M. J., & Forbus, K. D. (1993). The Roles of Similarity in Transfer: Separating Retrievability From Inferential Soundness. Cognitive Psychology, 25(4), 524–575. https://doi.org/10.1006/cogp.1993.1013
Gick, M. L., & Holyoak, K. J. (1980). Analogical problem solving. Cognitive Psychology, 12(3), 306–355. https://doi.org/10.1016/0010-0285(80)90013-4
Gick, M. L., & Holyoak, K. J. (1983). Schema induction and analogical transfer. Cognitive Psychology, 15(1), 1–38. https://doi.org/10.1016/0010-0285(83)90002-6
Goldstone, R. L., & Son, J. Y. (2005). The Transfer of Scientific Principles Using Concrete and Idealized Simulations. Journal of the Learning Sciences, 14(1), 69–110. https://doi.org/10.1207/s15327809jls1401_4
Harel, I., & Papert, S. (1991). Constructionism. Ablex Publishing.
Hazzan, O. (1999). Reducing Abstraction Level When Learning Abstract Algebra Concepts. Educational Studies in Mathematics, 40(1), 71–90. https://doi.org/10.1023/A:1003780613628
Hazzan, O. (2003). How Students Attempt to Reduce Abstraction in the Learning of Mathematics and in the Learning of Computer Science. Computer Science Education, 13(2), 95–122. https://doi.org/10.1076/csed.13.2.95.14202
Hazzan, O. (2008). Reflections on teaching abstraction and other soft ideas. ACM SIGCSE Bulletin, 40(2), 40–43. https://doi.org/10.1145/1383602.1383631
Hazzan, O., & Kramer, J. (2007). Abstraction in Computer Science & Software Engineering: A Pedagogical Perspective. Frontier Journal, 4(1), 6–14.
Hazzan, O., & Kramer, J. (2016). Assessing abstraction skills. Communications of the ACM, 59(12), 43–45. https://doi.org/10.1145/2926712
Hoc, J., Green, T., Samurçay, R., & Gilmore, D. (1990). Part 1: Theoretical and Methodological Issues. En J. M. Hoc (Ed.), Psychology of Programming. London: Academic.
Holyoak, K. J., & Thagard, P. (1989). Analogical Mapping by Constraint Satisfaction. Cognitive Science, 13(3), 295–355. https://doi.org/10.1207/s15516709cog1303_1
Kafai, Y., & Resnick, M. (1996). Constructionism in Practice: Designing, Thinking, and Learning in a Digital World (Y. Kafai & M. Resnick (eds.)). Routledge.
Kurtz, K. J., & Loewenstein, J. (2007). Converging on a new role for analogy in problem solving and retrieval: when two problems are better than one. Memory & Cognition, 35(2), 334–341. https://doi.org/10.3758/BF03193454
Malan, D., & Leitner, H. (2007). Scratch for Budding Computer Scientists. SIGCSE 2007: 38th SIGCSE Technical Symposium on Computer Science Education, 39. https://doi.org/10.1145/1227310.1227388
Maloney, J. H., Peppler, K., Kafai, Y., Resnick, M., & Rusk, N. (2008). Programming by Choice: Urban Youth Learning Programming with Scratch. Proceedings of the 39th SIGCSE technical symposium on Computer science education - SIGCSE ’08, 367–371. https://doi.org/10.1145/1352135.1352260
Meerbaum-Salant, O., Armoni, M., & Ben-Ari, M. (2011). Habits of programming in scratch. Proceedings of the 16th annual joint conference on Innovation and technology in computer science education - ITiCSE ’11, 168–172. https://doi.org/10.1145/1999747.1999796
Meerbaum-Salant, O., Armoni, M., & Ben-Ari, M. (Moti). (2013). Learning computer science concepts with Scratch. Computer Science Education, 23(3). https://doi.org/10.1080/08993408.2013.832022
Meerbaum-Salant, O., Armoni, M., & Ben-Ari, M. (Moti). (2010). Learning computer science concepts with Scratch. Proceedings of the Sixth international workshop on Computing education research - ICER ’10, 69–76. https://doi.org/10.1145/1839594.1839607
Minervino, R. A., Olguín, V., & Trench, M. (2017). Promoting interdomain analogical transfer: When creating a problem helps to solve a problem. Memory & Cognition, 45(2), 221–232. https://doi.org/10.3758/s13421-016-0655-2
Nassi, I., & Shneiderman, B. (1973). Flowchart techniques for structured programming. ACM SIGPLAN Notices, 8(8), 12–26. https://doi.org/10.1145/953349.953350
Papert, S. (1980). Mindstorms: Children, Computers, and Powerful Ideas. Basic Books.
Papert, S., & Harel, I. (1991). Situating Constructionism. En I. Harel & S. Papert (Eds.), Constructionism (p. 518). Ablex Publishing Corporation.
Perkins, D. N., & Salomon, G. (1988). Teaching for Transfer. Educational Leadership, 46(1), 22–32. https://eric.ed.gov/?id=EJ376242
Perrenet, J. C. (2010). Levels of thinking in computer science: Development in bachelor students’ conceptualization of algorithm. Education and Information Technologies, 15(2), 87–107. https://doi.org/10.1007/s10639-009-9098-8
Perrenet, J., Groote, J. F., & Kaasenbrood, E. (2005). Exploring students’ understanding of the concept of algorithm. Proceedings of the 10th annual SIGCSE conference on Innovation and technology in computer science education - ITiCSE ’05, 64–68. https://doi.org/10.1145/1067445.1067467
Perrenet, J., & Kaasenbrood, E. (2006). Levels of abstraction in students’ understanding of the concept of algorithm. ACM SIGCSE Bulletin, 38(3), 270–274. https://doi.org/10.1145/1140123.1140196
Resnick, M., Maloney, J., Monroy-Hernández, A., Rusk, N., Eastmond, E., Brennan, K., Millner, A., Rosenbaum, E., Silver, J., Silverman, B., & Kafai, Y. (2009). Scratch: programming for all. Communications of the ACM, 52(11), 60–67. https://doi.org/10.1145/1592761.1592779
Resnick, M., Myers, B., Nakakoji, K., Shneiderman, B., Pausch, R., & Eisenberg, M. (2005). Design Principles for Tools to Support Creative Thinking. Report of Workshop on Creativity Support Tools, 20, 25–36.
Seehorn, D. (2011). K-12 Estándares para las Ciencias de la Computación. En Asociación de Maestros de Ciencias de la Computación (CSTA).
Shneiderman, B., Mayer, R., McKay, D., & Heller, P. (1977). Experimental investigations of the utility of detailed flowcharts in programming. Communications of the ACM, 20(6), 373–381. https://doi.org/10.1145/359605.359610
Statter, D., & Armoni, M. (2016). Teaching Abstract Thinking in Introduction to Computer Science for 7th Graders. Proceedings of the 11th Workshop in Primary and Secondary Computing Education on ZZZ - WiPSCE ’16, 80–83. https://doi.org/10.1145/2978249.2978261
Trench, M., & Minervino, R. A. (2017). Cracking the Problem of Inert Knowledge. Psychology of Learning and Motivation, 66, 1–41. https://doi.org/10.1016/bs.plm.2016.11.001
Turkle, S., & Papert, S. (1990). Epistemological Pluralism: Styles and Voices within the Computer Culture. Signs: Journal of Women in Culture and Society, 16(1), 128–157. https://doi.org/10.1086/494648
Wing, J. M. (2006). Computational thinking. Communications of the ACM, 49(3), 33–35. https://doi.org/10.1145/1118178.1118215
Wing, J. M. (2008). Computational thinking and thinking about computing. Philosophical Transactions of the Royal Society A: Mathematical, Physical and Engineering Sciences, 366(1881), 3717–3725. https://doi.org/10.1098/rsta.2008.0118
Wirth, N. (1976). Algorithms and Data Structures. Pearson Education.










