Aviso: para depositar documentos, por favor, inicia sesión e identifícate con tu cuenta de correo institucional de la UCM con el botón MI CUENTA UCM. No emplees la opción AUTENTICACIÓN CON CONTRASEÑA
 

Code analysis and instrumentation of submissions for online judges

Loading...
Thumbnail Image

Official URL

Full text at PDC

Publication date

2024

Advisors (or tutors)

Editors

Journal Title

Journal ISSN

Volume Title

Publisher

Citations
Google Scholar

Citation

Abstract

Autonomous practice is fundamental in learning programming and, in the various contexts where programming is taught, automatic problem checkers are extensively used. The so-called online judges offer a repertoire of problems and allow users to submit their solutions for on-the-spot evaluation. The judge receives the code from the user, compiles it, and runs it on different test inputs, then checks that the results match the expected ones. The result of this evaluation for the student is usually limited to a verdict that indicates without details whether the solution is correct or not, takes too long or fails to run. The teacher, on the other hand, sees the raw differences between the program output and the expected output. In programming competitions, this information is more than enough, but more instructive and meaningful feedback would be of great help to the student learning to code. The aim of this work is to apply static code analysis techniques and instrumentation on automatic judges to provide more meaningful feedback to students and teachers. The effectiveness of a small set of tools has been studied on actual submissions from previous years. The conclusions of this analysis, interesting in their own, have helped us decide which checks are most relevant to implement on the judge. We have extended the online judge DOMjudge, (widely used in the Faculty of Computer Science at UCM and other universities) to integrate these checks and include the results in the feedback. This has required modifications to the code and the setup process of the automatic judge, and the development of tools to process the information from those tools
La práctica autónoma es fundamental en el aprendizaje de la programación y en los diversos contextos donde se enseña esta disciplina los correctores automáticos de problemas son muy utilizados. Los llamados jueces en línea ofrecen un repertorio de problemas y permiten enviar a los usuarios sus soluciones para que sean evaluadas en el momento. Para evaluarlas, el juez recibe el código del usuario, lo compila y lo ejecuta sobre distintos ejemplos para después comprobar que los resultados coincidan con los esperados. El resultado de esa evaluación para el estudiante se limita habitualmente a un veredicto que indica sin detalles si la solución es correcta o no, tarda demasiado o falla al ejecutarse. El profesor, en cambio, ve las diferencias en bruto entre la salida del programa y la salida esperada. En los concursos de programación, esta información es más que suficiente, pero una retroalimentación más instructiva y significativa sería de gran ayuda para el estudiante que está aprendiendo a programar. El objetivo de este trabajo es aplicar técnicas de análisis de estático e instrumentación en los jueces automáticos para proporcionar retroalimentación más significativa a estudiantes y profesores. Se ha estudiado la efectividad de un pequeño conjunto de herramientas sobre envíos reales de años anteriores. Las conclusiones de este análisis, interesantes por sí mismas, nos han servido para decidir qué comprobaciones son más relevantes para su implementación al juez. Hemos extendido el juez automático DOMjudge, ampliamente utilizado en la facultad de Informática de la UCM y en otras universidades, para integrar estas comprobaciones y mostrar los resultados en la retroalimentación a los estudiantes. Esto ha requerido modificaciones en el código y en el proceso de instalación del juez automático, y el desarrollo de herramientas para procesar la información de los analizadores.

Research Projects

Organizational Units

Journal Issue

Description

Trabajo de Fin de Grado en Ingeniería Informática, Facultad de Informática UCM, Departamento de Sistemas Informáticos y Computación, Curso 2023/2024.

Keywords