AUTOMATED ASSIGNMENT GRADING SYSTEM FOR PROGRAMMING COURSES - Diachuk, T. S.; Skrupsky, S. Yu.; Holub, T. V. (Systems and Technologies, 2025)
The purpose of the article is to present the results of the development and implementation of an automated assignment grading system designed to help instructors organize a high-quality, objective, and effective educational process in an asynchronous distance learning environment. The relevance of the work is driven by the challenges of distance education in Ukraine, caused first by the COVID-19 pandemic and later by the full-scale war, which demands the implementation of effective, flexible, and secure educational tools capable of functioning in a predominantly asynchronous learning environment. Manual grading of numerous programming assignments creates a significant burden on instructors, leads to delays in providing feedback, and introduces elements of subjectivity into the assessment. An analysis of recent research confirms a global trend toward assessment automation in IT education as a means of increasing efficiency and objectivity. The developed system is a component of a broader educational platform in which assignments for students are already generated individually. The proposed grading architecture is based on the integration of version control and continuous integration tools. The workflow is organized as follows: a student completes an assignment in their repository and creates a Pull Request to merge the changes. This action automatically triggers the verification process (a GitHub Action), which compiles the code and passes it to a validator. The validator generates a large set of test data, executes both the student's code and a reference implementation (described by formalized formulas) on this data, and then compares the results. In case of discrepancies, the system instantly provides the student with an error report, including the specific data set that caused the failure. This allows the instructor to focus not on routine correctness checks, but on analyzing code quality, architecture, and providing meaningful comments. The system is implemented in Kotlin, uses the Gradle build system, and is distributed as a library (a Maven artifact) that students connect to their projects. Approbation was conducted within the «Basics of Programming in Kotlin» course with the participation of 23 students. The implementation of the system proved its effectiveness in saving instructor time, ensuring objective assessment, and increasing student motivation to experiment and independently correct errors, thanks to the instant feedback. Future development of the system includes the integration of modules for assessing code quality.