Assessment Automation of Complex Student Programming Assignments

Grading student programming assignments is not an easy task. This task is even more challenging when talking about complex programming assignments at university graduate level. By complex assignments, we mean assignments where students have to program a complete application from scratch. For example...

Full description

Bibliographic Details
Main Authors: Matija Novak, Dragutin Kermek
Format: Article
Language:English
Published: MDPI AG 2024-01-01
Series:Education Sciences
Subjects:
Online Access:https://www.mdpi.com/2227-7102/14/1/54
_version_ 1797344238122303488
author Matija Novak
Dragutin Kermek
author_facet Matija Novak
Dragutin Kermek
author_sort Matija Novak
collection DOAJ
description Grading student programming assignments is not an easy task. This task is even more challenging when talking about complex programming assignments at university graduate level. By complex assignments, we mean assignments where students have to program a complete application from scratch. For example, building a complete web application with a client and server side, whereby the application uses multiple threads that gather data from some external service (like the REST service, IoT sensors, etc.), processes these data and store them in some storage (e.g., a database), implements a custom protocol over a socket or something similar, implements their own REST/SOAP/GraphQL service, then sends or receives JMS/MQTT/WebSocket messages, etc. Such assignments give students an inside view of building real Internet applications. On the other hand, assignments like these take a long time to be tested and graded manually, e.g., up to 1 h per student. To speed up the assessment process, there are different automation possibilities that can check for the correctness of some application parts without endangering the grading quality. In this study, different possibilities of automation are described that have been improved over several years. This process takes advantage of unit testing, bash scripting, and other methods. The main goal of this study is to define an assessment process that can be used to grade complex programming assignments, with concrete examples of what and how to automate. This process involves assignment preparation for automation, plagiarism (i.e., better said similarity) detection, performing an automatic check of the correctness of each programming assignment, conducting an analysis of the obtained data, the awarding of points (grading) for each programming assignment, and other such activities. We also discuss what the downsides of automation are and why it is not possible to completely automate the grading process.
first_indexed 2024-03-08T10:59:28Z
format Article
id doaj.art-b70811829eb3456991bc075a0b50e6c9
institution Directory Open Access Journal
issn 2227-7102
language English
last_indexed 2024-03-08T10:59:28Z
publishDate 2024-01-01
publisher MDPI AG
record_format Article
series Education Sciences
spelling doaj.art-b70811829eb3456991bc075a0b50e6c92024-01-26T16:09:59ZengMDPI AGEducation Sciences2227-71022024-01-011415410.3390/educsci14010054Assessment Automation of Complex Student Programming AssignmentsMatija Novak0Dragutin Kermek1Faculty of Organization and Informatics, University of Zagreb, Pavlinska 2, 42000 Varaždin, CroatiaFaculty of Organization and Informatics, University of Zagreb, Pavlinska 2, 42000 Varaždin, CroatiaGrading student programming assignments is not an easy task. This task is even more challenging when talking about complex programming assignments at university graduate level. By complex assignments, we mean assignments where students have to program a complete application from scratch. For example, building a complete web application with a client and server side, whereby the application uses multiple threads that gather data from some external service (like the REST service, IoT sensors, etc.), processes these data and store them in some storage (e.g., a database), implements a custom protocol over a socket or something similar, implements their own REST/SOAP/GraphQL service, then sends or receives JMS/MQTT/WebSocket messages, etc. Such assignments give students an inside view of building real Internet applications. On the other hand, assignments like these take a long time to be tested and graded manually, e.g., up to 1 h per student. To speed up the assessment process, there are different automation possibilities that can check for the correctness of some application parts without endangering the grading quality. In this study, different possibilities of automation are described that have been improved over several years. This process takes advantage of unit testing, bash scripting, and other methods. The main goal of this study is to define an assessment process that can be used to grade complex programming assignments, with concrete examples of what and how to automate. This process involves assignment preparation for automation, plagiarism (i.e., better said similarity) detection, performing an automatic check of the correctness of each programming assignment, conducting an analysis of the obtained data, the awarding of points (grading) for each programming assignment, and other such activities. We also discuss what the downsides of automation are and why it is not possible to completely automate the grading process.https://www.mdpi.com/2227-7102/14/1/54automationgradingassessmentprogrammingeducationstudent
spellingShingle Matija Novak
Dragutin Kermek
Assessment Automation of Complex Student Programming Assignments
Education Sciences
automation
grading
assessment
programming
education
student
title Assessment Automation of Complex Student Programming Assignments
title_full Assessment Automation of Complex Student Programming Assignments
title_fullStr Assessment Automation of Complex Student Programming Assignments
title_full_unstemmed Assessment Automation of Complex Student Programming Assignments
title_short Assessment Automation of Complex Student Programming Assignments
title_sort assessment automation of complex student programming assignments
topic automation
grading
assessment
programming
education
student
url https://www.mdpi.com/2227-7102/14/1/54
work_keys_str_mv AT matijanovak assessmentautomationofcomplexstudentprogrammingassignments
AT dragutinkermek assessmentautomationofcomplexstudentprogrammingassignments