[译]对大脑来说,读电脑代码和读语言是不一样的

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

原文地址:https://news.mit.edu/2020/brain-reading-computer-code-1215
原文作者:Anne Trafton | MIT新闻办公室
发布时间:2020年12月15日

image.png

在某些方面,学习计算机编程类似于学习一门新的语言。它需要学习新的符号和术语,这些符号和术语必须被正确地组织起来,以指示计算机做什么。计算机代码还必须足够清晰,以便其他程序员能够阅读和理解它。

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

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

"理解计算机代码似乎是自己的事情。它和语言不一样,也和数学和逻辑不一样。"麻省理工学院研究生、该研究的主要作者Anna Ivanova说。

弗雷德里克-A.和卡罗尔-J.米德尔顿神经科学职业发展副教授、麦戈文大脑研究所的成员伊夫林娜-费多伦科是该论文的资深作者,该论文今天发表在《eLife》上。麻省理工学院计算机科学与人工智能实验室和塔夫茨大学的研究人员也参与了这项研究。

语言与认知

费多伦科的一个主要研究重点是语言与其他认知功能之间的关系。特别是,她一直在研究其他功能是否依赖于大脑的语言网络,其中包括布罗卡区和大脑左半球的其他区域。在以前的工作中,她的实验室已经表明,音乐和数学似乎不会激活这个语言网络。

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

关于大脑如何学习编程,她说,有两派观点。一派认为,要想成为优秀的程序员,你必须擅长数学。另一种认为,由于编码和语言之间的相似之处,语言技能可能更相关。为了阐明这个问题,研究人员着手研究阅读计算机代码时的大脑活动模式是否会与语言相关的大脑活动重叠。

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

研究人员看到,大脑的语言区域对代码几乎没有反应。相反,他们发现编码任务主要激活了所谓的多重需求网络。这个网络的活动分布在大脑的额叶和顶叶,通常被招募用于需要同时在脑海中持有许多信息的任务,并负责我们执行各种心理任务的能力。

"它几乎可以做任何具有认知挑战的事情,让你努力思考,"伊万诺娃说。

以前的研究表明,数学和逻辑问题似乎主要依赖于左半球的多重需求区域,而涉及空间导航的任务激活右半球比左半球更多。麻省理工学院的团队发现,阅读计算机代码似乎同时激活了多需求网络的左右两边,ScratchJr激活的右边比左边略多。这一发现与数学和编码依赖相同的大脑机制的假说相悖。

经验的影响

研究人员表示,虽然他们没有发现任何似乎专门用于编程的区域,但这种专门的大脑活动可能会在那些有更多编码经验的人身上发展。

"有可能的是,如果你把那些专业程序员,花了30或40年时间用特定语言编码的人,你可能会开始看到一些专业化,或者多需求系统的部分结晶,"Fedorenko说。"在那些熟悉编码并能高效完成这些任务,但经验相对有限的人身上,你似乎还看不到任何专业化的现象。"

在出现在同一期《eLife》上的一篇配套论文中,来自约翰-霍普金斯大学的一个研究团队也报告说,解决代码问题会激活多重需求网络,而不是语言区域。

研究结果表明,编码应该作为一种基于数学的技能还是一种基于语言的技能来教授,并没有一个明确的答案。研究人员说,部分原因是学习编程可能会同时借助语言和多重需求系统,即使--一旦学会了--编程并不依赖于语言区域。

"两个阵营都有说法--必须和数学在一起,必须和语言在一起,"Ivanova说。"但看起来计算机科学教育者将不得不开发自己的方法来最有效地教授代码。"

这项研究得到了美国国家科学基金会、麻省理工学院大脑和认知科学系以及麦戈文大脑研究所的资助。


通过www.DeepL.com/Translator(免费版)翻译

你可能感兴趣的:([译]对大脑来说,读电脑代码和读语言是不一样的)