Enfoque
Introducción
El desarrollo de los Large Language Models (LLMs) ha supuesto un avance cualitativo en la posibilidad de generar automáticamente recursos de uso educativo. Algunos de ellos se especializan en la generación de código en diferentes lenguajes de programación. Esto supone una novedad como herramienta para la creación de recursos docentes en materias relacionadas. No obstante, la calidad y la idoneidad para uso educativo de esos ejemplos no ha sido aún reportada en estudios sistemáticos.
Objetivos
El objetivo de esta investigación es el de llevar a cabo un análisis inicial del uso de LLMs especializados en generar código de ejemplo para asignaturas de programación, que pueda utilizarse con propósitos de ejemplificación, práctica, o evaluación.
Metodología
Se seleccionó como herramienta GitHub Copilot, dentro del programa de uso gratuito docente. La asignatura objetivo fue Fundamentos de la Programación de primer curso de Ingeniería Informática, donde se utiliza Python. Para acotar la tarea, se seleccionó solo un patrón de ejercicio simple, adecuado para las primeras semanas del curso, del cual los profesores utilizan variantes habitualmente. Concretamente, se trata de fragmentos de programa o funciones que generan patrones en consola. El caso base es la generación de un rectángulo mediante impresión de caracteres, con una doble iteración. Sobre ella, se proponen cambios que implican el uso de condicionales, o la modificación de la relación entre las variables de control del bucle anidado. Para evaluar la capacidad del LLM, se utilizó el entorno VSCode donde se puede integrar GitHub Copilot, y se experimentó con los siguientes pasos:
- Propuesta de “prompts” y contextos para generar variantes sobre el caso base.
- Uso de las propuestas y recogida sistemática del código generado, para variantes (prompt, contexto).
- Evaluación de los fragmentos generados.
- Evaluación de la capacidad de autocorrección guiada en los casos considerados inadecuados por los docentes.
Resultados y discusión
Los resultados de la generación sistemática resultaron en un número considerable de ejemplos utilizables y adecuados, con pocos errores. No obstante, el sistema sin contexto manifestó una tendencia a repetir ejemplos generados, y el uso como contexto de ejemplos precedentes no tuvo el impacto deseado en evitar esa repetición. También se encontraron dificultades y una necesidad de refinamiento de prompts por parte de los docentes para generar versiones modularizadas del código o evitar elementos idiomáticos de Python como el uso del operador “*” para la repetición de cadenas.
Conclusiones
Los resultados apuntan a que los LLM especializados en código son una herramienta útil en la generación de ejemplos de código, pero requieren una ingeniería de prompts y un filtrado de estos, o un proceso de elicitación y revisión de los docentes. Por ello son adecuados como herramienta de soporte pero no lo parecen actualmente para otras tareas donde no haya supervisión humana y se requiera la capacidad de generar muchas variantes diferentes, como podría ser la generación automática de bancos de preguntas. Esos usos adicionales podrían no obstante lograrse con los mismos LLMs utilizando contextos o prompts por descubrir, necesitando por ello más experimentación empírica con los mismos.
María Teresa Barranco Crespo
Comentó el 02/02/2024 a las 20:34:15
Buenas tardes,
El área de la programación me parece muy interesante. Me gustaría preguntar si han explorado las oportunidades que puede ofrecer la programación en videojuegos y la Inteligencia Artificial, especialmente con un enfoque en su aplicación pedagógica. ¿Cómo se están utilizando estas tecnologías para enriquecer la educación y el aprendizaje en la actualidad?
Miguel Ángel Sicilia Urbán
Comentó el 03/02/2024 a las 08:07:24
Muchas gracias por la pregunta.
No somos especialistas en programación de videojuegos, y no hemos hecho experimentos específicos en ese área. La IA se lleva aplicando en muchas áreas de los videojuegos desde hace años.
Particularmente, en lo relativo a los LLMs que tratamos en la ponencia, recientemente se han establecido las bases para evaluar su uso dentro de los videojuegos de role-play: https://aclanthology.org/2023.findings-emnlp.151.pdf
Posiblemente de esa forma se pueda comenzar a estudiar su uso en videojuegos educativos de manera sistemática.
Saludos,
Miguel Angel
Pablo Rosser
Comentó el 31/01/2024 a las 16:43:13
Felicidades por su investigación y por abordar un tema tan relevante como el uso de Large Language Models (LLMs) en la educación, especialmente en la generación de código para la enseñanza de programación. Su trabajo aporta una visión crítica y necesaria sobre las posibilidades y limitaciones de estas herramientas en contextos educativos.
Me gustaría preguntar: Dado que han identificado la necesidad de una ingeniería de prompts y un filtrado o revisión por parte de los docentes para utilizar efectivamente los LLMs en la generación de ejemplos de código, ¿cuáles serían las estrategias recomendadas para formar a los docentes en estas competencias? Además, ¿ven algún potencial en el desarrollo de interfaces o herramientas adicionales que podrían facilitar este proceso y hacer que los LLMs sean más accesibles y eficientes para los educadores sin experiencia en programación avanzada o en inteligencia artificial? Gracias. Pablo Rosser
Miguel Ángel Sicilia Urbán
Comentó el 01/02/2024 a las 10:30:56
Hola, Pablo. Agradezco tu pregunta, muchas gracias.
Para formar a los docentes en la ingeniería de prompts y la revisión de ejemplos de código generados por LLMs, sugiero sobre todo:
- Talleres Prácticos: Impartir sesiones prácticas para diseñar prompts efectivos y revisar código generado.
- Comunidades de Práctica: Fomentar la colaboración entre docentes para compartir experiencias y mejores prácticas.
En cuanto a herramientas adicionales, se podría explorar desarrollar interfaces amigables para simplificar la interacción con LLMs.
O bien el filtrado automático: crear herramientas automáticas que faciliten la revisión de ejemplos de código.
Hacerlo sobre VSCode y Copilot ahora mismo creo que no es fácil, habría que crear un plugin y hasta donde sé CoPilot no tiene herramientas de programación de extensiones específicas de VSCode. No obstante, en el futuro pensamos en hacer los experimentos con Code LLMs de acceso libre, y ahí ya sí habría toda la flexibilidad.
Un saludo,
Miguel Angel
Deja tu comentario
Lo siento, debes estar conectado para publicar un comentario.
Organizan
Colaboran
Configuración de Cookies
Utilizamos cookies para mejorar su experiencia y las funcionalidades de esta web. Ver política de cookies