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