Abstract
This paper describes how to adapt a static code analyzer to provide feedback novice programmers and their teachers. Current analyzers have been built to give feedback to experienced programmers who work on software projects 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 software 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 identify 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, and what can be implemented based on existing static analysis technology. It presents an extension of static analyzer PMD to create feedback that is more valuable to novice programmers. To answer the question if these techniques are able to find conceptual mistakes that are characteristic for novice programmers make, we ran it over a number of student projects, and compared these results with publicly available mature software projects.
Highlights
Professional software development teams are using a range of tools to detect and correct mistakes in their programs
This requires first an analysis to what extend the different context in which it is used changes the requirements for the tool. Static analysis tools such as Coverity and FindBugs are meant for experienced developers, who know how to program
This paper describes how to adapt the off-the-shelf static code analysis tool PMD to support teaching programming to novice students
Summary
Professional software development teams are using a range of tools to detect and correct mistakes in their programs. This paper describes how to adapt an off-the-shelf static code analysis tools to support teaching of novice students This requires first an analysis to what extend the different context in which it is used changes the requirements for the tool. There is the fact that software development team like to see coding guidelines enforced that make sense in that context, for example compliance with industry standards, or making their code analyzable for other tools, or ensuring consistency among different platforms. For student these warning can often be overwhelming, confusing, or a nuisance. These results confirm that those rules are effective in detecting error made by novices
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.