2016年盖洛普民意调查发现,在美国,大部分学校都希望开始教授编程,66%的美国基础教育(K-12教育)学校校长认为非计算机专业的学生也应该考虑学习计算机科学。大多数欧洲国家都将编码和计算机科学纳入学校课程,法国和西班牙早在2015年就引入了它们。显然,在如此快速的增长势头下,新一代程序员不断涌现,预计数量会增加全球开发者数量从2019年的2390万增长到2024年的2870万。在中国,编程教育的火热程度不用多说。“参与”这个词经常被用来描述这个领域。尽管各行各业都在努力教育编程,但对于如何教授编程仍然存在一些困惑。比如,我们还没有搞清楚它到底更像一门语言还是更像数学?特别是从脑科学的角度来看,计算机编程是一种改变现代社会的新型认知工具。什么认知和神经机制支持这种技能?这个问题很关键,因为它将决定我们如何教授该领域的基本方法。正如麻省理工学院的神经科学家AnnaIvanova所说:“我们有兴趣探索语言与计算机编程之间的关系,部分原因是计算机编程是一项新发明,我们不知道可能存在任何结构性硬连线机制这使我们成为优秀的程序员。”AnaIvanova和她的同事还进行了一项新研究,试图通过观察受试者阅读Python代码时的大脑活动来回答这个问题。编程语言的本质是什么?两种不同的答案目前,对于上述问题有两种学派——“语言学派”和“数学学派”。其中,比较流行的观点是,编程是一种语言,必须遵循自己的语法和语义规则。毕竟,它们被称为编程语言是有原因的。在某些方面,学习计算机编程也类似于学习一门新语言。它需要学习新的符号和术语,必须正确组织这些符号和术语才能指示计算机做什么。计算机代码还必须足够清晰,以便其他程序员可以阅读和理解。因此,依附于这个观点,还有一个比较时髦的缩写:CAL,CodingasAnotherLanguage。相比之下,有些人认为编程更像是学习数学中的逻辑,即借助公式和算法创建输入和输出。哪种方法更接近真相?自从编程进入教育体系以来,争论就从未停止过,但似乎“语言学校”明显占了上风。例如,得克萨斯州、俄克拉荷马州和佐治亚州的法律允许高中生修读计算机科学课程以获得外语学分。但这场辩论对神经科学家来说似乎具有特殊意义:由于计算机编程只出现了几十年,大脑还没有进化出任何特殊区域来处理它,因此它不得不重新利用通常用于处理其他信息的大脑部分事物。事物的领域。因此,就在去年年底,麻省理工学院(MIT,MassachusettsInstituteofTechnology)的神经科学家试图了解人们在处理计算机编程时使用的大脑区域和功能系统。他们认为,“解释计算机代码的能力是一种非凡的认知技能,与不同的认知领域有相似之处,包括一般执行功能、数学、逻辑和语言。”考虑到一个人可以学习它被编程的事实,它必须依赖于我们大脑中一些预先存在的认知系统。由此看来,以下两个大脑系统似乎是可能的“候选者”:要么是大脑的语言系统,要么是解决数学问题或填字游戏等复杂认知任务的“多需求网络”(多需求网络)。大脑编程在麻省理工学院团队的实验中,研究人员要求精通代码的参与者躺在功能性磁共振成像(fMRI)机器中以测量他们的大脑活动。应试者阅读编程问题并预测输出答案。本研究使用的两种编程语言是Python和ScratchJr,以“可读性”着称。其中,后者是一种专门为儿童开发的符号语言,使尚未学会阅读的儿童也能使用它。首先,该研究的主要任务包括要求参与者根据一个人的身高和体重参数计算一个人的体重指数(BMI,BodyMassIndex)。来自实验室的代码示例和难题问题以Python风格的代码或简单的句子形式呈现。同样,ScratchJr也采用了相同的方法,只是参与者被要求跟踪小猫走路和跳跃的位置。其次,研究的控制任务包括两项任务:记住网格上的一系列方块以激活参与者的多重需求系统,以及阅读正常和无意义的句子以激活他们的语言系统。最后,研究结果表明,当参与者阅读代码时,大脑的语言部分反应较弱,作者认为这可能是整个过程中没有涉及口语和听力的原因。相反,这些任务主要由多需求网络处理。具体来说,多需求网络分布在我们大脑的额叶和顶叶,主要负责复杂繁重的脑力工作,也就是日常生活中需要我们认真思考的部分。网络大致可以分为左边负责逻辑的部分和右边负责抽象思维的部分。此外,麻省理工学院的研究人员发现,阅读Python代码似乎同时激活了多需求网络的左侧和右侧,而ScratchJr语言的实验显示右侧相对于左侧的激活比例更大。“我们发现,尽管代码和自然语言之间有许多相似之处,但语言系统在代码理解过程中的反应并不一致,”他们写道。编程似乎已经进化出新的处理网络有趣的是,解码过程在解决数学问题时激活了多需求网络的部分而未激活,因此与其将其作为语言或逻辑处理,不如说它更像是自身的一个单独部分.尽管阅读计算机代码会激活多需求网络,但与数学或逻辑问题相比,它似乎更多地依赖于网络的不同部分,这表明编程并不能完全复制数学的认知需求。“这些发现表明大脑将编码视为一个独特而复杂的过程。理解计算机代码似乎是一个单独的事件。它与语言不同,与数学和逻辑不同......”麻省理工学院毕业生学生,上述主要作者安娜·伊万诺娃(AnaIvanova)。同时,作者指出,这不排除经验丰富的程序员可能有专门用于编码的大脑区域。去年,日本神经科学家的另一项实验支持了对计算机代码中涉及的独特大脑过程的解释。在那项研究中,向新手、有经验和专家程序员展示了躺在fMRI中的代码片段,任务是将这些代码片段分为四种类型的算法。正如预期的那样,技能较高的程序员能够更好地对代码片段进行分类。然而,研究人员还发现,与自然语言处理、情景记忆检索和注意力控制相关的大脑区域的活动也随着程序员的技能水平而增强。从这个角度来看,虽然编程和语言之间的相似性并不是我们想象的那样,但两者似乎都受益于更早的学习。
