QoCode: evaluación automática de calidad de código en tareas de programación
Palabras clave:
calidad de código, feedback automático, enseñanza de programación, análisis estático, PythonResumen
En los últimos años, el aumento sostenido de la matrícula en carreras de informática impuso desafíos crecientes a los equipos docentes, en particular en la evaluación de tareas de programación. Como respuesta a este problema, se comenzaron a utilizar más ampliamente herramientas de corrección automática de código. Sin embargo, estas se concentran casi exclusivamente en la corrección funcional, generalmente a través de conjuntos más o menos extensos de casos de prueba. En consecuencia, faltan herramientas que generen retroalimentación estructurada con enfoque pedagógico en dimensiones de la calidad de código como la legibilidad y la mantenibilidad. En este trabajo se presenta QoCode, una herramienta web de análisis estático de código orientada a generar retroalimentación automática y pedagógicamente estructurada sobre código Python. QoCode integra validaciones sobre legibilidad y mantenibilidad propias, basadas en el árbol de sintaxis abstracta, y se complementa con verificaciones de linters reconocidos, como Pylint y Flake8. Además, QoCode permite al docente configurar explícitamente qué aspectos evaluar, de acuerdo con las necesidades de su curso y sus estudiantes. Finalmente, se incluye una evaluación preliminar sobre entregas de código de dos cursos introductorios universitarios. Los resultados sugieren que QoCode detecta defectos de manera consistente y escalable, complementando la visión docente en aspectos que habitualmente quedan fuera de la retroalimentación automática, como el uso de números mágicos, nombres demasiado cortos y funciones poco legibles.
Descargas
Referencias
Ala-Mutka, K., & Jarvinen, H.-M. (2004). Assessment Process for Programming Assignments. En Proceedings of the IEEE International Conference on Advanced Learning Technologies (pp. 181-185). IEEE Computer Society.
Alberola, J. M., & García-Fornes, A. (2014). Using Feedback for Improving the Learning Process in Programming Courses. IEEE Revista Iberoamericana de Tecnologias del Aprendizaje, 9(2), 49-56. https://doi.org/10.1109/RITA.2014.2317529
Camp, T., Adrion, W. R., Bizot, B., Davidson, S., Hall, M., Hambrusch, S., Walker, E., & Zweben, S. (2017). Generation CS: the growth of computer science. En ACM Inroads (pp. 44-50, Vol. 8). Association for Computing Machinery. https://doi.org/10.1145/3084362
Effenberger, T., & Pelánek, R. (2022). Code Quality Defects across Introductory Programming Topics. Association for Computing Machinery. https://doi.org/10.1145/3478431.3499415
Keuning, H., Heeren, B., & Jeuring, J. (2017). Code Quality Issues in Student Programs. Association for Computing Machinery. https://doi.org/10.1145/3059009.3059061
Keuning, H., Jeuring, J., & Heeren, B. (2018). A Systematic Literature Review of Automated Feedback Generation for Programming Exercises. Association for Computing Machinery. https://doi.org/10.1145/3231711
Messer, M., Brown, N. C. C., Kölling, M., & Shi, M. (2024). Automated Grading and Feedback Tools for Programming Education: A Systematic Review. En ACM Trans. Comput. Educ. (Vol. 24). Association for Computing Machinery. https://doi.org/10.1145/3636515
Rechtáˇcková, A., Pelánek, R., & Effenberger, T. (2025). Code Quality Defects in Introductory ˇ Programming. En ACM Trans. Comput. Educ. (Vol. 25). Association for Computing Machinery. https://doi.org/10.1145/3749996
Stegeman, M., Barendsen, E., & Smetsers, S. (2016). Designing a rubric for feedback on code quality in programming courses. En Proceedings of the 16th Koli Calling International Conference on Computing Education Research (pp. 160-164). Association for Computing Machinery. https://doi.org/10.1145/2999541.2999555
Descargas
Publicado
Número
Sección
Licencia
Derechos de autor 2026 Victoria A. Varani, Bruno Ventrici, Gonzalo Pablo Fernández, Christian Cossio-Mercado

Esta obra está bajo una licencia internacional Creative Commons Atribución-NoComercial-CompartirIgual 4.0.
Acorde a estos términos, el material se puede compartir (copiar y redistribuir en cualquier medio o formato) y adaptar (remezclar, transformar y crear a partir del material otra obra), siempre que a) se cite la autoría y la fuente original de su publicación (revista y URL de la obra), b) no se use para fines comerciales y c) se mantengan los mismos términos de la licencia.














