当前位置: 首页 > 编程日记 > 正文

对人脑而言,阅读计算机代码和阅读语言有何不同?

作者 | Anne Trafton

翻译 | 火火酱,责编 | 晋兆雨

出品 | AI科技大本营

头图 | 付费下载于视觉中国

神经科学家们发现,人类在解读代码时会激活一个通用的大脑区域网络,但不会激活语言处理中心。

就某些方面而言,学习计算机编程和学习一门新语言的过程非常类似。二者都需要学习新的符号和术语,然后以正确的方式将这些符号和术语组织起来,进而指导计算机去执行相应的任务。和语言一样,传达计算机代码时也需要足够清晰,以便其他程序员能够阅读和理解。

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

然而,尽管阅读计算机代码会激活“多重需求网络”,但与解决数学或逻辑问题相比,它所依赖的网络区域又有所不同。因此,这表明编码过程并不能精确地复制数学认知需求。

麻省理工学院研究生、该研究的主要作者安娜·伊万诺娃(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)资助进行。

*本文仅代表作者个人观点,不代表AI科技大本营任何立场。

原文链接:

https://news.mit.edu/2020/brain-reading-computer-code-1215

本文由AI科技大本营翻译,转载请注明出处

更多精彩推荐
  • 为什么苹果M1芯片这么快?

  • 2020年中国AI算力报告发布:超大算法模型挑战之下,公共AI算力基建是关键

  • 短视频特效“耍花招”:线上投篮、摆摊,让画中人摇摆,浅谈腾讯微视的AR基建

  • 企业使用云计算低效益怎么办?区块链或成良药

  • 跨平台将终结

相关文章:

如何在asp.net中动态生成验证码

现在越来越多的网站喜欢搞个验证码出来,而且各个语言基本上都能做到,今天我来一个C#写的! using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Drawing;using System.Web;using System.Web…

http_build_query用法

2019独角兽企业重金招聘Python工程师标准>>> http_build_query (PHP 5) http_build_query -- 生成 url-encoded 之后的请求字符串 描述string http_build_query ( array formdata [, string numeric_prefix] ) 使用给出的关联(或下标)数组生…

《JAVA与模式》之简单工厂模式

在阎宏博士的《JAVA与模式》一书中开头是这样描述简单工厂模式的:简单工厂模式是类的创建模式,又叫做静态工厂方法(Static Factory Method)模式。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。 那么简单工厂模式是…

ASP.NET MVC上传文件----uploadify的使用

课程设计需要实现上传文件模块,本来ASP.NET是有内置的控件,但是ASP.NET MVC没有,所以就有两种方法:自定义和采用第三方插件。由于时间的关系,故采用第三方插件:uploadify。 uploadify的使用必须下载相应的文件,下载地址…

QQ验证码识别源代码(C#/NET1.1)

using system; namespace qq { /// <summary> /// yzm 的摘要说明。 /// </summary> public class yzm { public yzm(public system.drawing.bitmap pic) { this.bp pic; } /// <summary> /// 将一个int值存入到4个字节的字节数组(从高地址开始…

身限辞退风波,Google AI 掌门人 Jeff Dean 不误折桂 IEEE 冯诺依曼奖

【CSDN 编者按】在 AI 圈&#xff0c;除了平常说的“人工智障”&#xff0c;“机器学习不学习”之类的&#xff0c;就数 Jeff Dean 的段子流传最多最广了。像什么”编译器从来不给Jeff编译警告&#xff0c;而是Jeff警告编译器“、“所有的指针都是指向 Jeff Dean 的”、“Jeff …

Javascript及Jquery获取元素节点以及添加和删除操作

用了javascript和jquery很久&#xff0c;把所有元素节点的操作总结了下&#xff0c;放在博客上作为记录。 Javascript获取元素的主要方式有三种 1、document.getElementById(main)&#xff1a;表示从document中查找一个id是main的dom节点。&#xff08;这个跟$(#main)的作用是一…

PHP版本发展历史

PHP版本发展历史 PHP1 PHP最初是作为一个快速、实用的工具包出现的。1994年&#xff0c;为了在自己的网站上增加一个小巧而实用的访客追踪系统&#xff0c;Rasmus Lerdorf编写了PHP的雏形程序。这是一个用Perl封装的简单工具。由于使用效果并不理想&#xff0c;Rasmus又用C语…

仅剩一周!!CSDN年终大放血!人人有份的大奖你确定不来?

我们的测评大赛自开展一周以来&#xff0c;已经收到了9位同学的优秀作品&#xff0c;我们的礼品数量远超参加的同学数量&#xff0c;所以现在参与的同学人人有大奖&#xff01;这获奖的概率也太高了吧&#xff01;&#xff01;&#xff01;还不快参与进来&#xff01;&#xff…

局域网瘫痪 傀儡主机的DDoS***

接到客户求助&#xff0c;最近进行了一次网络“出诊”。这是一个由傀儡主机的DDos***引发的网络故障&#xff0c;案例比较典型&#xff0c;排错过程也颇曲折。笔者就还原其过程&#xff0c;与大家分享。1.网络环境这个客户是一家化工企业&#xff0c;网络规模不大。十多台交换机…

[hive] hive 内部表和外部表

1.内部表 hive (test1)> create table com_inner_person(id int,name string,age int,ctime timestamp) row format delimited fields terminated by ,; OK Time taken: 0.233 seconds hive (test1)> load data local inpath /opt/hadoop/person.data into table com_inn…

用C#生成随机中文汉字验证码的基本原理

前几天去申请免费QQ号码&#xff0c;突然发现申请表单中的验证码内容换成了中文&#xff0c;这叫真叫我大跌眼镜感到好笑&#xff0c;Moper上的猫儿们都大骂腾讯采用中文验证码。^_^ 我不得不佩服腾讯为了防止目前网络上横行的QQ号码自动注册机而采取中文验证码的手段。仔细想了…

Rust 2020 调查报告出炉,95%的开发者吐槽Rust难学

来源 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;编译 | 苏宓头图 | CSDN 下载自东方 IC众多语言中&#xff0c;Rust 作为一款小众的现代系统编程语言&#xff0c;近几年间&#xff0c;接连受到了各大企业的青睐。正如不久前&#xff0c;AWS 开源团队宣布聘用 Rust …

Android中Parcel的分析和使用

http://www.360doc.com/content/13/0419/12/9171956_279433672.shtml

Kubernates集群入门(1)

一、K8s安装准备 1.至少两台主机&#xff0c;一台作为master&#xff0c;一台作为node。两台主机需要关闭防火墙。 #centos6 service stop firewalld && service disable firewalld #centos7 systemctl stop iptables && systemctl disable iptables; 2.两台…

Asp.net 不使用SQLDMO实现数据库备份和还原

今天需要做一个历史数据库,备份还原的程序,就是在sql服务器兴建一个数据库的历史版本的复.手工操作很方便,但是程序来实现我还没做过.上网找资料发现都调用了 SQLDMO 的 SQL COM 来实现. 应为我不想在应用服务器上面引用 COM 组件服务.所以没采取这种方式.打开Sql 联机帮助.发现…

B2B行业网站10种经营模式研究及组合方案

许多人对B2B网站的理解仅停留在企业对企业的在线交易上&#xff0c;认为按照B2B电子商务的概念就应该是在网上进行交易。但目前中国比较成功的B2B网站却并非所有都是在线交易模式&#xff0c;尤其是B2B行业网站&#xff0c;许多都没有做在线交易&#xff0c;更多是以基于交易为…

用户数年增长 300%,BitMax如何把握数字资产时代机遇?

12月22日&#xff0c;在2020 BitMax两周年庆典上&#xff0c;BitMax 创始人兼 CEO 曹晶、BitUniverse 合伙人许志宏、BlockVC 创始人徐英凯、红林集团&红链资本创始人李勇敏等多位区块链行业专家&#xff0c;分享了行业洞察&#xff0c;一同探讨交易所的现状和突围之战、数…

2014 年美国程序员薪资调查

Drdobbs 近期向 2,200 名美国的程序开发人员做了一次调查&#xff0c;调查显示高薪领域的工资随着经济的增长而增长。 “Software Engineer”这个职位&#xff0c;除了在德州和几个其他州之外&#xff0c;没有什么特别的意思&#xff0c;在这几个州用这个职称需要经过评定。在其…

ASP.net 验证码(C#)

ASP.net 验证码(C#) /* Copyright all(c) 2005 ZhongFeng, http://blog.csdn.net/SW515 */ public class ValidateCode : System.Web.UI.Page { private void Page_Load(object sender, System.EventArgs e) { this.CreateCheckCodeImage(GenerateCheckCode()); } #region…

SCCM 2012 SP1系列(十)配置补丁更新-3

自动部署规则SCCM2012中对补丁分发增加了一项新功能—自动部署规则&#xff0c;这功能相当于WSUS的自动审批功能。就是当检测到新的补丁更新后自动进行下载更新动作&#xff0c;然后下发给客户端。其实在大企业中还是建议会对每个更新包进行测试&#xff0c;确定对现有业务没有…

CSDN湘苗培优|保持热情,告别平庸

湘苗培优招生进行中在培优中&#xff0c;遇见更好的自己——CSDN高校俱乐部CSDN湘苗培优随着我国信息产业飞速发展&#xff0c;通过常规灌输式培养出来的学员已经不能够满足企业要求。企业更缺乏的是具备自主学习能力、具备综合解决问题能力的高素质技术人才。高素质技术人才需…

在c#中调用windows脚本的方法

在c#中调用windows脚本的方法 方法1&#xff1a;直接调用CODE: System.Diagnostics.Process proc new System.Diagnostics.Process();proc.StartInfo.FileName"wscript";proc.StartInfo.Arguments" hello.js"; proc.StartInfo.UseShellExecute false;pr…

ie和firefox操作table对象的异同

2019独角兽企业重金招聘Python工程师标准>>> ie和firefox下操作table对象的异同【测试浏览器版本&#xff1a;ie为8,9&#xff0c;firefox为2.0】 1&#xff09;在ie下&#xff0c;table标签直接使用appendChild增加document.createElement(tr)的行时不显示&#xf…

机器学习和计算机视觉的前20个图像数据集

作者 | Meiryum Ali 翻译 | 火火酱,责编 | 晋兆雨出品 | AI科技大本营头图 | 付费下载于视觉中国计算机视觉使计算机能够理解图像和视频的内容。计算机视觉的目标是使人类视觉系统可以实现任务自动化。计算机视觉任务包括图像采集、图像处理和图像分析。图像数据可以采用不同的…

移动应用开发者应该关注的 Google I/O 两项更新

移动应用开发者看过来&#xff0c;今年 Google I/O 这两项更新能帮上大忙移动应用开发者看过来&#xff0c;今年 Google I/O 这两项更新能帮上大忙。 I/O 的 Keynote 刚刚结束&#xff0c;用户可能为 Google 新的消费产品感到兴奋。但这毕竟是开发者大会&#xff0c;一些面向开…

赠书 | 手把手教你自己动手打造一个智能恒温器

作者 | Yazeed Sabri翻译 | 火火酱,责编 | 晋兆雨出品 | AI科技大本营头图 | 付费下载于视觉中国*文末有赠书福利为了能住得离公司近一点&#xff0c;我就搬进了一套没有温控系统的公寓。因为在芝加哥市区&#xff0c;这个价位的公寓大多都是没有温控系统的&#xff0c;所以我心…

JVM 出了问题 EXCEPTION_ACCESS_VIOLATION

2019独角兽企业重金招聘Python工程师标准>>> # # An unexpected error has been detected by Java Runtime Environment: # # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc0x10002c08, pid5972, tid1404 # # Java VM: Java HotSpot(TM) Client VM (11.3-b02 mixe…

转换字符串中汉字为其拼音缩写(C#)

//将指定字符串中的汉字转换为拼音缩写&#xff0c;其中非汉字保留为原字符。 public string GetPinYin( string text){char pinyin;byte[] array;System.Text.StringBuilder sb new System.Text.StringBuilder(text.Length); foreach(char c in text) { pinyin c; …

weblogic线程阻塞性能调优(图解)

转自&#xff1a;http://blog.csdn.net/z69183787/article/details/12647539 声明&#xff1a;出现这个问题有程序方面、网络方面、weblogic设置方面等等原因&#xff0c;此文章主要讲述由于weblogic设置而导致的解决办法。 因为&#xff1a; 1.程序问题&#xff0c;需要项目自…