GitSEED: A Git-backed Automated Assessment Tool for Software Engineering and Programming Education

Pedro Orvalho,Mikoláš Janota,Vasco Manquinho
2024-09-11
Abstract:Due to the substantial number of enrollments in programming courses, a key challenge is delivering personalized feedback to students. The nature of this feedback varies significantly, contingent on the subject and the chosen evaluation method. However, tailoring current Automated Assessment Tools (AATs) to integrate other program analysis tools is not straightforward. Moreover, AATs usually support only specific programming languages, providing feedback exclusively through dedicated websites based on test suites. This paper introduces GitSEED, a language-agnostic automated assessment tool designed for Programming Education and Software Engineering (SE) and backed by GitLab. The students interact with GitSEED through GitLab. Using GitSEED, students in Computer Science (CS) and SE can master the fundamentals of git while receiving personalized feedback on their programming assignments and projects. Furthermore, faculty members can easily tailor GitSEED's pipeline by integrating various code evaluation tools (e.g., memory leak detection, fault localization, program repair, etc.) to offer personalized feedback that aligns with the needs of each CS/SE course. Our experiments assess GitSEED's efficacy via comprehensive user evaluation, examining the impact of feedback mechanisms and features on student learning outcomes. Findings reveal positive correlations between GitSEED usage and student engagement.
Software Engineering,Computers and Society
What problem does this paper attempt to address?
### Problems the paper attempts to solve This paper aims to address the challenge of providing personalized feedback to students in programming courses. Specifically, the paper points out the following problems with current Automated Assessment Tools (AATs): 1. **Limited types of feedback**: Most AATs only display the results of input/output tests and lack other types of feedback. 2. **Language - specificity**: Many AATs only support specific programming languages or a limited number of languages, making it difficult to meet the needs of multilingual teaching. 3. **Non - uniform user interface**: AATs usually provide feedback through dedicated websites, requiring students to be familiar with new Graphical User Interfaces (GUIs), which increases the learning cost. 4. **Difficulty in integrating other tools**: Existing AATs are difficult to adapt and integrate with other program analysis tools, such as memory leak detection, fault location, and program repair, to provide more personalized feedback. In response to these problems, the paper proposes a new tool called GitSEED. GitSEED is an automated assessment tool based on GitLab, specifically designed for software engineering and programming education. It has the following features: - **Language - independence**: GitSEED can be used for any programming language and is suitable for various Computer Science (CS) and Software Engineering (SE) courses. - **Interaction through GitLab**: Students interact with GitSEED through GitLab and receive personalized feedback while learning Git. - **Easy to customize**: Teachers can easily integrate various code assessment tools into the GitSEED workflow to provide personalized feedback that meets the requirements of the course. - **Utilize Continuous Integration (CI) workflow**: GitSEED is integrated into GitLab's CI workflow, ensuring that educational assessment is carried out within a professional version control system rather than relying on dedicated websites. Through these improvements, GitSEED aims to improve the quality and efficiency of feedback in programming education and promote students' learning and participation.