Rule-Based Error Classification for Analyzing Differences in Frequent Errors
Atsushi Shirafuji, Taku Matsumoto, Md Faizul Ibne Amin, Yutaka, Watanobe

TL;DR
This paper introduces a rule-based tool for classifying programming errors in code pairs, revealing distinct error patterns between novice and expert programmers to aid targeted instruction and educational research.
Contribution
The paper presents a novel rule-based error classification method applied to a large dataset, highlighting differences in error tendencies between novices and experts.
Findings
Novices' errors stem from lack of programming knowledge.
Experts' errors are due to carelessness or different problem-solving approaches.
The tool classifies an average of 3.47 errors per code pair.
Abstract
Finding and fixing errors is a time-consuming task not only for novice programmers but also for expert programmers. Prior work has identified frequent error patterns among various levels of programmers. However, the differences in the tendencies between novices and experts have yet to be revealed. From the knowledge of the frequent errors in each level of programmers, instructors will be able to provide helpful advice for each level of learners. In this paper, we propose a rule-based error classification tool to classify errors in code pairs consisting of wrong and correct programs. We classify errors for 95,631 code pairs and identify 3.47 errors on average, which are submitted by various levels of programmers on an online judge system. The classified errors are used to analyze the differences in frequent errors between novice and expert programmers. The analyzed results show that, as…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsOnline Learning and Analytics · Software Engineering Research · Software Testing and Debugging Techniques
