Novice programmer’s misconception of programming reflected on problem-solving plans


  • Kyungbin Kwon Indiana University


computer science education, misconception of programming, novice programmer, computational thinking


Understanding the misconception of students is critical in that it identifies the reasons of errors students make and allows instructors to design instructions accordingly. This study investigated the mental models of programming concepts held by pre-service teachers who were novice in programming. In an introductory programming course, students were asked to solve problems that could be solved by utilizing conditional statements. They developed solution plans pseudo-code including a simplified natural language, symbols, diagrams, and so on. Sixteen solution plans of three different types of problems were analyzed. As a result, the students’ egocentric and insufficient programming concepts were identified in terms of the misuse of variables, redundancy of codes, and weak strategic knowledge. The results revealed that the students had difficulty designing solution plans that could be executed by computers. They needed instructional supports to master how to express their solution plans in the way computers run. Problem driven instructional designs for novice students were discussed.


Download data is not yet available.

Author Biography

Kyungbin Kwon, Indiana University

Assistant Professor in the department of Instructional Systems Technology at Indiana University


Bayman, P., & Mayer, R. E. (1988). Using conceptual models to teach BASIC computer programming. Journal of Educational Psychology, 80(3), 291-298. DOI:

Brooks, R. E. (1990). Categories of programming knowledge and their application. International Journal of Man-Machine Studies, 33(3), 241-246. DOI:

Chang, C.-K. (2014). Effects of Using Alice and Scratch in an Introductory Programming Course for Corrective Instruction. Journal of Educational Computing Research, 51(2), 185-204. DOI:

Chi, M. T. H., Glaser, R., & Rees, E. (1982). Expertise in Problem Solving. In R. Sternberg (Ed.), Advances in the Psychology of Human Intelligence (pp. 1–75). Hillsdale, NJ: Erlbaum.

Deek, F., Kimmel, H., & McHugh, J. A. (1998). Pedagogical Changes in the Delivery of the First-Course in Computer Science: Problem Solving, Then Programming. Journal of Engineering Education, 87(3), 313-320. DOI:

Google, & Gallup. (2015). Searching for Computer Science: Access and Barriers in U.S. K-12 Education. Retrieved from

Google, & Gallup. (2016). Trends in the State of Computer Science in U.S. K-12 Schools. Retrieved from

Kim, B., Kim, T., & Kim, J. (2013). Paper-and-Pencil Programming Strategy toward Computational Thinking for Non-Majors: Design Your Solution. Journal of Educational Computing Research, 49(4), 437-459. DOI:

Kim, M. C., & Hannafin, M. J. (2011). Scaffolding problem solving in technology-enhanced learning environments (TELEs): Bridging research and theory with practice. Computers & Education, 56(2), 403-417. DOI:

Lahtinen, E., Ala-Mutka, K., & Järvinen, H.-M. (2005). A study of the difficulties of novice programmers. ACM SIGCSE Bulletin, 37(3), 14-18. DOI:

Linn, M. C., & Dalbey, J. (1985). Cognitive consequences of Programming Instruction: Instruction, Access, and Ability. Educational Psychologist, 20(4), 191-206. DOI:

Ma, L., Ferguson, J., Roper, M., & Wood, M. (2011). Investigating and improving the models of programming concepts held by novice programmers. Computer Science Education, 21(1), 57-80. DOI:

Mayer, R. E. (1981). The Psychology of How Novices Learn Computer Programming. ACM Computing Surveys, 13(1), 121-141. DOI:

Mayer, R. E., & Fay, A. L. (1987). A chain of cognitive changes with learning to program in Logo. Journal of Educational Psychology, 79(3), 269-279. DOI:

McGill, T. J., & Volet, S. E. (1997). A Conceptual Framework for Analyzing Students’ Knowledge of Programming. Journal of Research on Computing in Education, 29(3), 276-297. DOI:

Newell, A., & Simon, H. A. (1972). Human problem solving. Oxford, England: Prentice-Hall.

Pea, R. D. (1986). Language-independent conceptual" bugs" in novice programming. Journal of Educational Computing Research, 2(1), 25-36. DOI:

Robins, A., Rountree, J., & Rountree, N. (2003). Learning and Teaching Programming: A Review and Discussion. Computer Science Education, 13(2), 137-172. DOI:

Rubio, M. A., Romero-Zaliz, R., Mañoso, C., & de Madrid, A. P. (2015). Closing the gender gap in an introductory programming course. Computers & Education, 82, 409-420. DOI:

Shi, N., Cui, W., Zhang, P., & Sun, X. (2017). Evaluating the Effectiveness Roles of Variables in the Novice Programmers Learning. Journal of Educational Computing Research, 0(0). DOI:

Shneiderman, B., & Mayer, R. (1979). Syntactic/semantic interactions in programmer behavior: A model and experimental results. International Journal of Computer & Information Sciences, 8(3), 219-238. DOI:

Snyder, T. D., de Brey, C., & Dillow, S. A. (2016). Digest of Education Statistics 2015 (NCES 2016-014). National Center for Education Statistics, Institute of Education Sciences, U.S. Department of Education. Washington, DC. Retrieved from

Soloway, E., Bonar, J., & Ehrlich, K. (1983). Cognitive strategies and looping constructs: an empirical study. Communications of the ACM, 26(11), 853-860. DOI:

Tom, M. (2015). Five C Framework: A Student-Centered Approach for Teaching Programming Courses to Students with Diverse Disciplinary Background. Journal of Learning Design, 8(1), 21-37. DOI:

Whitehouse. (2016). Computer Science For All. Retrieved from

Wing, J. M. (2006). Computational thinking. Communications of the ACM, 49(3), 33-35. DOI:

Winslow, L. E. (1996). Programming pedagogy - a psychological overview. ACM SIGCSE Bulletin, 28(3), 17-22. DOI:



How to Cite

Kwon, K. (2017). Novice programmer’s misconception of programming reflected on problem-solving plans. International Journal of Computer Science Education in Schools, 1(4), 14–24.