Entendiendo el uso de GitHub Copilot por parte de estudiantes de primer año
Un estudio explora cómo los principiantes interactúan con GitHub Copilot en tareas de programación.
― 8 minilectura
Tabla de contenidos
Los avances recientes en el aprendizaje profundo han llevado a la creación de herramientas que pueden generar código de computadora a partir de instrucciones escritas. Estas herramientas están ganando popularidad en entornos educativos, especialmente para principiantes que están Aprendiendo a programar. Permiten a los Estudiantes recibir sugerencias para resolver Tareas de Programación rápidamente. Sin embargo, se sabe poco sobre cómo interactúan los nuevos estudiantes con estas herramientas. Este estudio examina cómo los estudiantes de primer año en la universidad usan GitHub Copilot, una herramienta de sugerencias de código, durante sus tareas de programación.
Antecedentes
En los cursos de programación introductoria, los estudiantes a menudo enfrentan desafíos al escribir código. Pueden tener problemas para crear planes efectivos o desarrollar sus ideas. Esto puede llevar a la frustración, lo que puede obstaculizar su aprendizaje. Los recursos tradicionales como libros de texto y tutoriales no siempre brindan el apoyo necesario. Se han diseñado sistemas de tutoría inteligente para ofrecer retroalimentación individual, pero generalmente se enfocan en tareas específicas y no se adaptan a una gama más amplia de necesidades de programación. Los sistemas de pistas automatizadas pueden generar consejos útiles, pero a menudo dependen de datos de estudiantes anteriores para funcionar eficazmente.
Recientemente, han surgido modelos de lenguaje grandes (LLMs) como GitHub Copilot. Estos modelos pueden dar sugerencias de código en tiempo real basadas en lo que el usuario está escribiendo. Copilot es fácil de usar y está disponible para estudiantes sin costo, lo que lo hace accesible para los recién llegados. Alrededor de estos desarrollos hay preguntas sobre cómo los estudiantes se involucran con estas herramientas de IA, particularmente sus percepciones sobre las ventajas y preocupaciones relacionadas con ellas.
Metodología
Este estudio se centró en observar a estudiantes universitarios usando Copilot en un curso de programación introductoria. Queríamos entender sus experiencias y recopilar sus opiniones sobre la herramienta. El estudio involucró a 19 estudiantes, todos nuevos en programación, y tuvo lugar durante una tarea de programación regular. Cada participante fue monitoreado mientras trabajaba en sus tareas, y se realizaron entrevistas después para discutir sus experiencias.
Participantes
Los participantes de este estudio eran estudiantes universitarios de entre 18 y 22 años, todos inscritos en un curso de programación para principiantes usando C++. No tenían experiencia previa con GitHub Copilot antes del estudio. Cada estudiante fue observado durante 30 minutos mientras completaban una tarea de programación diseñada para desafiar sus habilidades a nivel introductorio.
Observaciones y Entrevistas
Durante las sesiones de codificación, notamos varios puntos importantes sobre cómo los estudiantes reaccionaron al usar Copilot. Después de finalizar las tareas, los estudiantes participaron en entrevistas, discutiendo sus pensamientos sobre la herramienta y su impacto en su aprendizaje.
Impresiones Iniciales
La mayoría de los estudiantes sintió que Copilot les ayudó a escribir código más rápido. Al mismo tiempo, muchos expresaron preocupaciones sobre entender el código generado por la herramienta. Les preocupaba que depender de Copilot pudiera obstaculizar su aprendizaje y hacerlos dependientes de él. Esta dualidad de percepción-ver tanto ventajas como desventajas-era común entre los usuarios.
Patrones de Interacción
Observamos dos patrones principales de interacción durante las sesiones.
Guiado: En este patrón, los estudiantes guiaban a Copilot escribiendo código que coincidía con sus sugerencias. En lugar de construir código desde cero, dependían de los prompts de Copilot para llegar a una solución. Este comportamiento sugiere que los estudiantes podrían centrarse más en la herramienta que en desarrollar sus habilidades de codificación.
Desviación: Este patrón describía a los estudiantes que aceptaban sugerencias de Copilot pero luego las modificaban o eliminaban mientras luchaban por navegar entre las sugerencias. Pasaban de una sugerencia a otra, sin claridad ni dirección en su proceso de codificación. Esto llevó a confusión y frustración, ya que a menudo se encontraban atrapados en un bucle tratando de descifrar las sugerencias.
Respuestas Cognitivas y Emocionales
Los estudiantes experimentaron una variedad de emociones mientras usaban Copilot. Muchos expresaron sentimientos de confusión y frustración cuando no podían entender el código que Copilot generaba. Algunos estudiantes encontraron la herramienta intrusiva, ya que el flujo constante de sugerencias interrumpía sus procesos de pensamiento. Otros reportaron emociones positivas, como sorpresa y emoción, cuando Copilot producía sugerencias útiles.
La carga cognitiva era alta para muchos participantes, ya que pasaron mucho tiempo analizando sugerencias extensas de Copilot. Esto indicaba que la herramienta necesitaba equilibrar entre proporcionar orientación y abrumar a los estudiantes con información.
Ventajas de Usar Copilot
A pesar de los desafíos, los estudiantes reconocieron varias ventajas de usar Copilot en sus tareas de programación.
Velocidad de Finalización: Muchos estudiantes creían que Copilot mejoraba su capacidad para terminar tareas rápidamente. Apreciaron tener una herramienta que les ayudaba a evitar bloqueos típicos de codificación, lo que llevaba a un camino más rápido hacia la finalización.
Oportunidades de Aprendizaje: Algunos participantes mencionaron que Copilot les ayudó a aprender nuevos conceptos y técnicas de codificación. Al examinar las sugerencias, podían entender diferentes maneras de abordar un problema, incluyendo estrategias que no habían considerado anteriormente.
Reducción de Errores: Las sugerencias de Copilot tendían a ser sintácticamente correctas. Esto permitió a los estudiantes evitar errores de sintaxis comunes y centrarse más en la lógica de sus programas.
Preocupaciones Sobre Copilot
Junto con los beneficios, los estudiantes también expresaron preocupaciones sobre el uso de Copilot.
Dependencia Excesiva: Una de las principales preocupaciones era que usar Copilot con frecuencia pudiera obstaculizar su aprendizaje. Los estudiantes reconocieron que si se volvían demasiado dependientes de la herramienta, podrían perderse el desarrollo de habilidades de codificación esenciales.
Malentendidos del Código Generado: Muchos participantes estaban preocupados por no entender completamente el código auto-generado. Temían que pudieran aceptar sugerencias sin saber cómo funcionaban, lo que llevaría a una falta de comprensión en futuros escenarios de programación.
Desarrollo de Habilidades para Resolver Problemas: Los estudiantes expresaron preocupación de que depender de Copilot pudiera afectar su capacidad para pensar críticamente y resolver problemas de forma independiente. Temían que esta dependencia pudiera crear desafíos a largo plazo en su camino de aprendizaje.
Consideraciones Éticas
A medida que Copilot y herramientas similares continúan creciendo en popularidad, están surgiendo problemas éticos. Una de las principales preocupaciones es la integridad académica. La facilidad para generar código con Copilot podría animar a los estudiantes a presentar trabajos que no son suyos o a usar sugerencias sin tener una comprensión sólida de los conceptos subyacentes.
Otro problema ético se relaciona con el potencial sesgo en los datos utilizados para entrenar estos modelos. Si Copilot refleja sesgos presentes en los datos de entrenamiento, podría llevar a sugerencias sesgadas o inapropiadas que podrían no beneficiar a todos los usuarios por igual.
Conclusión
Nuestro estudio subraya la compleja relación que los programadores novatos tienen con herramientas como GitHub Copilot. Aunque estas herramientas ofrecen un potencial significativo para ayudar en el aprendizaje de la programación, hay consideraciones igualmente importantes sobre cómo impactan en el desarrollo de habilidades esenciales.
Implicaciones para la Educación
A medida que las instituciones educativas adoptan cada vez más herramientas impulsadas por IA en sus currículos, es crucial asegurarse de que se enseñe a los estudiantes a usar estas herramientas de manera efectiva. Los instructores necesitarán proporcionar orientación sobre cómo integrar Copilot en el proceso de aprendizaje mientras abordan las implicaciones éticas y los posibles problemas de dependencia excesiva.
Direcciones Futuras
La investigación continua será esencial para comprender mejor cómo los estudiantes interactúan con herramientas impulsadas por IA en su aprendizaje. Estudios futuros deberían explorar el uso a largo plazo de Copilot y tecnologías similares, rastreando cómo los estudiantes se adaptan y si sus habilidades mejoran o disminuyen. Al examinar estas interacciones, los educadores pueden adaptar mejor el apoyo y los recursos para maximizar los beneficios de herramientas como Copilot mientras minimizan los posibles inconvenientes.
En conclusión, la introducción de herramientas como GitHub Copilot representa tanto una oportunidad emocionante como un desafío en la educación de la programación. Al ser conscientes de las experiencias y percepciones de los estudiantes, podemos trabajar hacia un enfoque equilibrado que abrace la innovación mientras fomentamos habilidades fundamentales en codificación y resolución de problemas.
Título: "It's Weird That it Knows What I Want": Usability and Interactions with Copilot for Novice Programmers
Resumen: Recent developments in deep learning have resulted in code-generation models that produce source code from natural language and code-based prompts with high accuracy. This is likely to have profound effects in the classroom, where novices learning to code can now use free tools to automatically suggest solutions to programming exercises and assignments. However, little is currently known about how novices interact with these tools in practice. We present the first study that observes students at the introductory level using one such code auto-generating tool, Github Copilot, on a typical introductory programming (CS1) assignment. Through observations and interviews we explore student perceptions of the benefits and pitfalls of this technology for learning, present new observed interaction patterns, and discuss cognitive and metacognitive difficulties faced by students. We consider design implications of these findings, specifically in terms of how tools like Copilot can better support and scaffold the novice programming experience.
Autores: James Prather, Brent N. Reeves, Paul Denny, Brett A. Becker, Juho Leinonen, Andrew Luxton-Reilly, Garrett Powell, James Finnie-Ansley, Eddie Antonio Santos
Última actualización: 2023-04-05 00:00:00
Idioma: English
Fuente URL: https://arxiv.org/abs/2304.02491
Fuente PDF: https://arxiv.org/pdf/2304.02491
Licencia: https://creativecommons.org/licenses/by/4.0/
Cambios: Este resumen se ha elaborado con la ayuda de AI y puede contener imprecisiones. Para obtener información precisa, consulte los documentos originales enlazados aquí.
Gracias a arxiv por el uso de su interoperabilidad de acceso abierto.
Enlaces de referencia
- https://www.acm.org/publications/taps/whitelist-of-latex-packages
- https://orcid.org/0000-0002-4279-6284
- https://dl.acm.org/ccs.cfm
- https://github.com/features/copilot
- https://openai.com/blog/openai-codex/
- https://www.deepmind.com/
- https://alphacode.deepmind.com/
- https://www.deepmind.com/blog/competitive-programming-with-alphacode
- https://github.com/deepmind/code
- https://aws.amazon.com/codewhisperer/
- https://pages.awscloud.com/codewhisperer-sign-up-form.html
- https://www.midjourney.com
- https://stability.ai/blog/stable-diffusion-announcement
- https://openai.com/dall-e-2/
- https://code4me.me/
- https://github.com/moyix/fauxpilot
- https://www.tabnine.com/
- https://arxiv.org/abs/2208.09727
- https://en.wikipedia.org/wiki/Ship
- https://githubcopilotlitigation.com/
- https://galactica.org/explore/
- https://openai.com/blog/chatgpt/
- https://github.blog/2022-11-01-preview-referencing-public-code-in-github-copilot/