skip to main content
research-article
Public Access

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

Published: 27 October 2017 Publication History

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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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. 10.1207/s15327051hci0102_3
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[23]
Simon P. Davies. 1993. Models and theories of programming strategy. International Journal of Man-Machine Studies 39, 2 (1993), 237--267.
[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.
[25]
Michael de Raadt. 2008. Teaching Programming Strategies Explicitly to Novice Programmers. PhD Dissertation. University of Southern Queensland, Australia.
[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.
[27]
Andrea A. diSessa. 1993. Toward an epistemology of physics. Cognition and Instruction 10, 2--3, (1993), 105--225.
[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.
[29]
Andrea A. diSessa. 2014. The construction of causal schemes: Learning mechanisms at the knowledge level. Cognitive Science 38, 5 (2014), 795--850.
[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.
[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).
[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).
[33]
Benedict du Boulay. 1986. Some difficulties of learning to program. Journal of Educational Computing Research 2, 1 (1986), 57--73.
[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.
[35]
Alireza Ebrahimi. 1994. Novice programmer errors: Language constructs and plan composition. International Journal of Human-Computer Studies 41, 4 (1994), 457--480.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[47]
T. R. G. Green. 1977. Conditional program statements and their comprehensibility to professional programmers. Journal of Occupational Psychology 50, 2 (1977), 93--109.
[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.
[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.
[50]
Mark Guzdial. 2015. Learner-centered design of computing education: Research on computing for everyone. In Synthesis Lectures on Human-Centered Informatics, 1--165.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[62]
Michael Kölling. 2010. The Greenfoot programming environment. Transactions on Computing Education 10, 4, Article 14 (November 2010), 21 pages.
[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.
[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.
[65]
Marcia Linn. 1985. The cognitive consequences of programming instruction in classrooms. Educational Researcher 14, 5 (1985), 14--29.
[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.
[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.
[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.
[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.
[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.
[71]
Linxiao Ma. 2007. Investigating and Improving Novice Programmers' Mental Models of Programming Concepts. PhD Dissertation. University of Strathclyde, UK.
[72]
April C. Maskiewicz and Jennifer E. Lineback. 2013. Misconceptions are “so yesterday!”. CBE-Life Sciences Education 12, 3 (2013), 352--356.
[73]
Richard E. Mayer. 1981. The psychology of how novices learn computer programming. ACM Computing Surveys 13, 1 (March 1981), 121--141.
[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.
[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.
[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.
[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.
[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.
[79]
Craig S. Miller. 2014. Metonymy and reference-point errors in novice programming. Computer Science Education 24, 2--3 (2014), 123--152.
[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.
[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.
[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.
[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.
[84]
Roy D. Pea. 1986. Language-independent conceptual “bugs” in novice programming. Journal of Educational Computing Research 2, 1 (1986), 25--36.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[92]
Robert S. Rist. 1989. Schema creation in programming. Cognitive Science 13, 3 (1989), 389--414.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[110]
Elliot Soloway. 1986. Learning to program = learning to construct mechanisms and explanations. Communications of the ACM 29, 9 (September 1986), 850--858.
[111]
Juha Sorva. 2012. Visual Program Simulation in Introductory Programming Education. PhD Dissertation. Aalto University, Espoo, Finland.
[112]
Juha Sorva. 2013. Notional machines and introductory programming education. Transactions on Computer Education 13, 2, Article 8 (July 2013), 31 pages.
[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.
[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.
[115]
Keith S. Taber. 2014. Alternative conceptions/frameworks/misconceptions. In Encyclopedia of Science Education Vol. A. Springer, New York, 37--41.
[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.
[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.
[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.
[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.
[120]
Allison E. Tew. 2010. Assessing Fundamental Introductory Computing Concept Knowledge in a Language Independent Manner. PhD Dissertation. Georgia Institute of Technology, Atlanta, GA.
[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.
[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.
[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.
[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.
[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.
[126]
Stella Vosniadou, 1994. Capturing and modeling the process of conceptual change. Learning and Instruction 4, 1, (1994), 45--69.
[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.
[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.
[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.
[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.
[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.
[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.

Cited By

View all

Index Terms

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

Recommendations

Comments

Information & Contributors

Information

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
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
Accepted: 01 March 2017
Revised: 01 March 2017
Received: 01 May 2016
Published in TOCE Volume 18, Issue 1

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Misconceptions
  2. conceptual change
  3. constructivism
  4. difficulties
  5. introductory programming

Qualifiers

  • Research-article
  • Research
  • Refereed

Funding Sources

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2,684
  • Downloads (Last 6 weeks)373
Reflects downloads up to 23 Dec 2024

Other Metrics

Citations

Cited By

View all

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media