¿Puede aprender un idioma ayudar con las habilidades de programación?
Explorando la conexión entre aprender idiomas y la educación en programación.
― 12 minilectura
Tabla de contenidos
- Antecedentes
- Metodología
- Participantes
- Tratamiento y Proceso de Aprendizaje
- Recolección de Datos
- Resultados
- Aprendiendo Brocanto
- Competencia en Programación
- Entrevistas Retrospectivas
- Discusión
- Estrategias de Aprendizaje de Idiomas
- Transferencia y Eficacia del Entrenamiento
- Enfoques de Aprendizaje Implícitos y Explícitos
- Desafíos en el Aprendizaje de Programación
- Conclusión
- Fuente original
- Enlaces de referencia
Aprender a programar es complicado. Muchos estudiantes en las universidades tienen dificultades con los cursos de Programación, y muchas veces no está claro cuánto realmente aprenden las habilidades necesarias para programar. A pesar de años de investigación, todavía es complicado encontrar las mejores formas de enseñar programación de manera efectiva.
Estudios recientes con imágenes cerebrales han mostrado que aprender a programar está muy relacionado con las habilidades lingüísticas. Tiene sentido, porque tanto programar como aprender un nuevo idioma requieren entender reglas y estructuras para comunicarse y hacer tareas específicas. Algunas investigaciones ya han demostrado similitudes en cómo aprendemos las reglas de la programación y de los idiomas naturales. Así que parece inteligente ver cómo el Aprendizaje de idiomas puede ayudar a aprender a programar.
Un método común para estudiar idiomas implica el uso de lenguajes artificiales. Estos lenguajes son más simples y pequeños que los idiomas naturales, así que los estudiantes pueden aprenderlos rápido, a veces en solo unas pocas horas. Estudios sobre lenguajes artificiales muestran que activan las mismas áreas del cerebro que procesan los idiomas naturales, lo que los hace útiles para estudiar el aprendizaje de idiomas.
Entendiendo esta conexión, queríamos ver si aprender un lenguaje artificial puede ayudar a los estudiantes a aprender programación mejor. Específicamente, queríamos entrenar estrategias de aprendizaje de idiomas con un lenguaje artificial antes de sumergirnos en la programación. En nuestro estudio, un grupo de estudiantes aprendió un lenguaje artificial llamado Brocanto, mientras que un grupo de control aprendió GIT, un sistema de control de versiones, antes de que ambos grupos tomaran un curso de programación.
Antecedentes
Programar ha sido una habilidad difícil para muchos estudiantes desde hace mucho. La investigación ha mostrado consistentemente que muchos estudiantes no se desempeñan bien en cursos de programación. Incluso aquellos que aprueban a menudo se van con habilidades de programación poco claras. Esto plantea la pregunta: ¿cómo podemos enseñar mejor programación?
Estudios recientes sobre el cerebro sugieren que partes del cerebro relacionadas con el procesamiento del lenguaje se activan cuando las personas aprenden a programar. Este descubrimiento refuerza la idea de que aprender a programar es similar a aprender un nuevo idioma. En ambos casos, los aprendices necesitan entender las reglas y estructuras del idioma en cuestión y luego aplicar esta comprensión para completar tareas.
Algunos investigadores han notado que aprender programación y aprender un idioma natural comparten procesos similares, especialmente en cuanto a sintaxis (el orden de las palabras) y semántica (los significados). Esto sugiere que usar ideas del aprendizaje de idiomas podría ayudar a facilitar el aprendizaje de programación.
Un enfoque efectivo para estudiar el aprendizaje de idiomas es a través de lenguajes artificiales, que están diseñados con reglas y estructuras específicas. Estos lenguajes a menudo carecen de la complejidad de los idiomas naturales, lo que los hace más fáciles de comprender para los aprendices. Además, estudios han mostrado que aprender estos lenguajes artificiales activa las mismas áreas del cerebro utilizadas para procesar idiomas naturales. Esto indica que pueden servir como herramientas valiosas para la investigación en aprendizaje de idiomas.
En nuestro estudio, buscamos probar si las estrategias efectivas de aprender un lenguaje artificial pueden aplicarse para ayudar a los estudiantes a mejorar sus habilidades de programación. Creamos un curso de programación para principiantes donde un grupo aprendió el lenguaje artificial Brocanto, mientras que otro grupo recibió una introducción básica a Git. Nuestro objetivo era ver si entrenar a los estudiantes en Brocanto antes de que comenzaran a programar los alentaría a usar estrategias de aprendizaje de idiomas, lo que podría, a su vez, ayudarles a entender los conceptos de programación más fácilmente.
Metodología
Para llevar a cabo este estudio, diseñamos un experimento donde enseñamos a un grupo de estudiantes un lenguaje artificial (Brocanto) mientras que el otro grupo recibió una introducción a Git. Después de estos tratamientos, ambos grupos participaron en un curso de programación que cubría conceptos fundamentales de programación.
La idea detrás de este enfoque era que al aprender primero Brocanto, los estudiantes activarían estrategias de aprendizaje de idiomas que podrían ser útiles cuando se enfrentaran más tarde a lenguajes de programación. Se eligió Brocanto porque tiene estructuras similares tanto a los idiomas naturales como a los lenguajes de programación, lo que lo hace un precursor apropiado para aprender conceptos de programación.
Participantes
Buscamos reclutar estudiantes de primer año del departamento de Ciencias de la Computación con poca o ninguna experiencia en programación. A pesar de la extensa publicidad para el estudio, enfrentamos desafíos en el reclutamiento, lo que resultó en un menor número de participantes de lo que esperábamos. En total, 20 estudiantes participaron en el estudio, que dividimos en dos grupos: el grupo de Brocanto y el grupo de Git. Ambos grupos estaban asegurados de ser comparables en términos de su experiencia previa en programación y edad.
Tratamiento y Proceso de Aprendizaje
El tratamiento para el grupo de Brocanto implicó aprender el lenguaje artificial de manera estructurada, mientras que el grupo de Git recibió una breve introducción a Git, centrándose en entender sus conceptos básicos y aplicaciones. Los estudiantes del grupo de Brocanto vieron una serie de oraciones en el lenguaje artificial y tenían la tarea de identificar si cada oración era correcta o incorrecta según las reglas que estaban aprendiendo. Esto incluía exposición a oraciones correctas, oraciones incorrectas y una variedad de violaciones de estructura que tenían que identificar.
En contraste, el grupo de Git aprendió sobre sistemas de control de versiones y cómo usar Git sin profundizar en conceptos de programación. Este diseño fue crucial ya que aseguraba que cualquier diferencia en el aprendizaje de programación se atribuyera a los tratamientos recibidos, en lugar del simple tiempo dedicado a la práctica de programación.
Después de la fase de tratamiento, ambos grupos participaron en un curso de programación donde aprendieron los fundamentos de la programación en Python. Esto cubrió temas esenciales como variables, tipos de datos, estructuras de control y sintaxis básica necesaria para programar.
Recolección de Datos
Para medir las habilidades de programación de los participantes, utilizamos un enfoque de pretest y postest. El pretest nos permitió evaluar su conocimiento existente antes de cualquier tratamiento, mientras que el postest evaluó su competencia en programación después de los tratamientos y el curso de programación. Además, realizamos entrevistas retrospectivas con un subconjunto de participantes para obtener información sobre sus estrategias de aprendizaje y experiencias durante el estudio.
Resultados
Aprendiendo Brocanto
El objetivo inicial del estudio era determinar si los participantes podían aprender Brocanto con éxito como se esperaba. Los datos de los bloques de prueba revelaron un aumento en la corrección con el tiempo, lo que sugiere que los estudiantes mejoraron su comprensión del lenguaje artificial durante el tratamiento. Aunque los resultados indicaron éxito en el aprendizaje de Brocanto, esto no se tradujo en una mejora significativa en las habilidades de programación según nuestros resultados medidos.
Competencia en Programación
Al evaluar la competencia en programación de ambos grupos, notamos que no había una diferencia significativa entre los grupos en términos de sus puntajes en las pruebas de programación. Si bien los participantes del grupo de Brocanto se desempeñaron mejor en tareas específicas como condicionales y bucles, estas diferencias no fueron estadísticamente significativas. Este hallazgo indica que, aunque los participantes percibieron valor en las estrategias de aprendizaje de idiomas empleadas, no había evidencia clara de que aprender Brocanto proporcionara una ventaja medible en habilidades de programación.
La falta de diferencia significativa podría atribuirse a la corta duración del estudio, ya que el postest se realizó solo una semana después de los tratamientos. Sigue siendo posible que los efectos de aprender el lenguaje artificial puedan hacerse evidentes en un marco de tiempo más largo o con más práctica.
Entrevistas Retrospectivas
Las entrevistas de seguimiento proporcionaron información valiosa sobre cómo los participantes percibieron sus experiencias de aprendizaje. La mayoría de los estudiantes expresaron incertidumbre sobre la medida en que aprender Brocanto les había ayudado con la programación. Algunos comentaron que, aunque encontraron interesante aprender el lenguaje artificial, les costó determinar su utilidad en el contexto de la programación.
Varios participantes indicaron que entender la sintaxis de programación era un desafío, pero manejable, especialmente cuando podían aplicar estrategias de aprendizaje de idiomas familiares. Los estudiantes notaron que reconocían patrones y estructuras dentro del lenguaje de programación, que reflejaban sus experiencias con Brocanto.
Discusión
Estrategias de Aprendizaje de Idiomas
Nuestro estudio reveló que los estudiantes activaron estrategias de aprendizaje de idiomas mientras aprendían tanto Brocanto como Python, aunque estas estrategias no produjeron diferencias significativas en la competencia en programación. Las entrevistas destacaron que los participantes emplearon un enfoque sistemático al aprender Brocanto, incluyendo identificar estructuras y descomponer oraciones en partes más pequeñas.
Las estrategias reportadas incluyeron reconocer patrones, concentrarse en frases y entender las reglas de sintaxis. Estos procesos están muy alineados con las estrategias típicas de aprendizaje de idiomas, lo que sugiere que los estudiantes confiaron en su conocimiento existente de las estructuras lingüísticas al abordar conceptos de programación.
Transferencia y Eficacia del Entrenamiento
A pesar de la falta de mejora medible en las habilidades de programación, los datos sugieren que el entrenamiento con Brocanto proporcionó marcos mentales útiles para los estudiantes, lo que podría indicar una posible transferencia de habilidades del aprendizaje de idiomas a la programación. Sin embargo, debido a la corta duración del estudio, es difícil sacar conclusiones definitivas sobre la eficacia a largo plazo de este enfoque.
Es esencial reconocer que la introducción de un lenguaje artificial puede facilitar un procesamiento más profundo de los lenguajes de programación, especialmente cuando los aprendices tienen tiempo para consolidar su conocimiento. Esto sugiere que una mayor exploración de la relación entre el aprendizaje de idiomas y la adquisición de programación podría proporcionar información adicional sobre estrategias de enseñanza efectivas.
Enfoques de Aprendizaje Implícitos y Explícitos
Los participantes expresaron sentimientos encontrados sobre sus experiencias de aprendizaje, con algunos señalando que aprender Brocanto se sentía más intuitivo en comparación con la instrucción explícita recibida durante el curso de programación. Estas observaciones sugieren que combinar enfoques de aprendizaje implícitos-favorciendo la exploración y el descubrimiento-con instrucción explícita-proporcionando reglas y plantillas estructuradas-podría mejorar la experiencia de aprendizaje para los estudiantes.
En programación, podría ayudar a los estudiantes dibujar paralelismos entre la comprensión informal y las reglas formales de codificación, lo que permitiría una experiencia de aprendizaje más holística. Futuros estudios podrían beneficiarse de integrar técnicas de enseñanza tanto implícitas como explícitas, fomentando potencialmente una mayor retención de conceptos y habilidades de programación.
Desafíos en el Aprendizaje de Programación
Muchos participantes compartieron sus luchas con las complejidades de la sintaxis de programación, que difería significativamente de sus experiencias con idiomas naturales y el lenguaje artificial que habían aprendido. Esto destaca un desafío común para los principiantes en programación: la brecha entre la representación simbólica del código y las operaciones subyacentes que realiza.
Para cerrar esta brecha, los instructores podrían considerar incorporar estrategias que enfatizan la conexión entre el código y sus comportamientos operacionales. Permitir a los estudiantes explorar la funcionalidad de su código a través de retroalimentación inmediata y salida podría desmitificar la abstracción inherente a los lenguajes de programación, haciéndolos más accesibles.
Conclusión
Este estudio tuvo como objetivo investigar los beneficios potenciales de usar un lenguaje artificial para mejorar la experiencia de aprendizaje de los programadores principiantes. Aunque nuestros resultados no demostraron una mejora significativa en las habilidades de programación a partir del aprendizaje de Brocanto, los participantes activaron estrategias útiles de aprendizaje de idiomas que podrían facilitar el aprendizaje futuro.
Dada la complejidad de los lenguajes de programación y los desafíos que enfrentan muchos estudiantes, se justifica una investigación adicional sobre la interacción entre la adquisición de idiomas y la educación en programación. Explorar cómo combinar efectivamente diferentes estrategias de enseñanza podría ayudar a que la programación sea más accesible y agradable para los estudiantes.
En resumen, nuestros hallazgos sugieren que, aunque aprender un lenguaje artificial como Brocanto no promete mejoras inmediatas en las habilidades de programación, hay valor en entender las estrategias de aprendizaje de idiomas y las conexiones que pueden fomentar en la educación de programación. Este estudio proporciona una base para una investigación y experimentación futura en esta área, mientras buscamos mejorar las experiencias de aprendizaje de los programadores en ciernes y equiparlos mejor para tener éxito en el campo.
Título: Tapping into the Natural Language System with Artificial Languages when Learning Programming
Resumen: Background: In times when the ability to program is becoming increasingly important, it is still difficult to teach students to become successful programmers. One remarkable aspect are recent findings from neuro-imaging studies, which suggest a consistent role of language competency of novice programmers when they learn programming. Thus, for effectively teaching programming, it might be beneficial to draw from linguistic research, especially from foreign language acquisition. Objective: The goal of this study is to investigate the feasibility of this idea, such that we can enhance learning programming by activating language learning mechanisms. Method: To this end, we conducted an empirical study, in which we taught one group of students an artificial language, while another group received an introduction into Git as control condition, before we taught both groups basic programming knowledge in a programming course. Result: We observed that the training of the artificial language can be easily integrated into our curriculum. Furthermore, we observed that language learning strategies were activated and that participants perceived similarities between learning the artificial language and the programming language. However, within the context of our study, we did not find a significant benefit for programming competency when students learned an artificial language first. Conclusion: Our study lays the methodological foundation to explore the use of natural language acquisition research and expand this field step by step. We report our experience here to guide research and to open up the possibilities from the field of linguistic research to improve programming acquisition.
Autores: Elisa Madeleine Hartmann, Annabelle Bergum, Dominik Gorgosch, Norman Peitek, Sven Apel, Janet Siegmund
Última actualización: 2024-01-12 00:00:00
Idioma: English
Fuente URL: https://arxiv.org/abs/2402.01657
Fuente PDF: https://arxiv.org/pdf/2402.01657
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.