ABSTRACT
Knowledge about students' programming errors is a valuable source to get insights into students deficiencies and misconceptions. In this paper, we use data from an introductory C programming course to identify which errors are often made by students. Previous studies often focused only on syntactic and semantic errors as they can be easily identified by compilers. Studies focusing on logic errors were often restricted to a limited set of concepts or performed for a small set of data. We manually inspect 12371 submission by 280 students and have no restrictions regarding the error types we are looking for. We classify our found errors into six categories: syntactic, conceptual, strategic, sloppiness, misinterpretation, and domain knowledge. Our results show that a big portion of errors made by students is simply caused by sloppiness. But putting sloppiness aside, students seem to have most problems with strategic knowledge, i.e., the problem solving ability. We compare our results to previous studies and provide some implications of our results for future teaching practice.
- Ella Albrecht, Fabian Gumz, and Jens Grabowski. 2018. Experiences in Introducing Blended Learning in an Introductory Programming Course. In Proceedings of the 3rd European Conference of Software Engineering Education (ECSEE'18). ACM, New York, NY, USA, 93--101. https://doi.org/10.1145/3209087.3209101Google ScholarDigital Library
- Piraye Bayman and Richard E. Mayer. 1988. Using Conceptual Models to Teach BASIC Computer Programming. Journal of Educational Psychology , Vol. 80 (1988), 291--298.Google ScholarCross Ref
- Neil C.C. Brown and Amjad Altadmri. 2014. Investigating Novice Programming Mistakes: Educator Beliefs vs. Student Data. In Proceedings of the Tenth Annual Conference on International Computing Education Research (ICER '14). ACM, New York, NY, USA, 43--50. https://doi.org/10.1145/2632320.2632343Google ScholarDigital Library
- Neil Christopher Charles 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, NY, USA, 223--228. https://doi.org/10.1145/2538862.2538924Google ScholarDigital Library
- Paul Denny, Andrew Luxton-Reilly, and Ewan Tempero. 2012. All Syntax Errors Are Not Equal. In Proceedings of the 17th ACM Annual Conference on Innovation and Technology in Computer Science Education (ITiCSE '12). ACM, New York, NY, USA, 75--80. https://doi.org/10.1145/2325296.2325318Google ScholarDigital Library
- Andrew Ettles, Andrew Luxton-Reilly, and Paul Denny. 2018. Common Logic Errors Made by Novice Programmers. In Proceedings of the 20th Australasian Computing Education Conference (ACE '18). ACM, New York, NY, USA, 83--89. https://doi.org/10.1145/3160489.3160493Google ScholarDigital Library
- 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, NY, USA, 153--156. https://doi.org/10.1145/611892.611956Google ScholarDigital Library
- J. Jackson, M. Cobb , and C. Carver. 2005. Identifying Top Java Errors for Novice Programmers. In Proceedings Frontiers in Education 35th Annual Conference. T4C--T4C. https://doi.org/10.1109/FIE.2005.1611967Google ScholarCross Ref
- Matthew C. Jadud. 2005. A first look at novice compilation behaviour using BlueJ. Computer Science Education , Vol. 15 (2005), 1--25.Google ScholarCross Ref
- A. J. Ko and B. A. Myers. 2003. Development and evaluation of a model of programming errors. In IEEE Symposium on Human Centric Computing Languages and Environments, 2003. Proceedings. 2003 . 7--14. https://doi.org/10.1109/HCC.2003.1260196Google ScholarCross Ref
- D. McCall and M. Kölling. 2014. Meaningful categorisation of novice programmer errors. In 2014 IEEE Frontiers in Education Conference (FIE) Proceedings. 1--8. https://doi.org/10.1109/FIE.2014.7044420Google ScholarCross Ref
- Davin McCall and Michael Kölling. 2019. A New Look at Novice Programmer Errors. ACM Trans. Comput. Educ. , Vol. 19, 4, Article 38 (July 2019), bibinfonumpages30 pages. https://doi.org/10.1145/3335814Google ScholarDigital Library
- Rebecca Smith and Scott Rixner. 2019. The Error Landscape: Characterizing the Mistakes of Novice Programmers. In Proceedings of the 50th ACM Technical Symposium on Computer Science Education (SIGCSE '19). ACM, New York, NY, USA, 538--544. https://doi.org/10.1145/3287324.3287394Google ScholarDigital Library
- James C. Spohrer and Elliot Soloway. 1986. Novice Mistakes: Are the Folk Wisdoms Correct? Commun. ACM , Vol. 29, 7 (July 1986), 624--632. https://doi.org/10.1145/6138.6145Google ScholarDigital Library
- Gary Woolley. 2001. Reading Comprehension: Assisting Children with Learning Difficulties .Springer Netherlands.Google Scholar
Index Terms
- Sometimes It's Just Sloppiness - Studying Students' Programming Errors and Misconceptions
Recommendations
A New Metric to Quantify Repeated Compiler Errors for Novice Programmers
ITiCSE '16: Proceedings of the 2016 ACM Conference on Innovation and Technology in Computer Science EducationEncountering the same compiler error repeatedly, particularly several times consecutively, has been cited as a strong indicator that a student is struggling with important programming concepts. Despite this, there are relatively few studies which ...
Comparing loops misconceptions in block-based and text-based programming languages at the K-12 level
Novice programmers are facing many difficulties while learning to program. Most studies about misconceptions in programming are conducted at the undergraduate level, yet there is a lack of studies at the elementary school (K-12) level, reasonably ...
Qualitative Content Analysis of Programming Errors
ICIET '17: Proceedings of the 5th International Conference on Information and Education TechnologyIn computer science education, the analysis of source code with errors is of interest as programming errors may give a hint to misconceptions. The analysis of misconceptions can help teachers to improve their exercises and lessons.
The semantic analysis ...
Comments