Proyectos Action Replay!

El concepto principal en Action Replay! es el de sesión de programación. Una sesión de programación es toda la interacción entre un estudiante y un entorno de programación, mientras se desarrolla un problema de programación. Esta interacción incluye:

  • Abrir, cerrar, guardar archivos.
  • Escribir, borrar líneas de código.
  • Enviar acciones tales como “Compilar”, “Ejecutar”, y obtener los mensajes de respuesta/error correspondientes.
  • Manejo de portapapeles: copiar, pegar, cortar, etc.

Dentro de la plataforma Action Replay! ya se han desarrollado dos elementos fundamentales:

  • PSeSpy: entorno de programación PSeInt instrumentado que graba las interacciones en formato XML. Desarrollado por Daniel Palma (U. de Valparaíso), está disponible en https://github.com/ifigueroap/pse-spy.
  • Visualizador Web que permite cargar y explorar una línea de tiempo con los eventos guardados en la sesión de programación. Desarrollado por Gonzalo Zeballos (PUCV), disponible en http://beta.inf.ucv.cl/action-replay.

Sin embargo aun queda mucho por hacer!

CodeRunner es un plugin que se integra a Moodle (Aula Virtual) y que permite realizar quizzes y preguntas de programación, en diversos lenguajes de programación (C, Java, etc). Actualmente utilizamos CodeRunner para los cursos de:

  • Fundamentos de Algoritmos (Prof. Laura Griffiths, Silvana Roncagliolo)
  • Fundamentos de Programación (Prof. Laura Griffiths)

Si bien CodeRunner nos da información sobre los intentos fallidos o exitosos en los distintos problemas de programación, no contamos con la información esencial sobre las sesiones de programación: qué código escriben, qué código borran, el uso de copiar/pegar, etc. El objetivo de este proyecto es modificar CodeRunner para almacenar la información de las sesiones de programación de los estudiantes, en cada uno de los ejercicios realizados usando CodeRunner.


Para extender la plataforma Action Replay! a distintos lenguajes de programación es necesario trabajar con los entornos integrados de programación (IDEs) para así grabar la información de las sesiones de programación. Actualmente sólo tenemos disponible una versión modificada de PSeInt, un IDE enfocado en pseudo-código. Los proyectos enfocados en esta área tienen como objetivo la instrumentación de entornos de programación, tales como:

  • CodeBlocks
  • Eclipse
  • DevCpp
  • u otros…

De manera complementaria, la idea es poder utilizar mecanismos como Programación Orientada a Aspectos, para que la instrumentación pueda ser fácilmente aplicable a distintas versiones de los IDEs, que están en constante evolución.


Si bien Action Replay! considera la grabación de sesiones de programación y su posterior visualización, es necesario crear métricas o indicadores de calidad para detectar problemas tales como el uso excesivo de copy/paste o detectar situaciones de plagio o copia a compañeros. También deseamos detectar y caracterizar las diferencias entre “buenos programadores” y “malos programadores”, y poder detectar patrones de programación que sean beneficiosos o perjudiciales, siempre con el objetivo de dar retroalimentación a los estudiantes y a los profesores.