Miércoles, 27 de enero de 2021

Cómo funcionan los lenguajes computacionales en el cerebro del programador

27/12/2020
María Fernanda Alonso

Para programar una computadora hay que aprender símbolos y términos propios de la programación, así como organizarlos del modo correcto para instruir a la computadora en lo que tiene que hacer. Además, el código utilizado debe ser lo suficientemente claro para que otros programadores puedan leerlo y entenderlo. Estas características han llevado a muchas personas a comparar la programación con el lenguaje, sosteniendo que programar se equipara a aprender un nuevo idioma. Sin embargo, a pesar de sus similitudes, un equipo de neurocientíficos del Instituto de Tecnología de Massachusetts MIT encontró 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 activa para tareas cognitivas complejas como resolver problemas matemáticos o crucigramas, no obstante eso, si bien leer códigos de computadora activa la red de demandas múltiples, 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 (Ivanova et al., 2020).

¿Cómo aprende a codificar el cerebro? Explican los autores que hay dos escuelas de pensamiento al respecto: una sostiene que para ser bueno en programación, debes ser bueno en matemáticas. La otra sugiere que debido a los paralelismos entre la codificación y el lenguaje, las habilidades lingüísticas podrían ser más relevantes.

Para entender mejor el tema, los investigadores se propusieron estudiar si los patrones de actividad cerebral al leer códigos de computadora se superpondrían con la actividad cerebral relacionada con el lenguaje.

Metodología

Los dos lenguajes de programación en los que los investigadores se centraron para 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.

Todos los participantes del estudio eran adultos jóvenes que dominaban el idioma en el que se les estaba evaluando. Mientras los programadores se encontraban en un escáner de resonancia magnética funcional (fMRI), los investigadores les mostraron fragmentos de códigos y les pidieron que predijeran qué acción produciría el código.

Hallazgos

Se encontró poca o ninguna respuesta al código en las regiones del lenguaje del cerebro. En cambio, 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 activa para tareas que requieren tener en mente muchos datos a la vez, y es responsable de prácticamente cualquier tarea que represente un desafío cognitivo.

Estudios anteriores han demostrado que los problemas matemáticos y lógicos parecen depender principalmente de las regiones de demanda múltiple 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.

Si bien los investigadores 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, como programadores profesionales, personas que hayan pasado 30 o 40 años codificando en un lenguaje en particular. Tal especialización no fue observada en personas que están familiarizadas con la codificación y pueden hacer estas tareas, pero han tenido una experiencia relativamente limitada, según los autores del estudio.

Finalmente, los hallazgos sugieren que no existe una respuesta definitiva sobre 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últiple, incluso si, una vez aprendida, la programación no se basa en las regiones del lenguaje, explican los investigadores. Al parecer, la programación podría requerir un enfoque nuevo para ser enseñada, y no uno basado exclusivamente en matemáticas o en el lenguaje.

Referencia bibliográfica: Ivanova, A. A., Srikant, S., Sueoka, Y., Kean, H. H., Dhamala, R., O’Reilly, U.-M., Bers, M. U., & Fedorenko, E. (2020). Comprehension of computer code relies primarily on domain-general executive brain regions. eLife, 9. https://doi.org/10.7554/eLife.58906