AbstractSoftware maintenance is an important aspect of the development life-cycle. One of the critical success factors of software maintainability is the quality of the code. It is therefore important that students learn how to write high quality code. However, previous research by Keuning et al.  shows that student code often contains significant code quality issues that would lead to problems with maintainability. Additionally, these issues are rarely fixed.
To improve the quality of their code, students need high quality formative feedback. While much research has been done in the context of formative feedback in programming education. However, most of this research focuses on beginners (e.g. first year students). In this context, assignments are generally small and model solutions are often available. This study aims to provide automated formative feedback on code quality for open-ended assignments. These types of assignments are more typical for students further in their education.
In this study we have used software metrics as a basis for generating the feedback. To do this, a set of suitable software metrics have been selected. This has been done based on a literature review. Three suitable metrics were found, Cyclomatic Complexity (CC) , Lines of Code (LoC), and code duplication. Additionally, we have defined a number of design principles for automated formative feedback on code quality. These design principles are based on two focus group sessions involving students and teachers from the HBO-ICT program at Zuyd University of Applied Science, and on a number of general meta design
principles found in the literature.
Finally, the design principles for formative feedback on code quality have been implemented in a prototype. This prototype has been used to evaluate the design principles defined in this study. For this evaluation, a number of observations have been done with students from the same program as the focus group sessions. Each observation consisted of a before interview, a programming session, and an after interview. Additionally, an exploration and discussion of the prototype and the design principles has been done with a senior teacher.
From the first evaluations, the design principles defined in this study look promising. All students found the feedback provided by the prototype helpful. However, further refinement and extension of both the prototype and the design principles implemented in said prototype, are needed.
|Date of Award||20 Jun 2022|
|Supervisor||Ebrahim Rahimi (Examiner), Efthimia Aivaloglou (Co-assessor) & Erik Barendsen (Co-assessor)|
- Master Software Engineering