skip to main content
research-article
Public Access

Students’ Misconceptions and Other Difficulties in Introductory Programming: A Literature Review

Published:27 October 2017Publication History
Skip Abstract Section

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarCross RefCross Ref
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarCross RefCross Ref
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle ScholarCross RefCross Ref
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle Scholar
  15. 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 ScholarGoogle Scholar
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. 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 ScholarGoogle Scholar
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. 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 ScholarGoogle ScholarCross RefCross Ref
  20. 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 ScholarGoogle Scholar
  21. 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 ScholarGoogle ScholarCross RefCross Ref
  22. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  23. Simon P. Davies. 1993. Models and theories of programming strategy. International Journal of Man-Machine Studies 39, 2 (1993), 237--267. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. Michael de Raadt. 2008. Teaching Programming Strategies Explicitly to Novice Programmers. PhD Dissertation. University of Southern Queensland, Australia.Google ScholarGoogle Scholar
  26. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  27. Andrea A. diSessa. 1993. Toward an epistemology of physics. Cognition and Instruction 10, 2--3, (1993), 105--225.Google ScholarGoogle ScholarCross RefCross Ref
  28. 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 ScholarGoogle ScholarCross RefCross Ref
  29. Andrea A. diSessa. 2014. The construction of causal schemes: Learning mechanisms at the knowledge level. Cognitive Science 38, 5 (2014), 795--850. Google ScholarGoogle ScholarCross RefCross Ref
  30. 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 ScholarGoogle Scholar
  31. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  32. 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 ScholarGoogle Scholar
  33. 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 ScholarGoogle ScholarCross RefCross Ref
  34. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  35. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  36. 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 ScholarGoogle ScholarCross RefCross Ref
  37. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  38. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  39. 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 ScholarGoogle ScholarCross RefCross Ref
  40. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  41. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  42. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  43. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  44. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  45. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  46. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  47. 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 ScholarGoogle ScholarCross RefCross Ref
  48. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  49. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  50. Mark Guzdial. 2015. Learner-centered design of computing education: Research on computing for everyone. In Synthesis Lectures on Human-Centered Informatics, 1--165.Google ScholarGoogle Scholar
  51. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  52. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  53. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  54. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  55. 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 ScholarGoogle ScholarCross RefCross Ref
  56. 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 ScholarGoogle Scholar
  57. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  58. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  59. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  60. 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 ScholarGoogle ScholarCross RefCross Ref
  61. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  62. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  63. 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 ScholarGoogle ScholarCross RefCross Ref
  64. 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 ScholarGoogle ScholarCross RefCross Ref
  65. Marcia Linn. 1985. The cognitive consequences of programming instruction in classrooms. Educational Researcher 14, 5 (1985), 14--29.Google ScholarGoogle ScholarCross RefCross Ref
  66. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  67. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  68. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  69. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  70. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  71. Linxiao Ma. 2007. Investigating and Improving Novice Programmers' Mental Models of Programming Concepts. PhD Dissertation. University of Strathclyde, UK. Google ScholarGoogle ScholarCross RefCross Ref
  72. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  73. 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 ScholarGoogle ScholarCross RefCross Ref
  74. 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 ScholarGoogle ScholarCross RefCross Ref
  75. 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 ScholarGoogle ScholarCross RefCross Ref
  76. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  77. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  78. 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 ScholarGoogle ScholarCross RefCross Ref
  79. Craig S. Miller. 2014. Metonymy and reference-point errors in novice programming. Computer Science Education 24, 2--3 (2014), 123--152.Google ScholarGoogle ScholarCross RefCross Ref
  80. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  81. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  82. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  83. 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 ScholarGoogle Scholar
  84. 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 ScholarGoogle ScholarCross RefCross Ref
  85. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  86. 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 ScholarGoogle Scholar
  87. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  88. 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 ScholarGoogle ScholarCross RefCross Ref
  89. 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 ScholarGoogle ScholarCross RefCross Ref
  90. 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 ScholarGoogle ScholarCross RefCross Ref
  91. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  92. Robert S. Rist. 1989. Schema creation in programming. Cognitive Science 13, 3 (1989), 389--414. Google ScholarGoogle ScholarCross RefCross Ref
  93. 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 ScholarGoogle Scholar
  94. 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 ScholarGoogle ScholarCross RefCross Ref
  95. 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 ScholarGoogle ScholarCross RefCross Ref
  96. 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 ScholarGoogle ScholarCross RefCross Ref
  97. 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 ScholarGoogle ScholarCross RefCross Ref
  98. 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 ScholarGoogle Scholar
  99. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  100. 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 ScholarGoogle ScholarCross RefCross Ref
  101. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  102. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  103. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  104. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  105. 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 ScholarGoogle Scholar
  106. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  107. 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 ScholarGoogle ScholarCross RefCross Ref
  108. 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 ScholarGoogle ScholarCross RefCross Ref
  109. 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 ScholarGoogle ScholarCross RefCross Ref
  110. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  111. Juha Sorva. 2012. Visual Program Simulation in Introductory Programming Education. PhD Dissertation. Aalto University, Espoo, Finland.Google ScholarGoogle Scholar
  112. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  113. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  114. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  115. 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 ScholarGoogle ScholarCross RefCross Ref
  116. 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 ScholarGoogle ScholarCross RefCross Ref
  117. 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 ScholarGoogle Scholar
  118. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  119. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  120. Allison E. Tew. 2010. Assessing Fundamental Introductory Computing Concept Knowledge in a Language Independent Manner. PhD Dissertation. Georgia Institute of Technology, Atlanta, GA.Google ScholarGoogle Scholar
  121. 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 ScholarGoogle Scholar
  122. 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 ScholarGoogle ScholarCross RefCross Ref
  123. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  124. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  125. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  126. Stella Vosniadou, 1994. Capturing and modeling the process of conceptual change. Learning and Instruction 4, 1, (1994), 45--69.Google ScholarGoogle ScholarCross RefCross Ref
  127. 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 ScholarGoogle ScholarCross RefCross Ref
  128. 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 ScholarGoogle Scholar
  129. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  130. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  131. 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 ScholarGoogle ScholarCross RefCross Ref
  132. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Students’ Misconceptions and Other Difficulties in Introductory Programming: A Literature Review

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in

Full Access

  • Published in

    cover image ACM Transactions on Computing Education
    ACM Transactions on Computing Education  Volume 18, Issue 1
    March 2018
    127 pages
    EISSN:1946-6226
    DOI:10.1145/3155324
    Issue’s Table of Contents

    Copyright © 2017 ACM

    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    • Published: 27 October 2017
    • Revised: 1 March 2017
    • Accepted: 1 March 2017
    • Received: 1 May 2016
    Published in toce Volume 18, Issue 1

    Permissions

    Request permissions about this article.

    Request Permissions

    Check for updates

    Qualifiers

    • research-article
    • Research
    • Refereed

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader