【编者按】不夸张地说,在这个时代,编程时时刻刻都在影响着整个世界的运转,它让我们的生活变得更加惬意悠闲。那编程到底是什么?应该算一门语言?还是算逻辑的具体实现?
以下为译文:
神经科学家们发现,人类在解读代码时会激活一个通用的大脑区域网络,但不会激活语言处理中心。
就某些方面而言,学习计算机编程和学习一门新语言的过程非常类似。二者都需要学习新的符号和术语,然后以正确的方式将这些符号和术语组织起来,进而指导计算机去执行相应的任务。和语言一样,传达计算机代码时也需要足够清晰,以便其他程序员能够阅读和理解。
尽管两者间有这些相似之处,但麻省理工学院的神经科学家们发现,人类在阅读计算机代码时并不会激活大脑中与语言处理有关的区域。相反,它会激活一个名为“多重需求网络”的分布式网络,该网络也会被用于处理复杂的认知任务,如解决数学问题或填字游戏。
然而,尽管阅读计算机代码会激活“多重需求网络”,但与解决数学或逻辑问题相比,它所依赖的网络区域又有所不同。因此,这表明编码过程并不能精确地复制数学认知需求。
麻省理工学院研究生、该研究的主要作者安娜·伊万诺娃(Anna Ivanova)表示:“理解计算机代码似乎是一种独一无二过程。它不同于学习语言,也有别于处理数学和逻辑问题”。
伊芙琳娜·费多伦科(Evelina Fedorenko)——弗雷德里克·A 和卡罗尔·J(Frederick a . and Carole J. )米德尔敦神经科学职业发展副教授,兼麦戈文大脑研究所(McGovern Institute for Brain Research)成员——是该项研究论文的资深作者。同时,麻省理工学院计算机科学与人工智能实验室(MIT’s Computer Science and Artificial Intelligence Laboratory)和塔夫茨大学(Tufts University)的研究人员也参与了此次研究。
语言与认知
费多伦科研究的重点之一是语言和其他认知功能之间的关系。尤其是其他功能是否依赖于大脑的语言网络——包括布罗卡氏区(Broca’s )和大脑左半球的其他区域。她之前参与的研究证明,音乐和数学似乎不会激活这一语言网络。
伊万诺娃指出:“我们乐于去探索语言和计算机编程之间的关系,计算机编程是一项新技术,还不存在能够使人一键成为优秀程序员的硬性机制”。
她表示,关于“大脑如何学习编码”的问题,目前学术界的观点主要分两派:一派认为,要善于编程,就必须擅长数学;另一派认为,由于编码和语言学习存在相似性,因此语言技能或许更有利于编程学习。
为了弄清楚这个问题,研究人员们开始研究在阅读计算机代码时的大脑活动模式是否和同语言相关的大脑活动存在重叠。
在这项研究中,研究人员重点关注的是两种以可读性强而著称的编程语言—— Python 和 ScratchJr,专为 5 岁及以上人群设计的可视化编程语言。研究中的受试者都是精通其所测试语言的年轻人。当程序员躺在功能性磁共振(fMRI)扫描仪中时,研究人员会向他们展示一些代码片段,并让他们预测这些代码会生成什么操作。
结果发现,被试者的大脑语言区几乎没有产生任何反应。相反,研究人员发现编码任务主要激活了所谓的多重需求网络。该网络活动主要分布于大脑的额叶和顶叶,常被用来完成需要同时记住多种信息的任务,并负责协助人类执行各类脑力任务。
伊万诺提到:”多重需求网络几乎可以完成任何具有认知挑战的事情,促使人们努力思考”。
以往的研究表明,数学和逻辑问题似乎主要依赖于左脑的多重需求区域,而当涉及空间导航任务时,人类右脑的激活程度则要高于左脑。麻省理工学院的研究团队发现,阅读计算机代码似乎会同时激活人脑左右两侧的多需求网络,而 ScratchJr 对右侧的激活程度略高于左侧。这一发现推翻了此前“数学和编码依赖于相同的大脑机制”的假设。
经验的影响
研究人员表示,虽然此次试验似乎并没有发现专门负责计算机编程的大脑区域,但编程经验更丰富的人可能会发展出这种专门的大脑活动。
费多伦科称:“如果找一些花了 30 或 40 年时间持续用某种特定的语言编写代码的专业程序员,我们或许就会在人脑中发现一些特殊的专业化现象,或在多重需求系统的特定区域发现结晶化现象。这需要受试者非常了解编程,并且能高效地完成相关任务。因为在经验相对有限的人身上,我们似乎还看不到任何专业化现象”。
在同一期《eLife》上发表的另一篇相关论文中,来自约翰霍普金斯大学(Johns Hopkins University)的研究团队也报告称,解决代码问题激活的是大脑的多重需求网络,而不是语言区域。
研究结果表明,对于“编程应该作为一种基于数学的技能还是基于语言的技能来教授”这一问题,目前还没有一个明确的答案。
研究人员表示,或许这是因为,从一定程度上而言,学习编程的过程既要依赖于语言,也要依赖于多重需求系统,但在学会之后,编程便不再依赖于大脑语言区域。
伊万诺娃提到:“两派观点各执一词——编程必须和数学结合在一起;编程必须和语言结合在一起。但对于计算机科学教育者们而言,要想以最有效的方法来教授代码知识,似乎必须要开发出适合自己的方法。”
这项研究由美国国家科学基金会(National Science Foundation)、麻省理工学院大脑和认知科学部(Department of the Brain and Cognitive Sciences at MIT)以及麦戈文大脑研究所(the Department of the Brain and Cognitive Sciences at MIT)资助进行。
零基础学习Java编程,推荐加入我的Java学习园地。