Clicky

¿No eres una 'persona matemática'? Puedes ser mejor de lo que crees aprendiendo a codificar

Aprender a programar

La programación también tiene una base en el lenguaje humano

¿Quieres aprender a codificar? Deja el libro de matemáticas. Practica en su lugar tus habilidades de comunicación.

Una nueva investigación de la Universidad de Washington encuentra que una aptitud natural para aprender idiomas es un predictor más fuerte de aprender a programar que el conocimiento matemático básico o la aritmética.

Esto se debe a que escribir código también implica aprender un segundo idioma, la capacidad de aprender el vocabulario y la gramática de ese idioma, y cómo trabajan juntos para comunicar ideas e intenciones. Otras funciones cognitivas vinculadas a ambas áreas, como la resolución de problemas y el uso de la memoria de trabajo, también juegan roles clave.

"Muchas barreras para la programación, desde cursos de prerrequisitos hasta estereotipos de cómo es un buen programador, se centran en la idea de que la programación depende en gran medida de las habilidades matemáticas, y esa idea no nace en nuestros datos", dijo el autor principal, Chantel Prat, profesor asociado de psicología en la UW y en el Instituto de Ciencias del Aprendizaje y del Cerebro.

"Aprender a programar es difícil, pero es cada vez más importante para obtener puestos calificados en la fuerza laboral. Falta información crítica sobre lo que se necesita para ser bueno en la programación en un campo que ha sido notoriamente lento en cerrar la brecha de género".

Publicado en línea el 2 de marzo en Scientific Reports, una revista de acceso abierto del Nature Publishing Group, la investigación examinó las habilidades neurocognitivas de más de tres docenas de adultos mientras aprendían Python, un lenguaje de programación común. Después de una batería de pruebas para evaluar su función ejecutiva, habilidades de lenguaje y matemáticas, los participantes completaron una serie de lecciones y cuestionarios en línea en Python. Aquellos que aprendieron Python más rápido y con mayor precisión, tendieron a tener una combinación de fuertes habilidades de resolución de problemas y lenguaje.

En el mundo actual centrado en STEM, aprender a codificar abre una variedad de posibilidades para trabajos y educación extendida. La codificación está asociada con las matemáticas y la ingeniería. Los cursos de programación de nivel universitario tienden a requerir matemáticas avanzadas para matricularse y tienden a impartirse en departamentos de informática e ingeniería.

Otra investigación, a saber, de la profesora de psicología de la Universidad de Washington, Sapna Cheryan, ha demostrado que tales requisitos y percepciones de la codificación refuerzan los estereotipos sobre la programación como un campo masculino, lo que potencialmente desalienta a las mujeres a seguirlo.

Pero la codificación también tiene una base en el lenguaje humano: la programación implica crear significado al unir símbolos en formas basadas en reglas.

Aunque algunos estudios se han referido a los vínculos cognitivos entre el aprendizaje de idiomas y la programación de computadoras, algunos de los datos tienen décadas de antigüedad, utilizando lenguajes como Pascal que ahora están desactualizados, y ninguno de ellos utilizó medidas de aptitud del lenguaje natural para predecir las diferencias individuales en aprender a programar.

Entonces Prat, que se especializa en los predictores neuronales y cognitivos del aprendizaje de idiomas humanos, se propuso explorar las diferencias individuales en la forma en que las personas aprenden Python. Python fue una elección natural, explicó Prat, porque se parece a estructuras inglesas como la sangría de párrafos y usa para las funciones muchas palabras reales en lugar de símbolos.

Para evaluar las características neuronales y cognitivas de la "aptitud de programación", Prat estudió a un grupo de hablantes nativos de inglés entre las edades de 18 y 35 años que nunca habían aprendido a codificar.

habilidades de programación

Imagen: Este gráfico muestra cómo las habilidades de los participantes en el estudio, tales como la aritmética y la aptitud del lenguaje, contribuyen al aprendizaje de Python. Según el gráfico, la cognición y la aptitud del lenguaje son mayores predictores del aprendizaje que la aritmética.

Antes de aprender a codificar, los participantes realizaron dos tipos de evaluaciones completamente diferentes. Primero, los participantes se sometieron a una exploración de electroencefalografía de cinco minutos, que registró la actividad eléctrica de sus cerebros mientras se relajaban con los ojos cerrados. En investigaciones anteriores, Prat demostró que los patrones de actividad neuronal mientras el cerebro está en reposo pueden predecir hasta el 60% de la variabilidad en la velocidad con la que alguien puede aprender un segundo idioma (en ese caso, el francés).

"En última instancia, estas métricas cerebrales en estado de reposo podrían usarse como medidas libres de cultivo de cómo alguien aprende", dijo Prat.

Luego, los participantes hicieron ocho pruebas diferentes: una que cubría específicamente la aritmética; una que medía la aptitud del lenguaje; y otras que evaluaron la atención, la resolución de problemas y la memoria.

Para aprender Python, a los participantes se les asignaron 10 sesiones de instrucción en línea de 45 minutos utilizando la herramienta educativa Codeacademy. Cada sesión se centró en un concepto de codificación, como listas o condiciones if/then, y concluyó con un cuestionario que un usuario necesitaba aprobar para avanzar a la siguiente sesión. Para obtener ayuda, los usuarios podían recurrir a un botón de "pista", un blog informativo de usuarios anteriores y un botón de "solución", en ese orden.

Desde una pantalla espejo compartida, un investigador siguió junto con cada participante y pudo calcular su "tasa de aprendizaje" o la velocidad con la que dominaron cada lección, así como la precisión de su cuestionario y la cantidad de veces que pidieron ayuda.

Después de completar las sesiones, los participantes tomaron una prueba de opción múltiple sobre el propósito de las funciones (el vocabulario de Python) y la estructura de la codificación (la gramática de Python). Para su tarea final, programaron un juego: piedra, papel, tijera, considerado un proyecto introductorio para un nuevo codificador de Python. Esto ayudó a evaluar su capacidad para escribir código utilizando la información que habían aprendido.

Finalmente, los investigadores encontraron que los puntajes de la prueba de aptitud del lenguaje fueron los predictores más fuertes de la tasa de aprendizaje de los participantes en Python. Los puntajes de las pruebas de aritmética y razonamiento fluido también se asociaron con la tasa de aprendizaje de Python, pero cada uno de estos factores explicaba menos varianza que la aptitud del lenguaje.

Presentado de otra manera, a través de los resultados de aprendizaje, la aptitud del lenguaje de los participantes, el razonamiento fluido y la memoria de trabajo, y la actividad cerebral en estado de reposo fueron todos predictores mayores del aprendizaje de Python que la aritmética, lo que explicaba un promedio del 2% de las diferencias entre las personas.

Es importante destacar que Prat también descubrió que las mismas características de los datos cerebrales en estado de reposo que explicaban anteriormente qué tan rápido alguien aprendería a hablar francés, también explicaban qué tan rápido aprenderían a codificar en Python.

"Este es el primer estudio que vincula los predictores neuronales y cognitivos de la aptitud del lenguaje natural con las diferencias individuales en el aprendizaje de lenguajes de programación. Pudimos explicar más del 70% de la variabilidad en la rapidez con que diferentes personas aprenden a programar en Python, y solo una pequeña fracción de esa cantidad estaba relacionada con la aritmética", dijo Prat.

Investigaciones adicionales podrían examinar las conexiones entre la aptitud del lenguaje y la instrucción de programación en un salón de clases, o con lenguajes más complejos como Java, o con tareas más complicadas para demostrar el dominio de la codificación, dijo Prat.

Artículo científico: Relating Natural Language Aptitude to Individual Differences in Learning Programming Languages

Jesus_Caceres