Novice programmerâ€™s misconception of programming reflected on problem-solving plans
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.
Bayman, P., & Mayer, R. E. (1988). Using conceptual models to teach BASIC computer programming. Journal of Educational Psychology, 80(3), 291-298. http://dx.doi.org/10.1037/0022-0618.104.22.1681
Brooks, R. E. (1990). Categories of programming knowledge and their application. International Journal of Man-Machine Studies, 33(3), 241-246. http://dx.doi.org/10.1016/s0020-7373(05)80118-x
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. http://dx.doi.org/10.2190/EC.51.2.c
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. http://dx.doi.org/10.1002/j.2168-9830.1998.tb00359.x
Google, & Gallup. (2015). Searching for Computer Science: Access and Barriers in U.S. K-12 Education. Retrieved from https://goo.gl/oX311J
Google, & Gallup. (2016). Trends in the State of Computer Science in U.S. K-12 Schools. Retrieved from http://goo.gl/j291E0
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. http://dx.doi.org/10.2190/EC.49.4.b
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. http://dx.doi.org/10.1016/j.compedu.2010.08.024
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. http://dx.doi.org/10.1145/1151954.1067453
Linn, M. C., & Dalbey, J. (1985). Cognitive consequences of Programming Instruction: Instruction, Access, and Ability. Educational Psychologist, 20(4), 191-206. http://dx.doi.org/10.1207/s15326985ep2004_4
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. http://dx.doi.org/10.1080/08993408.2011.554722
Mayer, R. E. (1981). The Psychology of How Novices Learn Computer Programming. ACM Computing Surveys, 13(1), 121-141. http://dx.doi.org/10.1145/356835.356841
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. http://dx.doi.org/10.1037/0022-0622.214.171.1249
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. http://dx.doi.org/10.1080/08886504.1997.10782199
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. http://dx.doi.org/10.2190/689T-1R2A-X4W4-29J2
Robins, A., Rountree, J., & Rountree, N. (2003). Learning and Teaching Programming: A Review and Discussion. Computer Science Education, 13(2), 137-172. http://dx.doi.org/10.1076/csed.126.96.36.19900
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. http://dx.doi.org/10.1016/j.compedu.2014.12.003
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). http://dx.doi.org/10.1177/0735633117707312
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. http://dx.doi.org/10.1007/bf00977789
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 https://nces.ed.gov/pubs2016/2016014.pdf.
Soloway, E., Bonar, J., & Ehrlich, K. (1983). Cognitive strategies and looping constructs: an empirical study. Communications of the ACM, 26(11), 853-860. http://dx.doi.org/10.1145/182.358436
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. http://dx.doi.org/10.5204/jld.v8i1.193
Whitehouse. (2016). Computer Science For All. Retrieved from https://obamawhitehouse.archives.gov/blog/2016/01/30/computer-science-all
Wing, J. M. (2006). Computational thinking. Communications of the ACM, 49(3), 33-35. http://dx.doi.org/10.1145/1118178.1118215
Winslow, L. E. (1996). Programming pedagogy - a psychological overview. ACM SIGCSE Bulletin, 28(3), 17-22. http://dx.doi.org/10.1145/234867.234872
Copyright (c) 2017 Kyungbin Kwon
This work is licensed under a Creative Commons Attribution 4.0 International License.
Authors who publish with this journal agree to the following terms:
- Authors retain copyright and grant the journal right of first publication with the work simultaneously licensed under a Creative Commons Attribution License that allows others to share the work with an acknowledgement of the work's authorship and initial publication in this journal.
- Authors are able to enter into separate, additional contractual arrangements for the non-exclusive distribution of the journal's published version of the work (e.g., post it to an institutional repository or publish it in a book), with an acknowledgement of its initial publication in this journal.
- Authors are permitted and encouraged to post their work online (e.g., in institutional repositories or on their website) prior to and during the submission process, as it can lead to productive exchanges, as well as earlier and greater citation of published work (See The Effect of Open Access).