Uso de herramientas de IA generativa en programación

El profesor de la Escuela Técnica Superior de Ingenieros Informáticos de la Universidad Politécnica de Madrid, Guillermo Vigueras, explica en la siguiente entrevista en qué consiste este Proyecto de Innovación Educativa denominado PROGEN-IA.

13.12.24

El Proyecto de Innovación Educativa, PROGEN-IA: Uso de herramientas de IA generativa en programación, coordinado por Guillermo Vigueras, profesor del departamento de Lenguajes y Sistemas Informáticos de Ingeniería de Software de la ETS de Ingenieros Informáticos de la UPM, ha permitido que alumnos de programación aprendan a utilizar herramientas de IA generativa en tareas de desarrollo de software o de casos de test para validar código.

Además, su propósito ha sido conocer a los alumnos las limitaciones y desafíos que presenta el uso de la IA generativa en programación en relación con aspectos éticos y técnicos. Para ello, se ha fomentado en el alumno el análisis y evaluación del código proporcionado por herramientas de IA generativa, antes de aceptarlo como válido.

¿Cómo surgió la idea y cómo se ha desarrollado?

La idea surgió debido al auge que se está experimentando en el uso de modelos de IA generativa en muchos ámbitos (e.g. ChatGPT), también en programación. Estos modelos de IA se están utilizado para generar automáticamente fragmentos de código, escribir documentación e incluso crear programas completos. Esto tiene el potencial de acelerar enormemente el proceso de desarrollo y mejorar la productividad en general, realidad que se quería dar a conocer a los estudiantes.

Además de los beneficios antes mencionados, también se quería dar a conocer a los estudiantes varios desafíos que plantea el uso de la IA generativa en programación. Por ejemplo, presenta desafíos técnicos, debido al gran número de casos de ejemplo y recursos computacionales requeridos, o desafíos éticos, debido a posibles sesgos en el entrenamiento o por su uso con fines maliciosos.

Además, la adopción de la IA generativa supone un desafío por parte de los programadores ya que puede verse como una amenaza para la seguridad laboral o la experiencia profesional. Sin embargo, es importante hacer ver a futuros desarrolladores que la IA generativa es una herramienta para mejorar y aumentar las capacidades humanas y no para reemplazarlas.

La experiencia de innovación educativa se ha desarrollado correctamente, donde se ha diseñado un experimento mediante el cuál evaluar el impacto en la eficiencia y eficacia de los estudiantes cuando resuelven ejercicios de programación utilizando y sin utilizar herramientas de IA generativa, en concreto se ha utilizado CodeWisperer desarrollado por la empresa Amazon. Para ello se ha preparado documentación y se ha dado formación a los alumnos en el uso de CodeWisperer, aunque ofrece una interfaz de uso muy similar a otras, por lo que los conocimientos adquiridos pueden permitir otras herramientas de IA generativa. Además se prepararon una serie de formularios para recoger las respuestas de los alumnos a los ejercicios de programación resueltos.

¿Qué resultados ha obtenido?

Tras los experimentos realizados se ha observado que el uso de IA generativa ha permitido mejorar las tasas de resolución de ejercicios de programación correctamente. Además, dicha mejora en las tasas de éxito a la hora de programación hay que añadir que se han alcanzado reduciendo el tiempo de ejecución, por lo que el impacto ha sido aún mayor.

¿Cómo lo han valorado los estudiantes? y ¿el equipo docente?

Tanto los estudiantes como el equipo docente lo han valorado muy positivamente, ya que tanto para unos como otros la experiencia de innovación educativa ha permitido conocer mejor y utilizar herramientas tan en auge como es la IA generativa, de una manera práctica y aplicándolo a problemas de programación.

¿Cuáles son las principales dificultades a las que te has enfrentado?,

Las principales dificultades han sido sobre todo diseñar bien el experimento a realizar para medir el impacto del uso en el aula de herramientas de IA generativa para programación. Una vez definido, luego ya consistió en trabajar para preparar el material y llevar a cabo el PIE.

¿Qué habría que mejorar? ¿Aspectos que se han cumplido?

En principio, consideramos que dado el tiempo y recursos de los que se disponían la ejecución del PIE ha sido satisfactoria y se han podido cumplir con los objetivos que se plantearon.

¿Cómo se plantea la continuidad en el futuro?

Para el futuro nos gustaría poder aplicar la misma idea de innovación educativa y experimentos diseñados en otras asignaturas de programación.