分类
麻省理工学院新闻

对于大脑来说,阅读计算机代码和阅读语言是不一样的

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

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

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

“理解计算机代码似乎是它自己的事。它不像语言,也不像数学和逻辑,”麻省理工学院的研究生和这项研究的主要作者安娜·伊万诺娃说。

伊芙琳娜·费多伦科(Evelina Fedorenko)是弗雷德里克·a·米德尔顿(Frederick a . and Carole J. Middleton)神经科学职业发展副教授,麦戈文脑研究研究所(McGovern Institute for Brain Research)成员,也是这篇论文的资深作者。来自麻省理工学院计算机科学与人工智能实验室和塔夫茨大学的研究人员也参与了这项研究。

语言与认知

费多伦科研究的一个主要焦点是语言和其他认知功能之间的关系。她特别研究的问题是,其他功能是否依赖于大脑的语言网络,包括布洛卡区和大脑左半球的其他区域。在之前的研究中,她的实验室显示音乐和数学似乎不会激活这一语言网络。

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

她说,关于大脑如何学习编码,有两种观点。一种观点认为,要想擅长编程,你必须擅长数学。另一种观点认为,由于编码和语言之间的相似性,语言技能可能更相关。为了弄清楚这个问题,研究人员开始研究在阅读电脑代码时的大脑活动模式是否与与语言相关的大脑活动重叠。

研究人员在这项研究中关注的两种编程语言都以可读性著称——Python和ScratchJr,后者是一种为5岁及以上儿童设计的可视化编程语言。研究对象都是精通他们被测试语言的年轻人。当程序员躺在功能性磁共振扫描仪上时,研究人员向他们展示一些代码片段,并让他们预测这些代码会产生什么动作。

研究人员发现,大脑的语言区对代码几乎没有反应。相反,他们发现编码任务主要激活了所谓的多需求网络。这个网络的活动遍及大脑的额叶和顶叶,它通常被招募来完成需要同时记住许多信息的任务,并负责我们执行各种各样的心理任务的能力。

伊万诺娃说:“它几乎会做任何有认知挑战的事情,这会让你努力思考。”

先前的研究表明,数学和逻辑问题似乎主要依赖于左脑的多个需求区域,而涉及空间导航的任务对右脑的激活程度要高于左脑。麻省理工学院的研究小组发现,阅读电脑代码似乎同时激活了多需求网络的左右两个部分,而ScratchJr对右侧的激活程度略高于左侧。这一发现推翻了数学和编码依赖于相同的大脑机制的假设。

经验的影响

研究人员表示,虽然他们没有发现专门负责编程的大脑区域,但有更多编程经验的人可能会发展出这种专门的大脑活动。

费多伦科说:“如果你找一些专业程序员,他们花了30或40年的时间用一种特定的语言编写代码,你可能会开始看到一些专业化,或者多元需求系统某些部分的结晶化。”“对于那些熟悉编程并能高效完成这些任务,但经验相对有限的人来说,似乎还看不到任何专业化的迹象。”

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

研究结果表明,对于编程是应该作为一种基于数学的技能还是基于语言的技能来教授,目前还没有一个明确的答案。研究人员说,在某种程度上,这是因为学习编程可能既依赖于语言,也依赖于多元需求系统,即使编程一旦学会,并不依赖于语言区域。

伊万诺娃说:“两大阵营都宣称,数学必须和语言必须结合起来。”“但计算机科学教育者似乎必须开发自己的方法来最有效地教授代码。”

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

相关链接

  • 埃维莉娜Fedorenko
  • 安娜·伊万诺娃
  • 麦戈文脑研究所
  • 大脑与认知科学系
  • 学校的科学

新闻旨在传播有益信息,英文原版地址:https://news.mit.edu/2020/brain-reading-computer-code-1215