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

dc.contributor.advisorRubio Cuéllar, Rubén Rafael
dc.contributor.authorEsteban Velasco, Luis
dc.contributor.authorTrillo Carreras, Juan
dc.contributor.authorBurgos Sosa, Rodrigo
dc.date.accessioned2024-07-23T10:24:58Z
dc.date.available2024-07-23T10:24:58Z
dc.date.issued2024
dc.degree.titleGrado en Ingeniería Informática
dc.descriptionTrabajo 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.
dc.description.abstractAutonomous 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
dc.description.abstractLa 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.
dc.description.departmentDepto. de Sistemas Informáticos y Computación
dc.description.facultyFac. de Informática
dc.description.refereedTRUE
dc.description.statusunpub
dc.identifier.relatedurlhttps://github.com/Jantri-3/analysis-of-DOMjudge-submissions
dc.identifier.urihttps://hdl.handle.net/20.500.14352/107032
dc.language.isoeng
dc.page.total96
dc.rightsAttribution-NonCommercial-NoDerivatives 4.0 Internationalen
dc.rights.accessRightsopen access
dc.rights.urihttp://creativecommons.org/licenses/by-nc-nd/4.0/
dc.subject.cdu004(043.3)
dc.subject.keywordOnline Judge
dc.subject.keywordStatic analysis
dc.subject.keywordInstrumentation
dc.subject.keywordC++
dc.subject.keywordDOMjudge
dc.subject.keywordJuez en línea
dc.subject.keywordAnálisis estático
dc.subject.keywordInstrumentación
dc.subject.ucmInformática (Informática)
dc.subject.unesco33 Ciencias Tecnológicas
dc.titleCode analysis and instrumentation of submissions for online judges
dc.title.alternativeAnálisis de código e instrumentación de los envíos para jueces en línea
dc.typebachelor thesis
dc.type.hasVersionAM
dspace.entity.typePublication
relation.isAdvisorOfPublication7dfd0267-1708-4f39-bda5-55a246b4bc41
relation.isAdvisorOfPublication.latestForDiscovery7dfd0267-1708-4f39-bda5-55a246b4bc41

Download

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
Code_analysis_and_instrumentation_of_submissions_for_online_judges_TFG.pdf
Size:
1.49 MB
Format:
Adobe Portable Document Format
Description:
Code analysis and instrumentation of submissions for online judges