unknown

Automatización de la corrección de prácticas de programación a través del compilador Clang

Abstract

El proceso de corrección de ejercicios para la enseñanza de lenguajes de programación se ha realizado tradicionalmente de forma manual. En los últimos años se ha avanzado en este aspecto hacia la automatización de la evaluación de las entregas de los alumnos, lo cual viene a mejorar tanto el aprendizaje del alumno como las tareas del profesor. No obstante, uno de los mayores inconvenientes para lograr este objetivo es la limitación en el análisis sintáctico del código para comprobar el cumplimiento de ciertos requisitos en el mismo. Este trabajo muestra cómo el uso de Clang, un compilador maduro de código abierto, puede proporcionar una capacidad de análisis superior mediante el recorrido por el árbol de sintaxis abstracta. Además, se plantea el uso de la prueba de mutaciones como técnica que conciencie a los alumnos de la importancia de diseñar un conjunto completo de casos de prueba para probar sus programas.The process of correction of exercises for the teaching of programming languages has been traditionally accomplished in a manual way. In recent years, several advances have been made regarding this aspect towards the automation of the evaluation of the solutions provided by the students. This support aims to improve both the learning of students and the work of lecturers. However, one of the main drawbacks to achieve this goal is the limitation in the static analysis of the code to check the fulfilment of certain requirements. This paper shows how using Clang, a full-fledged open-source compiler, can provide a greater capacity for analysis through the traversal of the abstract syntax tree. Moreover, the technique known as mutation testing is suggested to make students aware of the importance of designing an adequate test suite to test their applications

    Similar works