Automatic assessment of object oriented programming assignments with unit testing in Python and a real case assignment

In this paper, we focus on developing automatic assessment (AA) for a topic that has some difficulties in its practical assessment: object oriented programming (OOP). For evaluating that the OOP principles have been correctly applied to a real application, we use unit testing. In this paper, we focu...

Descripción completa

Detalles Bibliográficos
Autores: Climent Aunes, Laura Isabel, Arbelaez Rodríguez, Alejandro
Tipo de recurso: artículo
Fecha de publicación:2023
País:España
Institución:Universidad Autónoma de Madrid
Repositorio:Biblos-e Archivo. Repositorio Institucional de la UAM
Idioma:inglés
OAI Identifier:oai:repositorio.uam.es:10486/707576
Acceso en línea:http://hdl.handle.net/10486/707576
https://dx.doi.org/10.1002/cae.22642
Access Level:acceso abierto
Palabra clave:Automatic assessment
Object oriented programming
Python programming language
Unit testing
Informática
Descripción
Sumario:In this paper, we focus on developing automatic assessment (AA) for a topic that has some difficulties in its practical assessment: object oriented programming (OOP). For evaluating that the OOP principles have been correctly applied to a real application, we use unit testing. In this paper, we focus on prioritizing that the students understand and apply correctly complex OOP principles and that they design properly the classes (including their relationships). In addition, we focus on the Python programming language rather than the typical previous works' focus in this area. Thus, we present a real case study of a practical assignment, in which the students have to implement characters for a video game. This assignment has the particularities and advantages that it is incremental and that it applies all four OOP principles within a single assignment. We also present its solution with the UML class diagram description. Furthermore, we provide unit testing for this case study and give general advice for generalizing the unit tests to other real case scenarios. Finally, we corroborate the effectiveness of our approach with positive student evaluations