对大脑而言,阅读计算机代码与阅读语言不同

神经科学家发现,解释代码可以激活通用的大脑网络,但不能激活语言处理中心。

安妮·特拉夫顿 | 麻省理工学院新闻办公室 发布日期:2020年12月15日


在某些方面,学习计算机编程与学习新语言相似。它需要学习新的符号和术语,必须正确组织这些符号和术语以指导计算机该怎么做。计算机代码还必须足够清晰,以便其他程序员可以阅读和理解。

尽管存在这些相似之处,麻省理工学院的神经科学家发现,阅读计算机代码并不能激活与语言处理有关的大脑区域。取而代之的是,它激活了一个称为多需求网络的分布式网络,该网络也被招募用于解决复杂的认知任务,例如解决数学问题或填字游戏。

但是,尽管阅读计算机代码会激活多需求网络,但与数学或逻辑问题相比,它似乎更多地依赖于网络的不同部分,这表明编码也不能精确地复制数学的认知需求。

“理解计算机代码似乎是自己的事。它与语言不同,数学与逻辑也不相同。”麻省理工学院研究生,该研究的主要作者安娜·伊凡诺娃(Anna Ivanova)说。

Evelina Fedorenko,Frederick A.和Carole J. Middleton职业发展神经科学副教授,麦戈文脑科学研究所的成员,是该论文的高级作者,该论文今天发表在eLife上。麻省理工学院计算机科学与人工智能实验室和塔夫茨大学的研究人员也参与了这项研究。

语言与认知

Fedorenko研究的主要重点是语言与其他认知功能之间的关系。特别是,她一直在研究其他功能是否依赖于大脑的语言网络(包括Broca区域和大脑左半球的其他区域)的问题。在先前的工作中,她的实验室表明,音乐和数学似乎并未激活该语言网络。

“在这里,我们有兴趣探索语言和计算机编程之间的关系,部分原因是计算机编程是一个新发明,我们知道不可能有任何硬连线机制使我们成为优秀的程序员,”伊万诺娃说。

她说,关于大脑如何学习编码,存在两种思想流派。有人认为,要精通编程,就必须精通数学。另一个建议认为,由于编码和语言之间的相似性,语言技能可能更相关。为了阐明这一问题,研究人员着手研究在阅读计算机代码时大脑活动模式是否会与语言相关的大脑活动重叠。

研究人员在本研究中重点关注以可读性着称的两种编程语言——Python和ScratchJr。ScratchJr这是一种专为5岁及5岁以上儿童设计的可视化编程语言。研究对象均为精通测试语言的年轻人。当程序员躺在功能磁共振(fMRI)扫描仪中时,研究人员向他们展示了代码片段,并要求他们预测代码将产生什么动作。

研究人员几乎看不到大脑语言区域对代码的反应。相反,他们发现编码任务主要激活了所谓的多需求网络。这个网络的活动遍布整个大脑的额叶和顶叶,通常是为需要同时记住许多信息的任务而招募的,它负责我们执行各种心理任务的能力。

伊万诺娃说:“它所做的几乎所有在认知上都具有挑战性的事情,使您难以思考。”

先前的研究表明,数学和逻辑问题似乎主要取决于左半球的多个需求区域,而涉及空间导航的任务比右半球更多地激活右半球。麻省理工学院的研究小组发现,读取计算机代码似乎可以激活多需求网络的左侧和右侧,而ScratchJr激活右侧的程度要比左侧高一些。这一发现违背了数学和编码依赖相同大脑机制的假设。

经验的影响

研究人员说,尽管他们没有发现任何似乎专门用于编程的区域,但是这种具有特殊脑活动的区域可能会在具有更多编码经验的人中发展。

Fedorenko说:“如果您聘用了以30年或40年的特定语言编写代码的专业程序员的人,您可能会开始看到某些专业化知识,或者是多个需求系统某些部分的结晶”,Fedorenko说。“对于那些熟悉编码并且可以有效地完成这些任务,但经验相对有限的人来说,似乎您还看不到任何专业化知识。”

约翰·霍普金斯大学的一组研究人员在同一期eLife上发表的一篇伴随论文中也报告说,解决代码问题可以激活多需求网络而不是语言区域。

研究结果表明,对于编码应该以基于数学的技能还是基于语言的技能进行教授,尚无定论。研究人员说,部分原因是因为学习编程可能会同时依赖语言和多种需求系统,即使—一旦学会了编程,就不会依赖语言区域。

伊万诺娃说:“两个阵营都宣称,它必须与数学结合在一起,必须与语言结合在一起。” “但是看来,计算机科学教育者将不得不开发自己的方法来最有效地教授代码。”

全文完。


如果您想看原文,可以访问:链接