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

https://doi.org/10.21585/ijcses.v1i4.19

Authors

  • Kyungbin Kwon Indiana University

Keywords:

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

Abstract

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.

Downloads

Download data is not yet available.

Author Biography

Kyungbin Kwon, Indiana University

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

References

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-0663.80.3.291 DOI: https://doi.org/10.1037/0022-0663.80.3.291

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 DOI: https://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 DOI: https://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 DOI: https://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 DOI: https://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 DOI: https://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 DOI: https://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 DOI: https://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 DOI: https://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 DOI: https://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-0663.79.3.269 DOI: https://doi.org/10.1037/0022-0663.79.3.269

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 DOI: https://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 DOI: https://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.13.2.137.14200 DOI: https://doi.org/10.1076/csed.13.2.137.14200

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 DOI: https://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 DOI: https://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 DOI: https://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 DOI: https://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 DOI: https://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 DOI: https://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 DOI: https://doi.org/10.1145/234867.234872

Published

2017-10-31

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. https://doi.org/10.21585/ijcses.v1i4.19