Automated Program Analysis for Novice Programmers
Tim Blok, Ansgar Fehnker

TL;DR
This paper explores adapting static code analyzers to assist novice programmers by providing more understandable feedback and identifying conceptual mistakes in student projects, enhancing programming education tools.
Contribution
It introduces an extension to the static analyzer PMD to generate beginner-friendly feedback and evaluates its effectiveness on student projects versus mature software.
Findings
Extended PMD provides clearer feedback for novices.
The analyzer detects common conceptual mistakes in student code.
Results show improved identification of beginner errors.
Abstract
This paper describes how to adapt a static code analyzer to help novice programmers. Current analyzers have been built to give feedback to experienced programmers who build new applications or systems. The type of feedback and the type of analysis of these tools focusses on mistakes that are relevant within that context, and help with debugging the system. When teaching novice programmers this type of advice is often not particularly useful. It would be instead more useful to use these techniques to find problem in the understanding of students of important programming concepts. This paper first explores in what respect static analyzers support the learning and teaching of programming can be implemented based on existing static analysis technology. It presents an extension to static analyzer PMD was made so that feedback messages appear which are easier to understand for novice…
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.
