Analyzing the Impact of Programming Mistakes on Students' Programming Abilities
Resumo
Despite all the research on students' misconceptions in introductory programming courses, there is still a lot to understand about how they make and correct mistakes. The reviewed works investigate code as a final, static artifact, but this does not tell the whole story about the students' mistakes. With this study, we take the first step toward an attempt to close this gap. By capturing granular states of the coding process, we collected and analyzed data in an experiment with twenty-two novice students aged 14 to 16. With the experiment, we found the most common issues in the students' code. This enabled us to know which mistakes may prevent them from reaching a correct solution, and which will not interfere but may show an understanding problem in core programming concepts. This experiment precedes the development of an approach to help the teacher or teaching assistant in providing personalized and directed help to the students in programming courses.
Referências
Basnet, R., Payne, L., Doleck, T., Lemay, D., and Bazelais, P. (2018). Exploring bi-modality in introductory computer science performance distributions. Eurasia Journal of Mathematics, Science and Technology Education, 14.
Bulmer, J., Pinchbeck, A., and Hui, B. (2018). Visualizing code patterns in novice programmers. In Proceedings of the 23rd Western Canadian Conference on Computing Education, page 7. ACM.
De Oliveira, M.G., Ciarelli, P.M., and Oliveira, E. (2013). Recommendation of programming activities by multi-label classification for a formative assessment of students. Expert Systems with Applications, 40(16):6641–6651.
Denny, P., Luxton-Reilly, A., and Tempero, E. (2012). All syntax errors are not equal. In Proceedings of the 17th ACM annual conference on Innovation and technology in computer science education, pages 75–80. ACM.
Ettles, A., Luxton-Reilly, A., and Denny, P. (2018). Common logic errors made by novice programmers. In Proceedings of the 20th Australasian Computing Education Conference, pages 83–89. ACM.
Hristova, M., Misra, A., Rutter, M., and Mercuri, R. (2003). Identifying and correcting java programming errors for introductory computer science students. In ACM SIGCSE Bulletin, volume 35, pages 153–156. ACM.
Kadekar, H.B.M., Sohoni, S., and Craig, S.D. (2018). Effects of error messages on students’ ability to understand and fix programming errors. In 2018 IEEE Frontiers in Education Conference (FIE), pages 1–8.
Kohn, T. (2019). The error behind the message: Finding the cause of error messages in python. In Proceedings of the 50th ACM Technical Symposium on Computer Science Education, SIGCSE’19, pages 524–530, New York, NY, USA. ACM.
Liu, D. and Petersen, A. (2019). Static analyses in python programming courses. In Proceedings of the 50th ACM Technical Symposium on Computer Science Education, SIGCSE’19, pages 666–671, New York, NY, USA. ACM.
McCall, D. and K¨olling, M. (2014). Meaningful categorisation of novice programmer errors. In 2014 IEEE Frontiers in Education Conference (FIE) Proceedings, pages 1–8. IEEE.
Qian, Y. and Lehman, J. (2017). Students’ misconceptions and other difficulties in introductory programming: A literature review. ACM Trans. Comput. Educ., 18(1):1:1–1:24.
Smith, R. and Rixner, S. (2019). The error landscape: Characterizing the mistakes of novice programmers. In Proceedings of the 50th ACM Technical Symposium on Computer Science Education, SIGCSE’19, pages 538–544, New York, NY, USA. ACM.
Spacco, J., Denny, P., Richards, B., Babcock, D., Hovemeyer, D., Moscola, J., and Duvall, R. (2015). Analyzing student work patterns using programming exercise data. In Proceedings of the 46th ACM Technical Symposium on Computer Science Education, SIGCSE’15, pages 18–23, New York, NY, USA. ACM.
Spohrer, J.C. and Soloway, E. (1986). Novice mistakes: Are the folk wisdoms correct? Commun. ACM, 29(7):624–632.
