Abstract
Efforts to improve computer science education are underway, and teachers of computer science are challenged in introductory programming courses to help learners develop their understanding of programming and computer science. Identifying and addressing students’ misconceptions is a key part of a computer science teacher's competence. However, relevant research on this topic is not as fully developed in the computer science education field as it is in mathematics and science education. In this article, we first review relevant literature on general definitions of misconceptions and studies about students’ misconceptions and other difficulties in introductory programming. Next, we investigate the factors that contribute to the difficulties. Finally, strategies and tools to address difficulties including misconceptions are discussed.
Based on the review of literature, we found that students exhibit various misconceptions and other difficulties in syntactic knowledge, conceptual knowledge, and strategic knowledge. These difficulties experienced by students are related to many factors including unfamiliarity of syntax, natural language, math knowledge, inaccurate mental models, lack of strategies, programming environments, and teachers’ knowledge and instruction. However, many sources of students’ difficulties have connections with students’ prior knowledge. To better understand and address students’ misconceptions and other difficulties, various instructional approaches and tools have been developed. Nevertheless, the dissemination of these approaches and tools has been limited. Thus, first, we suggest enhancing the dissemination of existing tools and approaches and investigating their long-term effects. Second, we recommend that computing education research move beyond documenting misconceptions to address the development of students’ (mis)conceptions by integrating conceptual change theories. Third, we believe that developing and enhancing instructors’ pedagogical content knowledge (PCK), including their knowledge of students’ misconceptions and ability to apply effective instructional approaches and tools to address students’ difficulties, is vital to the success of teaching introductory programming.
- Marzieh Ahmadzadeh, Dave Elliman, and Colin Higgins. 2005. An analysis of patterns of debugging among novice computer science students. SIGCSE Bulletin 37, 3 (June 2005), 84--88. DOI:http://dx.doi.org/10.1145/1151954.1067472 Google ScholarDigital Library
- Amjad Altadmri and Neil C. C. Brown. 2015. 37 Million compilations: Investigating novice programming mistakes in large-scale student data. In Proceedings of the 46th ACM Technical Symposium on Computer Science Education (SIGCSE’15). ACM, New York, 522--527. DOI:http://dx.doi.org/10.1145/2676723.2677258 Google ScholarDigital Library
- John R. Anderson and Robin Jeffries. 1985. Novice LISP errors: Undetected losses of information from working memory. Human--Computer Interaction 1, 2 (1985), 107--131. DOI:http://dx.doi.org/10.1207/s15327051hci0102_2 Google ScholarDigital Library
- Tiffany Barnes and John Stamper. 2008. Toward automatic hint generation for logic proof tutoring using historical student data. In Proceedings of the 9th International Conference on Intelligent Tutoring Systems, 373--382. Google ScholarDigital Library
- Piraye Bayman and Richard E. Mayer. 1983. A diagnosis of beginning programmers' misconceptions of BASIC programming statements. Communications of the ACM 26, 9 (September 1983), 677--679. DOI:http://dx.doi.org/10.1145/358172.358408 Google ScholarDigital Library
- Piraye Bayman and Richard E. Mayer. 1988. Using conceptual models to teach BASIC computer programming. Journal of Educational Psychology 80, 3 (1988), 291--298. DOI:http://dx.doi.org/10.1037/0022-0663.80.3.291 Google ScholarCross Ref
- Brett A. Becker. 2016. An effective approach to enhancing compiler error messages. In Proceedings of the 47th ACM Technical Symposium on Computing Science Education (SIGCSE’16). ACM, New York, 126--131. DOI:http://dx.doi.org/10.1145/2839509.2844584 Google ScholarDigital Library
- Yifat Ben-David Kolikant and M. Mussai. 2008. “So my program doesn't run!” Definition, origins, and practical expressions of students’ (mis) conceptions of correctness. Computer Science Education 18, 2 (2008), 135--151. DOI:http://dx.doi.org/10.1080/08993400802156400 Google ScholarCross Ref
- Jeffrey Bonar and Elliot Soloway. 1985. Preprogramming knowledge: a major source of misconceptions in novice programmers. Human-Computer Interaction 1, 2 (1985), 133--161. DOI:http://dx.doi.org/ 10.1207/s15327051hci0102_3 Google ScholarDigital Library
- Paola Britos, Elizabeth J. Rey, Dario Rodriguez, and Ramon Garcia-Martinez. 2008. Work in progress-programming misunderstandings discovering process based on intelligent data mining tools. In Proceedings of the 38th Annual Frontiers in Education Conference. IEEE, F4H-1--F4H-2. DOI:http://dx.doi.org/10.1109/FIE.2008.4720499 Google ScholarCross Ref
- Neil C. C. Brown and Amjad Altadmri. 2014. Investigating novice programming mistakes: Educator beliefs vs. student data. In Proceedings of the 10th Annual Conference on International Computing Education Research (ICER’14). ACM, New York, 43--50. DOI:http://dx.doi.org/10.1145/2632320.2632343 Google ScholarDigital Library
- Neil C. C. Brown, Michael Kölling, Davin McCall, and Ian Utting. 2014. Blackbox: A large scale repository of novice programmers' activity. In Proceedings of the 45th ACM Technical Symposium on Computer Science Education (SIGCSE’14). ACM, New York, 223--228. DOI:http://dx.doi.org/10.1145/2538862.2538924 Google ScholarDigital Library
- Amy Bruckman and Elizabeth Edwards. 1999. Should we leverage natural-language knowledge? An analysis of user errors in a natural-language-style programming language. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (CHI’99). ACM, New York, 207--214. DOI:http://dx.doi.org/10.1145/302979.303040 Google ScholarDigital Library
- Bureau of Labor Statistics, US Department of Labor. 2015. Occupational Outlook Handbook, 2014-15 edition, Computer and Information Research Scientists. Retrieved February 10, 2016, from http://www.bls.gov/ooh/computer-and-information-technology/computer-and-information-research-scientists.htm.Google Scholar
- Matthew Butler and Michael Morgan. 2007. Learning challenges faced by novice programming students studying high level and low feedback concepts. In Proceedings of Ascilite Singapore 2007. ascilite, Tugun, QLD, Australia, 99--107.Google Scholar
- José J. Canas, Maria T. Bajo, and Pilar Gonzalvo. 1994. Mental models and computer programming. International Journal of Human-Computer Studies 40 (1994), 795--811. DOI:http://dx.doi.org/10.1006/ijhc.1994.1038 Google ScholarDigital Library
- Michael Clancy. 2004. Misconceptions and attitudes that interfere with learning to program. In Computer Science Education Research. London: Taylor 8 Francis Group, 85--100.Google Scholar
- Michael J. Clancy and Marcia C. Linn. 1999. Patterns and pedagogy. In The Proceedings of the 30th SIGCSE Technical Symposium on Computer Science Education (SIGCSE’99). ACM, New York, 37--42. DOI:http://dx.doi.org/10.1145/299649.299673 Google ScholarDigital Library
- John Clement. 1993. Using bridging analogies and anchoring intuitions to deal with students’ preconceptions in physics. Journal of Research in Science Teaching 30, 10 (1993), 1241--1257. DOI:http://dx.doi.org/10.1002/tea.3660301007 Google ScholarCross Ref
- Malcolm Corney, Donna Teague, Alireza Ahadi, and Raymond Lister. 2012. Some empirical results for neo-Piagetian reasoning in novice programmers and the relationship to code explanation questions. In Proceedings of the 14th Australasian Computing Education Conference - Volume 123 (ACE’12), Michael de Raadt and Angela Carbone (Eds.), Vol. 123. Australian Computer Society, Darlinghurst, Australia, 77--86.Google Scholar
- Catherine H. Crouch and Eric Mazur. 2001. Peer instruction: Ten years of experience and results. American Journal of Physics 69, 9 (2001), 970--977. Google ScholarCross Ref
- Holger Danielsiek, Wolfgang Paul, and Jan Vahrenhold. 2012. Detecting and understanding students' misconceptions related to algorithms and data structures. In Proceedings of the 43rd ACM Technical Symposium on Computer Science Education (SIGCSE’12). ACM, New York, 21--26. DOI:http://dx.doi.org/10.1145/2157136.2157148 Google ScholarDigital Library
- Simon P. Davies. 1993. Models and theories of programming strategy. International Journal of Man-Machine Studies 39, 2 (1993), 237--267. Google ScholarDigital Library
- Paul Denny, Andrew Luxton-Reilly, and Dave Carpenter. 2014. Enhancing syntax error messages appears ineffectual. In Proceedings of the 2014 Conference on Innovation 8 Technology in Computer Science Education (ITiCSE’14). ACM, New York, 273--278. DOI:http://dx.doi.org/10.1145/2591708.2591748 Google ScholarDigital Library
- Michael de Raadt. 2008. Teaching Programming Strategies Explicitly to Novice Programmers. PhD Dissertation. University of Southern Queensland, Australia.Google Scholar
- Luis De-La-Fuente-Valentín, Abelardo Pardo, and Carlos D. Kloos. 2013. Addressing drop-out and sustained effort issues with large practical groups using an automated delivery and assessment system. Computers 8 Education 61 (2013), 33--42. DOI:http://dx.doi.org/10.1016/j.compedu.2012.09.004 Google ScholarDigital Library
- Andrea A. diSessa. 1993. Toward an epistemology of physics. Cognition and Instruction 10, 2--3, (1993), 105--225.Google ScholarCross Ref
- Andrea A. diSessa. 2013. A bird's-eye view of the “pieces” vs “coherence” controversy (from the “pieces” side of the fence). In International Handbook of Research on Conceptual Change. Taylor and Francis, New York, 31--48. Google ScholarCross Ref
- Andrea A. diSessa. 2014. The construction of causal schemes: Learning mechanisms at the knowledge level. Cognitive Science 38, 5 (2014), 795--850. Google ScholarCross Ref
- Anna K. Dominguez, Kalina Yacef, and James R. Curran (June 2010). Data mining for individualised hints in eLearning. In Proceedings of the 3rd International Conference on Educational Data Mining, 91--100.Google Scholar
- Christopher Douce, David Livingstone, and James Orwell. 2005. Automatic test-based assessment of programming: A review. Journal on Educational Resources in Computing 5, 3, Article 4 (September 2005). DOI:http://dx.doi.org/10.1145/1163405.1163409 Google ScholarDigital Library
- Dimitrios Doukakis, Maria Grigoriadou, and Grammatiki Tsaganou. 2007. Understanding the programming variable concept with animated interactive analogies. In Proceedings of the 8th Hellenic European Research on Computer Mathematics 8 Its Applications Conference (HERCMA’07).Google Scholar
- Benedict du Boulay. 1986. Some difficulties of learning to program. Journal of Educational Computing Research 2, 1 (1986), 57--73. DOI:http://dx.doi.org/10.2190/3LFX-9RRF-67T8-UVK9 Google ScholarCross Ref
- M. Ducassé and A.-M. Emde. 1988. A review of automated debugging systems: knowledge, strategies and techniques. In Proceedings of the 10th International Conference on Software Engineering (ICSE’88). IEEE Computer Society Press, Los Alamitos, CA, 162--171.Google ScholarDigital Library
- Alireza Ebrahimi. 1994. Novice programmer errors: Language constructs and plan composition. International Journal of Human-Computer Studies 41, 4 (1994), 457--480. DOI:http://dx.doi.org/10.1006/ijhc.1994.1069 Google ScholarDigital Library
- Ruhama Even. 1993. Subject-matter knowledge and pedagogical content knowledge: Prospective secondary teachers and the function concept. Journal for Research in Mathematics Education 24, 2 (1993), 94--116. DOI:http://dx.doi.org/10.2307/749215 Google ScholarCross Ref
- Kathi Fisler. 2014. The recurring rainfall problem. In Proceedings of the 10th Annual Conference on International Computing Education Research (ICER’14). ACM, New York, 35--42. DOI:http://dx.doi.org/10.1145/2632320.2632346 Google ScholarDigital Library
- Shriram Krishnamurthi, and Janet Siegmund. 2016. Modernizing plan-composition studies. In Proceedings of the 47th ACM Technical Symposium on Computing Science Education (SIGCSE’16). ACM, New York, 211--216. DOI:http://dx.doi.org/10.1145/2839509.2844556 Google ScholarDigital Library
- Sue Fitzgerald, Gary Lewandowski, Renee McCauley, Laurie Murphy, Beth Simon, Lynda Thomas, and Carol Zander. 2008. Debugging: Finding, fixing and flailing, a multi-institutional study of novice debuggers. Computer Science Education 18, 2 (2008), 93--116. DOI:http://dx.doi.org/10.1080/08993400802114508 Google ScholarCross Ref
- Ann E. Fleury. 1991. Parameter passing: The rules the students construct. In Proceedings of the 22nd SIGCSE Technical Symposium on Computer Science Education (SIGCSE’91). ACM, New York, 283--286. DOI:http://dx.doi.org/10.1145/107004.107066 Google ScholarDigital Library
- David Ginat, Eti Menashe, and Amal Taya. 2013. Novice difficulties with interleaved pattern composition. In International Conference on Informatics in Schools: Situation, Evolution, and Perspectives. Springer, Berlin, 57--67. Google ScholarDigital Library
- David Ginat and Ronit Shmallo. 2013. Constructive use of errors in teaching CS1. In Proceeding of the 44th ACM Technical Symposium on Computer Science Education (SIGCSE’13). ACM, New York, 353--358. DOI:http://dx.doi.org/10.1145/2445196.2445300 Google ScholarDigital Library
- David Ginat, Eyal Shifroni, and Eti Menashe. 2011. Transfer, cognitive load, and program design difficulties. In Proceedings of 5th International Conference on Informatics in Schools: Situation, Evolution and Perspectives (ISSEP’11), 165--176. Google ScholarDigital Library
- Sandy Garner, Patricia Haden, and Anthony Robins. 2005. My program is correct but it doesn't run: A preliminary investigation of novice programmers' problems. In Proceedings of the 7th Australasian Conference on Computing Education - Volume 42 (ACE’05), Alison Young and Denise Tolhurst (Eds.). Australian Computer Society, Darlinghurst, Australia, 173--180.Google ScholarDigital Library
- Alex Gerdes, Johan T. Jeuring, and Bastiaan J. Heeren. 2010. Using strategies for assessment of programming exercises. In Proceedings of the 41st ACM Technical Symposium on Computer Science Education (SIGCSE’10). ACM, New York, 441--445. DOI:http://dx.doi.org/10.1145/1734263.1734412 Google ScholarDigital Library
- Ken Goldman, Paul Gross, Cinda Heeren, Geoffrey L. Herman, Lisa Kaczmarczyk, and Craig Zilles. 2010. Setting the scope of concept inventories for introductory computing subjects. Transactions on Computing Education 10, 2, Article 5 (June 2010), 29 pages. DOI:http://dx.doi.org/10.1145/1789934.1789935 Google ScholarDigital Library
- T. R. G. Green. 1977. Conditional program statements and their comprehensibility to professional programmers. Journal of Occupational Psychology 50, 2 (1977), 93--109. DOI:http://dx.doi.org/10.1111/j.2044-8325.1977.tb00363.x Google ScholarCross Ref
- Philip J. Guo. 2013. Online python tutor: Embeddable web-based program visualization for cs education. In Proceedings of the 44th ACM Technical Symposium on Computer Science Education (SIGCSE’13). ACM, New York, 579--584. DOI:http://dx.doi.org/10.1145/2445196.2445368 Google ScholarDigital Library
- Mark Guzdial. 1995. Centralized mindset: A student problem with object-oriented programming. In Proceedings of the 26th SIGCSE Technical Symposium on Computer Science Education (SIGCSE’95), Curt M. White, James E. Miller, and Judy Gersting (Eds.). ACM, New York, 182--185. DOI:http://dx.doi.org/10.1145/199688.199772 Google ScholarDigital Library
- Mark Guzdial. 2015. Learner-centered design of computing education: Research on computing for everyone. In Synthesis Lectures on Human-Centered Informatics, 1--165.Google Scholar
- Bruria Haberman and Yifat Ben-David Kolikant. 2001. Activating “black boxes” instead of opening “zipper” - A method of teaching novices basic CS concepts. In Proceedings of the 6th Annual Conference on Innovation and Technology in Computer Science Education (ITiCSE’01). ACM, New York, 41--44. DOI:http://dx.doi.org/10.1145/377435.377464 Google ScholarDigital Library
- Frank Halasz and Thomas P. Moran. 1982. Analogy considered harmful. In Proceedings of the 1982 Conference on Human Factors in Computing Systems (CHI’82). ACM, New York, 383--386. DOI:http://dx.doi.org/10.1145/800049.801816 Google ScholarDigital Library
- Simon Holland, Robert Griffiths, and Mark Woodman. 1997. Avoiding object misconceptions. In Proceedings of the 28th SIGCSE Technical Symposium on Computer Science Education (SIGCSE’97), James E. Miller (Ed.). ACM, New York, 131—134. DOI:http://dx.doi.org/10.1145/268084.268132 Google ScholarDigital Library
- Maria Hristova, Ananya Misra, Megan Rutter, and Rebecca Mercuri. 2003. Identifying and correcting Java programming errors for introductory computer science students. In Proceedings of the 34th SIGCSE Technical Symposium on Computer Science Education (SIGCSE’03). ACM, New York, 153--156. DOI:http://dx.doi.org/10.1145/611892.611956 Google ScholarDigital Library
- James Jackson, Michael Cobb, and Curtis Carver. 2005. Identifying top Java errors for novice programmers. In Proceedings of the 35th Annual Frontiers in Education Conference (FIE’05), T4C-T4C. Google ScholarCross Ref
- David H. Jonassen. 1991. Objectivism versus constructivism: Do we need a new philosophical paradigm? Educational Technology Research 8 Development 39, 3 (1991), 5--14.Google Scholar
- Lisa C. Kaczmarczyk, Elizabeth R. Petrick, J. Philip East, and Geoffrey L. Herman. 2010. Identifying student misconceptions of programming. In Proceedings of the 41st ACM Technical Symposium on Computer Science Education (SIGCSE’10). ACM, New York, 107--111. DOI:http://dx.doi.org/10.1145/1734263.1734299 Google ScholarDigital Library
- Irvin R. Katz and John R. Anderson. 1987. Debugging: An analysis of bug-location strategies. Human.-Computer Interactions 3, 4 (December 1987), 351--399. DOI:http://dx.doi.org/10.1207/s15327051hci0304_2Google ScholarDigital Library
- Caitlin Kelleher and Randy Pausch. 2005. Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers. ACM Computing Surveys 37, 2 (June 2005), 83--137. DOI:http://dx.doi.org/10.1145/1089733.1089734 Google ScholarDigital Library
- Leopold E. Klopfer, Audrey B. Champagne, and Richard F. Gunstone. 1983. Naive knowledge and science learning. Research in Science 8 Technological Education 1, 2 (1983), 173--183. DOI:http://dx.doi.org/10.1080/0263514830010205 Google ScholarCross Ref
- Andrew J. Ko and Brad A. Myers. 2005. A framework and methodology for studying the causes of software errors in programming systems. Journal of Visual Languages 8 Computing 16, 1 (2005), 41--84. DOI:http://dx.doi.org/10.1016/j.jvlc.2004.08.003 Google ScholarDigital Library
- Michael Kölling. 2010. The Greenfoot programming environment. Transactions on Computing Education 10, 4, Article 14 (November 2010), 21 pages. DOI:http://dx.doi.org/10.1145/1868358.1868361 Google ScholarDigital Library
- Wanda M. Kunkle and Robert B. Allen. 2016. The impact of different teaching approaches and languages on student learning of introductory programming concepts. Transactions on Computing Education 16, 1, Article 3 (January 2016), 26 pages. DOI:http://dx.doi.org/10.1145/2785807 Google ScholarCross Ref
- Douglas Larkin. 2012. Misconceptions about “misconceptions”: Preservice secondary science teachers' views on the value and role of student ideas. Science Education 96, 5 (2012), 927--959. DOI:http://dx.doi.org/10.1002/sce.21022 Google ScholarCross Ref
- Marcia Linn. 1985. The cognitive consequences of programming instruction in classrooms. Educational Researcher 14, 5 (1985), 14--29.Google ScholarCross Ref
- Raymond Lister. 2011. Concrete and other neo-Piagetian forms of reasoning in the novice programmer. In Proceedings of the 13th Australasian Computing Education Conference - Volume 114 (ACE’11), John Hamer and Michael de Raadt (Eds.). Australian Computer Society, Darlinghurst, Australia, 9--18. Google ScholarDigital Library
- Raymond Lister, Elizabeth S. Adams, Sue Fitzgerald, William Fone, John Hamer, Morten Lindholm, Robert McCartney, Jan Erik Moström, Kate Sanders, Otto Seppälä, Beth Simon, and Lynda Thomas. 2004. A multi-national study of reading and tracing skills in novice programmers. In Working Group Reports from ITiCSE on Innovation and Technology in Computer Science Education (ITiCSE-WGR’04). ACM, New York, 119--150. DOI:http://dx.doi.org/10.1145/1044550.1041673 Google ScholarDigital Library
- Raymond Lister, Colin Fidge, and Donna Teague. 2009. Further evidence of a relationship between explaining, tracing and writing skills in introductory programming. In Proceedings of the 14th Annual ACM SIGCSE Conference on Innovation and Technology in Computer Science Education (ITiCSE’09). ACM, New York, 161--165. DOI:http://dx.doi.org/10.1145/1562877.1562930 Google ScholarDigital Library
- Raymond Lister, Beth Simon, Errol Thompson, Jacqueline L. Whalley, and Christine Prasad. 2006. Not seeing the forest for the trees: Novice programmers and the SOLO taxonomy. In Proceedings of the 11th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education (ITICSE’06). ACM, New York, 118--122. DOI:http://dx.doi.org/10.1145/1140124.1140157Google ScholarDigital Library
- Mike Lopez, Jacqueline Whalley, Phil Robbins, and Raymond Lister. 2008. Relationships between reading, tracing and writing skills in introductory programming. In Proceedings of the 4th International Workshop on Computing Education Research (ICER’08). ACM, New York, 101--112. DOI:http://dx.doi.org/10.1145/1404520.1404531 Google ScholarDigital Library
- Linxiao Ma. 2007. Investigating and Improving Novice Programmers' Mental Models of Programming Concepts. PhD Dissertation. University of Strathclyde, UK. Google ScholarCross Ref
- April C. Maskiewicz and Jennifer E. Lineback. 2013. Misconceptions are “so yesterday!”. CBE-Life Sciences Education 12, 3 (2013), 352--356. DOI:http://dx.doi.org/10.1187/cbe.13-01-0014 Google ScholarDigital Library
- Richard E. Mayer. 1981. The psychology of how novices learn computer programming. ACM Computing Surveys 13, 1 (March 1981), 121--141. DOI:http://dx.doi.org/10.1145/356835.356841 Google ScholarCross Ref
- Richard E. Mayer and Anne L. Fay. 1987. A chain of cognitive changes with learning to program in Logo. Journal of Educational Psychology 79, 3 (1987), 269--279. Google ScholarCross Ref
- Davin McCall and Michael Kölling. 2014. Meaningful categorisation of novice programmer errors. In 2014 IEEE Frontiers in Education Conference Proceedings (FIE‘14). IEEE, 1--8. Google ScholarCross Ref
- Renee McCauley, Sue Fitzgerald, Gary Lewandowski, Laurie Murphy, Beth Simon, Lynda Thomas, and Carol Zander. 2008. Debugging: A review of the literature from an educational perspective. Computer Science Education 18, 2 (2008), 67--92. DOI:http://dx.doi.org/10.1080/08993400802114581 Google ScholarDigital Library
- Michael McCracken, Vicki Almstrum, Danny Diaz, Mark Guzdial, Dianne Hagan, Yifat Ben-David Kolikant, Cary Laxer, Lynda Thomas, Ian Utting, and Tadeusz Wilusz. 2001. A multi-national, multi-institutional study of assessment of programming skills of first-year CS students. SIGCSE Bulletin 33, 4 (December 2001), 125--180. DOI:http://dx.doi.org/10.1145/572139.572181Google ScholarDigital Library
- Tanya J. McGill and Simone E. Volet. 1997. A conceptual framework for analyzing students’ knowledge of programming. Journal of Research on Computing in Education 29, 3 (1997), 276--297. DOI:http://dx.doi.org/10.1080/08886504.1997.10782199 Google ScholarCross Ref
- Craig S. Miller. 2014. Metonymy and reference-point errors in novice programming. Computer Science Education 24, 2--3 (2014), 123--152.Google ScholarCross Ref
- Orna Muller. 2005. Pattern oriented instruction and the enhancement of analogical reasoning. In Proceedings of the 1st International Workshop on Computing Education Research (ICER’05). ACM, New York, 57--67. DOI:http://dx.doi.org/10.1145/1089786.1089792 Google ScholarDigital Library
- Orna Muller, David Ginat, and Bruria Haberman. 2007. Pattern-oriented instruction and its influence on problem decomposition and solution construction. In Proceedings of the 12th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education (ITiCSE’07). ACM, New York, 151--155. DOI:http://dx.doi.org/10.1145/1268784.1268830 Google ScholarDigital Library
- Brad A. Myers, John F. Pane, and Andy Ko. 2004. Natural programming languages and environments. Communications of the ACM 47, 9 (September 2004), 47--52. DOI:http://dx.doi.org/10.1145/1015864.1015888 Google ScholarDigital Library
- Gökhan Özdemir and Douglas Clark. 2007. An overview of conceptual change theories. Eurasia Journal of Mathematics, Science 8 Technology Education 3, 4 (2007), 351--361.Google Scholar
- Roy D. Pea. 1986. Language-independent conceptual “bugs” in novice programming. Journal of Educational Computing Research 2, 1 (1986), 25--36. DOI:http://dx.doi.org/10.2190/689T-1R2A-X4W4-29J2 Google ScholarCross Ref
- Arnold Pears, Stephen Seidman, Lauri Malmi, Linda Mannila, Elizabeth Adams, Jens Bennedsen, Marie Devlin, and James Paterson. 2007. A survey of literature on the teaching of introductory programming. In Working Group Reports on ITiCSE on Innovation and Technology in Computer Science Education (ITiCSE-WGR’07), Janet Carter and June Amillo (Eds.). ACM, New York, 204--223. DOI:http://dx.doi.org/10.1145/1345443.1345441 Google ScholarDigital Library
- D. N. Perkins and Fay Martin. 1986. Fragile knowledge and neglected strategies in novice programmers. In Empirical Studies of Programmers: First Workshop, 213--229.Google Scholar
- Leo Porter, Cynthia Bailey Lee, and Beth Simon. 2013. Halving fail rates using peer instruction: A study of four computer science courses. In Proceeding of the 44th ACM Technical Symposium on Computer Science Education (SIGCSE’13). ACM, New York, 177--182. DOI:http://dx.doi.org/10.1145/2445196.2445250 Google ScholarDigital Library
- George J. Posner, Kenneth A. Strike, Peter W. Hewson, and William A. Gertzog. 1982. Accommodation of a scientific conception: Toward a theory of conceptual change. Science Education 66, 2 (1982), 211--227. DOI:http://dx.doi.org/10.1002/sce.3730660207 Google ScholarCross Ref
- Yizhou Qian and James D. Lehman. 2016. Correlates of success in introductory programming: A study with middle school students. Journal of Education and Learning 5, 2 (2016), 73--83. Google ScholarCross Ref
- Noa Ragonis and Mordechai Ben-Ari. 2005. A long-term investigation of the comprehension of OOP concepts by novices. Computer Science Education 15, 3 (2005), 203--221. Google ScholarCross Ref
- Mitchel Resnick, John Maloney, Andrés Monroy-Hernández, Natalie Rusk, Evelyn Eastmond, Karen Brennan, Amon Millner, Eric Rosenbaum, Jay Silver, Brian Silverman, and Yasmin Kafai. 2009. Scratch: Programming for all. Communications of the ACM 52, 11 (November 2009), 60--67. DOI:http://dx.doi.org/10.1145/1592761.1592779 Google ScholarDigital Library
- Robert S. Rist. 1989. Schema creation in programming. Cognitive Science 13, 3 (1989), 389--414. Google ScholarCross Ref
- Anthony Robins, Patricia Haden, and Sandy Garner. 2006. Problem distributions in a CS1 course. In Proceedings of the 8th Australasian Conference on Computing Education - Volume 52 (ACE’06), Denise Tolhurst and Samuel Mann (Eds.). Australian Computer Society, Darlinghurst, Australia, 165--173.Google Scholar
- Anthony Robins, Janet Rountree, and Nathan Rountree. 2003. Learning and teaching programming: A review and discussion. Computer Science Education 13, 2 (2003), 137--172. Google ScholarCross Ref
- Kelly Rivers and Kenneth R. Koedinger. 2017. Data-driven hint generation in vast solution spaces: A self-improving python programming tutor. International Journal of Artificial Intelligence in Education 27, 1 (2017), 37--64. DOI: https://doi.org/10.1007/s40593-015-0070-z Google ScholarCross Ref
- Philip M. Sadler, Gerhard Sonnert, Harold P. Coyle, Nancy Cook-Smith, and Jaimie L. Miller. 2013. The influence of teachers’ knowledge on student learning in middle school physical science classrooms. American Educational Research Journal 50, 5 (2013), 1020--1049. DOI:http://dx.doi.org/10.3102/0002831213477680 Google ScholarCross Ref
- Jorma Sajaniemi and Marja Kuittinen. 2005. An experiment on using roles of variables in teaching introductory programming. Computer Science Education 15, 1 (2005), 59--82. Google ScholarCross Ref
- Jorma Sajaniemi and Raquel N. Prieto. 2005. Roles of variables in experts’ programming knowledge. In Proceedings of the 17th Annual Workshop of the Psychology of Programming Interest Group (PPIG’05), 145--159.Google Scholar
- Jorma Sajaniemi, Marja Kuittinen, and Taina Tikansalo. 2008. A study of the development of students' visualizations of program state during an elementary object-oriented programming course. Journal on Educational Resources in Computing 7, 4, Article 3 (January 2008), 31 pages. DOI:http://dx.doi.org/10.1145/1316450.1316453 Google ScholarDigital Library
- Michael J. Sanger and Thomas J. Greenbowe. 1997. Common student misconceptions in electrochemistry: Galvanic, electrolytic, and concentration cells. Journal of Research in Science Teaching 34, 4 (1997), 377--398. Google ScholarCross Ref
- Kate Sanders and Lynda Thomas. 2007. Checklists for grading object-oriented CS1 programs: Concepts and misconceptions. SIGCSE Bulletin 39, 3 (June 2007), 166--170. DOI:http://dx.doi.org/10.1145/1269900.1268834 Google ScholarDigital Library
- Simon. 2011. Assignment and sequence: Why some students can't recognise a simple swap. In Proceedings of the 11th Koli Calling International Conference on Computing Education Research (Koli Calling’11). ACM, New York, 10--15. DOI:http://dx.doi.org/10.1145/2094131.2094134 Google ScholarDigital Library
- Simon. 2013. Soloway's rainfall problem has become harder. In Proceedings of the 2013 Learning and Teaching in Computing and Engineering (LATICE’13). IEEE Computer Society, 130--135. DOI:http://dx.doi.org/10.1109/LaTiCE.2013.44 Google ScholarDigital Library
- Beth Simon, Michael Kohanfars, Jeff Lee, Karen Tamayo, and Quintin Cutts. 2010. Experience report: Peer instruction in introductory computing. In Proceedings of the 41st ACM Technical Symposium on Computer Science Education (SIGCSE’10). ACM, New York, 341--345. DOI:http://dx.doi.org/10.1145/1734263.1734381 Google ScholarDigital Library
- Teemu Sirkia. 2012. Recognizing Programming Misconceptions: An Analysis of the Data Collected from the UUhistle Program Simulation Tool. Master's thesis, Aalto University, Espoo, Finland.Google Scholar
- Teemu Sirkia and Juha Sorva. 2012. Exploring programming misconceptions: An analysis of student mistakes in visual program simulation exercises. In Proceedings of the 12th Koli Calling International Conference on Computing Education Research (Koli Calling’12). ACM, New York, 19--28. DOI:http://dx.doi.org/10.1145/2401796.2401799 Google ScholarDigital Library
- D. Sleeman, Ralph T. Putnam, Juliet Baxter, and Laiani Kuspa. 1986. Pascal and high school students: A study of errors. Journal of Educational Computing Research 2, 1 (1986), 5--23. DOI:http://dx.doi.org/10.2190/2XPP-LTYH-98NQ-BU77 Google ScholarCross Ref
- John P. Smith, Andrea A. diSessa, and Jeremy Roschelle. 1994. Misconceptions reconceived: A constructivist analysis of knowledge in transition. Journal of the Learning Sciences 3, 2 (1994), 115--163. DOI:http://dx.doi.org/10.1207/s15327809jls0302_1 Google ScholarCross Ref
- Michelle K. Smith, William B. Wood, Wendy K. Adams, Carl Wieman, Jennifer K. Knight, Nancy Guild, and Tin Tin Su. 2009. Why peer discussion improves student performance on in-class concept questions. Science 323, 5910 (2009), 122--124. Google ScholarCross Ref
- Elliot Soloway. 1986. Learning to program = learning to construct mechanisms and explanations. Communications of the ACM 29, 9 (September 1986), 850--858. DOI:http://dx.doi.org/10.1145/6592.6594 Google ScholarDigital Library
- Juha Sorva. 2012. Visual Program Simulation in Introductory Programming Education. PhD Dissertation. Aalto University, Espoo, Finland.Google Scholar
- Juha Sorva. 2013. Notional machines and introductory programming education. Transactions on Computer Education 13, 2, Article 8 (July 2013), 31 pages. DOI:http://dx.doi.org/10.1145/2483710.2483713 Google ScholarDigital Library
- Juha Sorva, Ville Karavirta, and Lauri Malmi. 2013. A review of generic program visualization systems for introductory programming education. Transactions on Computer Education 13, 4, Article 15 (November 2013), 64 pages. DOI:http://dx.doi.org/10.1145/2490822 Google ScholarDigital Library
- James C. Spohrer and Elliot Soloway. 1986. Novice mistakes: Are the folk wisdoms correct? Communications of the ACM 29, 7 (July 1986), 624--632. DOI:http://dx.doi.org/10.1145/6138.6145 Google ScholarDigital Library
- Keith S. Taber. 2014. Alternative conceptions/frameworks/misconceptions. In Encyclopedia of Science Education Vol. A. Springer, New York, 37--41. DOI:http://dx.doi.org/10.1007/978-94-007-6165-0_88-2 Google ScholarCross Ref
- Cynthia Taylor, Daniel Zingaro, Leo Porter, Kevin C. Webb, Cynthia Bailey Lee, and M. Clancy. 2014. Computer science concept inventories: Past and future. Computer Science Education 24, 4 (2014), 253--276. Google ScholarCross Ref
- Donna Teague, Malcolm Corney, Alireza Ahadi, and Raymond Lister. 2013. A qualitative think aloud study of the early neo-piagetian stages of reasoning in novice programmers. In Proceedings of the 15th Australasian Computing Education Conference - Volume 136 (ACE’13), Angela Carbone and Jacqueline Whalley (Eds.), Vol. 136. Australian Computer Society, Darlinghurst, Australia, 87--95.Google Scholar
- Donna Teague and Raymond Lister. 2014. Programming: Reading, writing and reversing. In Proceedings of the 2014 Conference on Innovation 8 Technology in Computer Science Education (ITiCSE’14). ACM, New York, 285--290. DOI:http://dx.doi.org/10.1145/2591708.2591712 Google ScholarDigital Library
- Mariana Teif and Orit Hazzan. 2006. Partonomy and taxonomy in object-oriented thinking: Junior high school students' perceptions of object-oriented basic concepts. In Working Group Reports on ITiCSE on Innovation and Technology in Computer Science Education (ITiCSE-WGR’06). ACM, New York, 55--60. DOI:http://dx.doi.org/10.1145/1189215.1189170 Google ScholarDigital Library
- Allison E. Tew. 2010. Assessing Fundamental Introductory Computing Concept Knowledge in a Language Independent Manner. PhD Dissertation. Georgia Institute of Technology, Atlanta, GA.Google Scholar
- Miki K. Tomita. 2008. Examining the Influence of Formative Assessment on Conceptual Accumulation and Conceptual Change. PhD Dissertation. Stanford University, Palo Alto, CA. UMI Number: 3343949.Google Scholar
- Juhani E. Tuovinen and John Sweller. 1999. A comparison of cognitive load associated with discovery learning and worked examples. Journal of Educational Psychology 91, 2 (1999), 334--341. Google ScholarCross Ref
- Jacqueline L. Whalley, Raymond Lister, Errol Thompson, Tony Clear, Phil Robbins, P. K. Ajith Kumar, and Christine Prasad. 2006. An Australasian study of reading and comprehension skills in novice programmers, using the bloom and SOLO taxonomies. In Proceedings of the 8th Australasian Conference on Computing Education - Volume 52 (ACE’06), Denise Tolhurst and Samuel Mann (Eds.). Australian Computer Society, Darlinghurst, Australia, 243--252.Google ScholarDigital Library
- Vesa Vainio and Jorma Sajaniemi. 2007. Factors in novice programmers' poor tracing skills. In Proceedings of the 12th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education (ITiCSE’07). ACM, New York, 236--240. DOI:http://dx.doi.org/10.1145/1268784.1268853 Google ScholarDigital Library
- Anne Venables, Grace Tan, and Raymond Lister. 2009. A closer look at tracing, explaining and code writing skills in the novice programmer. In Proceedings of the 5th International Workshop on Computing Education Research Workshop (ICER’09). ACM, New York, 117--128. DOI:http://dx.doi.org/10.1145/1584322.1584336 Google ScholarDigital Library
- Stella Vosniadou, 1994. Capturing and modeling the process of conceptual change. Learning and Instruction 4, 1, (1994), 45--69.Google ScholarCross Ref
- Stella Vosniadou, 2013. Conceptual change in learning and instruction: The framework theory approach. In International Handbook of Research on Conceptual Change. Taylor and Francis, New York, 11--30. Google ScholarCross Ref
- Stella Vosniadou and Irini Skopeliti. 2014. Conceptual change from the framework theory side of the fence. Science 8 Education 23, 7, (2014), 1427--1445.Google Scholar
- David Weintrop and Uri Wilensky. 2015. Using commutative assessments to compare conceptual understanding in blocks-based and text-based programs. In Proceedings of the 11th Annual International Conference on International Computing Education Research, 101--110. Google ScholarDigital Library
- Claes Wohlin. 2014. Guidelines for snowballing in systematic literature studies and a replication in software engineering. In Proceedings of the 18th International Conference on Evaluation and Assessment in Software Engineering (EASE’14). ACM, New York, Article 38, 10. DOI:http://dx.doi.org/10.1145/2601248.2601268 Google ScholarDigital Library
- Claes Wohlin, Per Runeson, Paulo Anselmo da Mota Silveira Neto, Emelie Engström, Ivan do Carmo Machado, and Eduardo Santana De Almeida. 2013. On the reliability of mapping studies in software engineering. Journal of Systems and Software 86, 10, (2013), 2594--2610. DOI:http://dx.doi.org/10.1016/j.jss.2013.04.076 Google ScholarCross Ref
- Songwen Xu and Yam San Chee. 2003. Transformation-based diagnosis of student programs for programming tutoring systems. IEEE Transactions on Software Engineering 29, 4 (2003), 360--384. DOI:http://dx.doi.org/10.1109/TSE.2003.1191799 Google ScholarDigital Library
Index Terms
- Students’ Misconceptions and Other Difficulties in Introductory Programming: A Literature Review
Recommendations
Notional machines and introductory programming education
This article brings together, summarizes, and comments on several threads of research that have contributed to our understanding of the challenges that novice programmers face when learning about the runtime dynamics of programs and the role of the ...
Using Data to Understand Difficulties of Learning to Program: A Study with Chinese Middle School Students
CompEd '19: Proceedings of the ACM Conference on Global Computing EducationComputing education has been expanding into K-12 schools in many countries. The new national curriculum standards in China are going to include computational thinking as a core literacy for every student and make computer programming as a required ...
Emerging from the pandemic: instructor reflections and students’ perceptions on an introductory programming course in blended learning
AbstractTeaching an introductory programming course to first-year students has long been a challenge for many college instructors. The COVID-19 pandemic, which caused unprecedented shifts in learning modality across the globe, has worsened the learning ...
Comments