一句话:用 ChatGPT 仅凭学生代码与参考解自动识别并归类新手编程错误,准确率达 93.3%。
论文关注新手程序员误解与错误识别通常依赖定制工具、测试脚本和人工审阅,耗时费力。作者提出用 ChatGPT 自动完成错误识别与分类:提示词仅包含学生代码和标准答案,针对两个 lab test 题目,利用其自然语言处理与知识表示能力汇总各错误类型的出现频率,并对生成的错误描述进行聚类,以洞察学生误解。结果显示,ChatGPT 虽不能完美识别所有错误,但 93.3% 的准确率足以让教师获得常见错误的聚合视图,并能更细粒度地了解学生误解,同时免去逐份人工阅读代码的繁重工作。
Identifying the misconceptions of novice programmers is pertinent for informing instructors of the challenges faced by their students in learning computer programming. In the current literature, custom tools, test scripts were developed and, in most cases, manual effort to go through the individual codes were required to identify and categorize the errors latent within the students' code submissions. This entails investment of substantial effort and time from the instructors. In this study, we thus propose the use of ChatGPT in identifying and categorizing the errors. Using prompts that were seeded only with the student's code and the model code solution for questions from two lab tests, we were able to leverage on ChatGPT's natural language processing and knowledge representation capabilities to automatically collate frequencies of occurrence of the errors by error types. We then clustered the generated error descriptions for further insights into the misconceptions of the students. The results showed that although ChatGPT was not able to identify the errors perfectly, the achieved accuracy of 93.3% is sufficiently high for instructors to have an aggregated picture of the common errors of their students. To conclude, we have proposed a method for instructors to automatically collate the errors latent within the students' code submissions using ChatGPT. Notably, with the novel use of generated error descriptions, the instructors were able to have a more granular view of the misconceptions of their students, without the onerous effort of manually going through the students' codes.