title: | Measuring educational debt in programming |
keywords: | programming education, software metrics, static analysis |
topics: | Case studies and Applications , Logics and semantics , Software Technology |
committee: | Ansgar Fehnker |
started: | April 2020 |
end: | June 2020 |
Abstract
Novice students are often unsure how far they are compared to what is expected in end terms of a course. Some student can only write simple programs, but think they are advanced, while some others mastered a fair bit, but are still unsure. While there exist tools that will automatically grade or correct student code, it would be also useful to assess for a given program if demonstrates mastery of selected programming concepts. In software development there exists a concept of “technical debt”, the amount of rework necessary to address detected issues. The aim of the project is to develop an equivalent for the educational context, that will combine static analysis and metrics that can give an indication of how close a program is to meeting desired programming standards.
This project would be contributing to the SURF project ATELIER. This SURF project works on a platform that assists teaching assistant to provide better feedback in programming classes to students. One of the tools included is a static analysis for Processing, a language for new media and visual arts that is based on Java. This tool detects programming smells that arise from the common structure that all Processing programs share. It is built on PMD and can be used to batch process student programs. See http://dx.doi.org/10.1007/978-3-030-21151-6_24