【编者按】不夸张地说,在这个时代,编程时时刻刻都在影响着整个世界的运转,它让我们的生活变得更加惬意悠闲。那编程到底是什么?应该算一门语言?还是算逻辑的具体实现?

作者 | Anne Trafton

译者 | 火火酱  责编 | 张文

头图 | CSDN 下载视觉中国

出品 | CSDN(ID:CSDNnews)

以下为译文:

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

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

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

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

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

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

本文由 CSDN 翻译,转载请注明出处。

更多精彩推荐
☞小米 11 不送充电器;苹果已修复 iCloud 登录激活问题;Ruby 3.0.0 发布|极客头条☞苹果 M1 芯片预示着 RISC-V 完全替代 ARM?
☞管理大型共享数据库,做到这几点不再头疼!
☞弃用 Cookie!☞前端诸神大战,Vue、React 依旧笑傲江湖
☞计算机巨星陨落!图灵奖得主 Edmund Clarke 因感染“新冠”逝世☞Github 超 20000 Star,最火开源视频库 FFmpeg 这 20 年!点分享点点赞点在看

谁说数学好编程就好了?MIT告诉你:不对!相关推荐

  1. c语言中的关于数学问题的编程,C语言中具有代表性几种数学问题编程技巧探索.doc...

    C语言中具有代表性几种数学问题编程技巧探索 C语言中具有代表性几种数学问题编程技巧探索 [摘要]本文分析了C语言中几种常见的具有代表性的几类数学问题,从数学规律.语法结构分析.语句优化设计及应用方面, ...

  2. 复制:王垠:数学和编程

    为什么80%的码农都做不了架构师?>>>    原文地址:http://blog.jobbole.com/95766/ 好些人来信问我,要成为一个好的程序员,数学基础要达到什么样的程 ...

  3. 数学和编程到底是什么关系?

    不知道什么时候开始,数学和编程被捆绑到了一起,数学不好学编程也不行,很多人的意识数学系毕业的学编程一定厉害. 只能说,确实多虑了,至于数学好就编程好更是想多了,两者也是没有绝对的关系,基本的加减乘除已 ...

  4. 学习人工智能需要掌握哪些基础知识,需要具备哪些数学和编程技能?

    学习人工智能需要掌握以下基础知识: 数学基础:线性代数.概率论.微积分.优化等基本数学知识是人工智能领域的重要基础. 编程基础:熟悉至少一种编程语言(如Python.C++等),了解基本的数据结构和算 ...

  5. java趣味程序 五猴分桃_趣味数学及编程拓展epub

    趣味数学及编程拓展 作者:杨克昌 趣味数学及编程拓展 出版社: 清华大学出版社 趣味数学及编程拓展 内容简介 本书开创趣味数学与程序设计的交汇融合.书中精选并提出各类趣味数学问题,突出趣味性与吸引力, ...

  6. subzm在c语言中的作用,数学和编程到底是什么关系?

    不知道什么时候开始,数学和编程被捆绑到了一起,数学不好学编程也不行,很多人的意识数学系毕业的学编程一定厉害. 只能说,确实多虑了,至于数学好就编程好更是想多了,两者也是没有绝对的关系,基本的加减乘除已 ...

  7. 关于逻辑、数学和编程的深层次思考

    众所周知,编程离不开数学和逻辑.诚然,很多程序员数学能力并不强,也没有系统的逻辑能力.但是,他们在无意识中,日常工作中,有意无意的就在使用逻辑和数学,并将它们运用于代码中.先看看下面几个例子: 我是程 ...

  8. 【数学转编程】求出最大公约数的实现即思路分析====>最大公约数

    自然语言描述问题 公约数 公约数,亦称"公因数".它是指能同时整除几个整数的数 .如果一个整数同时是几个整数的约数,称这个整数为它们的"公约数":公约数中最大的 ...

  9. 数学好=编程能力强?MIT新发现:二者激活大脑区域并不同

    金磊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 都说学编程就像学一门新的语言,但事实真的如此吗? 不不不,起码在读代码这件事上,你的大脑可不这么认为. 最近,MIT神经科学家在eLife期 ...

  10. 数学与编程:“概率论”总结

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 终于写完概率论部分的内容.写一个总结,同时算是导读.这两天花了些时间,对原文进行修 ...

最新文章

  1. TCL中Ports/Pins/Nets/Cells/Clocks之间的交互关系?
  2. Java Swing 之Timer配合JProgressBar的使用
  3. jquery 选择器大全的详细说明和实例
  4. 文曲星猜数游戏的非TDD实现
  5. js二进制流转Blob对象。Blob对象再转File对象
  6. Zabbix(二)通过API在zabbix系统中查看、删除及创建监控主机
  7. IntelliJ IDEA创建JavaWeb项目
  8. 计算机原理学习指导第3版,《计算机组成原理学习指导与习题解析(第3版)》...
  9. 通信原理第六章思维导图
  10. 4600万台销量!树莓派炼成之路
  11. mysql转拼音首字母大写_mysql中文字段转拼音首字母,以及中文拼音模糊查询
  12. Vue3状态管理器大菠萝 Pinia 学习使用笔记
  13. 5.3 matlab数据插值(线性插值、最近点插值、埃尔米特插值、三次样条插值)
  14. 386页《Python深度学习》电子书及源码下载
  15. ssm学生综合素质评价系统
  16. matlab将surfer格式转化矩阵,matlab调用surfer
  17. python小游戏毕设 坦克大战小游戏设计与实现 (源码)
  18. JS单个、批量下载图片
  19. [工具]ScreenToGif:一款小而实用的屏幕录制生成gif工具
  20. php弱类型比较,php弱类型问题总结

热门文章

  1. 【年终总结】可圈可点的2018年
  2. 自考----怎么说我不爱你
  3. Python:列表list对应项求和
  4. flex4 日期类型字符串转日期类型(string转Date)
  5. 使用lucene3.6创建索引和实现简单搜索
  6. 自己写的Weblogic的poc
  7. Flask框架(一)
  8. SpringCloud注册中心集群化及如何抗住大型系统的高并发访问
  9. javascript正则表达式验证IP,URL
  10. 软件项目中需求管理工作的重要性