A Framework to Detect, Classify, and Prioritise Student Quality Defects
Abstract
Code quality is an essential aspect of programming education, impacting source code maintainability and readability. However, providing manual feedback is time-consuming for instructors, and automated approaches to code quality feedback remain inconsistent and underdeveloped. We adapt a defect catalogue for novice Python programmers and construct an automated detection pipeline that integrates multiple static analysis tools and a custom natural language identifier detector. Using a standardised set of defect examples, we evaluate the detection coverage of the selected tools. Our results show that our integrated toolset detects 64 defect types, with 30 undetected. Applying the pipeline to over 86,000 student submissions, we analyse the prevalence and distribution of code quality defects in real coursework. To better align with pedagogical priorities, we introduce a multi-dimensional prioritisation framework that combines defect frequency, student coverage, and instructor-rated importance. Our findings provide a reference for improving feedback mechanisms and instructional strategies for code quality in introductory programming education.
Fields of Study & Subjects
Teaching and Learning Programming
Software Engineering Research
Software Testing and Debugging Techniques
Publication details
- Journal / source
- ACM Technical Symposium on Computer Science Education (SIGCSE)
- Pages
- 246–252
- Publication date
- 13 February 2026
- Language
- EN