De alguna manera, aprender a programar una computadora es similar a aprender un nuevo idioma. Requiere aprender nuevos símbolos y términos, que deben organizarse correctamente para instruir a la computadora sobre lo que debe hacer. El código de la computadora también debe ser lo suficientemente claro para que otros programadores puedan leerlo y entenderlo.
A pesar de esas similitudes, los neurocientíficos del MIT han descubierto que leer el código de una computadora no activa las regiones del cerebro que están involucradas en el procesamiento del lenguaje. En su lugar, activa una red distribuida llamada red de demanda múltiple, que también se contrata para tareas cognitivas complejas como resolver problemas matemáticos o crucigramas.
Sin embargo, aunque la lectura de código de computadora activa la red de demanda múltiple, parece depender más de diferentes partes de la red que los problemas matemáticos o lógicos, lo que sugiere que la codificación tampoco replica con precisión las demandas cognitivas de las matemáticas.
«Comprender el código informático parece ser algo propio. No es lo mismo que el lenguaje, y no es lo mismo que las matemáticas y la lógica», dice Anna Ivanova, estudiante de posgrado del MIT y autora principal del estudio.
Evelina Fedorenko, profesora asociada de neurociencia Frederick A. and Carole J. Middleton Career Development y miembro del Instituto McGovern para la Investigación del Cerebro, es la autora principal del artículo, que aparece hoy en eLife. Investigadores del Laboratorio de Ciencias de la Computación e Inteligencia Artificial del MIT y de la Universidad de Tufts también participaron en el estudio.
Lenguaje y cognición
Un enfoque principal de la investigación de Fedorenko es la relación entre el lenguaje y otras funciones cognitivas. En particular, ha estado estudiando la cuestión de si otras funciones dependen de la red de lenguaje del cerebro, que incluye el área de Broca y otras regiones del hemisferio izquierdo del cerebro. En un trabajo anterior, su laboratorio ha demostrado que la música y las matemáticas no parecen activar esta red lingüística.
«Aquí, estábamos interesados en explorar la relación entre el lenguaje y la programación de computadoras, en parte porque la programación de computadoras es un invento tan nuevo que sabemos que no puede haber ningún mecanismo cableado que nos haga buenos programadores», dice Ivanova.
Hay dos escuelas de pensamiento con respecto a cómo el cerebro aprende a codificar, dice. Uno sostiene que para ser bueno en programación, debes ser bueno en matemáticas. El otro sugiere que debido a los paralelismos entre codificación y lenguaje, las habilidades lingüísticas podrían ser más relevantes. Para arrojar luz sobre este tema, los investigadores se propusieron estudiar si los patrones de actividad cerebral al leer el código de la computadora se superpondrían con la actividad cerebral relacionada con el lenguaje.
Los dos lenguajes de programación en los que se centraron los investigadores en este estudio son conocidos por su legibilidad: Python y ScratchJr, un lenguaje de programación visual diseñado para niños de 5 años en adelante. Los sujetos del estudio eran todos adultos jóvenes que dominaban el idioma en el que estaban siendo evaluados. Mientras que los programadores se encontraban en un escáner de resonancia magnética funcional (fMRI), los investigadores les mostraron fragmentos de código y les pidieron que pronosticaran qué acción produciría el código.
Los investigadores vieron poca o ninguna respuesta al código en las regiones del lenguaje del cerebro. En cambio, encontraron que la tarea de codificación activaba principalmente la llamada red de demanda múltiple. Esta red, cuya actividad se extiende a lo largo de los lóbulos frontal y parietal del cerebro, generalmente se recluta para tareas que requieren tener en mente muchos datos a la vez, y es responsable de nuestra capacidad para realizar una amplia variedad de tareas mentales.
«Hace prácticamente cualquier cosa que sea un desafío cognitivo, que te hace pensar mucho», dice Ivanova.
Estudios anteriores han demostrado que los problemas matemáticos y lógicos parecen depender principalmente de las múltiples regiones de demanda en el hemisferio izquierdo, mientras que las tareas que involucran la navegación espacial activan el hemisferio derecho más que el izquierdo. El equipo del MIT descubrió que leer el código de la computadora parece activar tanto el lado izquierdo como el derecho de la red de demanda múltiple, y ScratchJr activó el lado derecho un poco más que el izquierdo. Este hallazgo va en contra de la hipótesis de que las matemáticas y la codificación se basan en los mismos mecanismos cerebrales.
Efectos de la experiencia
Los investigadores dicen que si bien no identificaron ninguna región que pareciera estar dedicada exclusivamente a la programación, tal actividad cerebral especializada podría desarrollarse en personas que tienen mucha más experiencia en codificación.
«Es posible que si se toma a personas que son programadores profesionales, que han pasado 30 o 40 años codificando en un idioma en particular, se puede empezar a ver alguna especialización o cristalización de partes del sistema de demanda múltiple», dice Fedorenko. «En las personas que están familiarizadas con la codificación y pueden realizar estas tareas de manera eficiente, pero que han tenido una experiencia relativamente limitada, parece que todavía no se ve ninguna especialización».
En un documento complementario que aparece en el mismo número de eLife, un equipo de investigadores de la Universidad Johns Hopkins también informó que la resolución de problemas de código activa la red de demanda múltiple en lugar de las regiones del idioma.
Los hallazgos sugieren que no hay una respuesta definitiva a si la codificación debe enseñarse como una habilidad basada en matemáticas o una habilidad basada en el lenguaje. En parte, eso se debe a que aprender a programar puede basarse tanto en el lenguaje como en sistemas de demanda múltiples, incluso si, una vez aprendida, la programación no depende de las regiones del lenguaje, dicen los investigadores.
«Ha habido afirmaciones de ambos campos: tiene que estar junto con las matemáticas, tiene que estar junto con el lenguaje», dice Ivanova. «Pero parece que los educadores en ciencias de la computación tendrán que desarrollar sus propios enfoques para enseñar código de manera más efectiva».
La investigación fue financiada por la National Science Foundation, el Departamento de Ciencias Cerebrales y Cognitivas del MIT y el Instituto McGovern de Investigación del Cerebro.