大数据文摘出品
来源:massivesci
编译:Luna
编程学习往往会跟数学很强、理科生、男生这些词联系起来,但是,数学好就真的编程强吗?
华盛顿大学研究人员最近发表的一项研究表明,语言能力和解决问题的能力可以最好地预测人们学习流行的编程语言Python的速度。他们使用行为测试和大脑活动程度测量,来了解它们与参与者学习编程的速度和熟练度之间的关系,这项研究发表在了《科学报告》上。
学习Python的程度与认知能力呈正相关
当你当学习另一种语言时,您可能会想到法语,西班牙语或中文。但是如果是编程语言,Python或Java呢?这两者的学习过程,可能比你想象的要更相似。
在这项研究中,招募了42名参与者,通过Codeacademy尝试当下流行的在线编码课程。参与者被要求完成“学习Python”系列,此系列包括十个课程,每个45分钟。从完成研究的36名参与者中,他们能够确定学生的学习速度以及对课程的掌握程度。
在进行在线课程之前,参与者进行了一系列测试,旨在测试数学技能,工作记忆,问题解决能力和第二语言学习能力。在他们的在线编程课程中,研究人员能够跟踪他们学习的速度以及在在线软件内置的测验中的表现。他们还在研究结束时完成了测验和编码任务,以了解他们的整体编码知识。
那记忆力,解决问题的能力以及对数字或语言的敏锐度对他们学习编码的速度有多大影响?
研究人员通过比较Python课程前一系列的天赋测试结果,和Python的学习进度以及结果,来确定天赋的不同会对参与者的学习表现造成多少差异:记忆力,解决问题的能力以及对数字或语言的适应程度对他们学习编码的速度有多大影响?
参与者以不同的速度学习Python,并且在研究结束时具有不同的编程能力。研究人员研究了预测试技能涵盖的技能与参与者学习Python的方式之间的关系。他们发现,学生对Python的学习程度主要是与一般的认知能力(解决问题和工作记忆)正相关,而他们的学习速度是跟一般的认知能力和语言能力联系更密切。
这世上有很多“不适合数学”,但适合计算机科学的人
结果显示,语言能力的差别造成人们学习Python的速度差异达到20%。相比之下,数学预测试的成绩仅对学生学习速度变化的有2%的影响,而与他们知识掌握度根本没有关系。
这说明学习编码更多地取决于语言技能,而不是数字技能。
脑电图(EEG)的数据,是另一个显示了语言能力重要性的证据。脑电图是一种通过通过颅骨记录的电模式,来测量大脑活动的方法。在进行在线学习任务之前,研究人员会为参与者提供一个静息状态的EEG,该状态会测量当受试者放松而无所事事时的大脑的模式。
静止时的电活动具有不同的模式。这些模式之一是称为β振荡的电活动的慢波。过去的研究表明,静止时高水平的β振荡与学习第二语言的能力有关。
在这项研究中,这些β振荡的高水平与更快的学习速度和掌握更多的编程知识有关。尽管这一发现为语言学习与编码学习之间的联系提供了额外的支持,但尚不清楚β振荡与学习成果的关系,因此,还需要进行更多的研究来证明这种关联。
综上所述,这些结果说明语言技能是学习编程(或至少是学习Python)不可或缺的一个方面,而数学技能并不能很好地预测参与者的学习水平或速度。这个设想对围绕编程的普遍印象具有重要意义,因为传统来说,编程通常被视为“数学要求高”的领域。
语言能力关乎学习编程的能力,女生或许更擅长学习编程
关于程序员,有许多假设,尤其是关于谁是一个好的程序员。女人通常会觉得自己不符合“典型”的计算机程序员的想法。但是,女孩的平均语言能力通常比男孩高。
由于语言能力与学习编程能力正相关,或许女生更擅长学习编程。
的确,有些领域需要数学和编程的技能,但这两种技能都需要的编程工作范围有限。根据这项研究,似乎没有必要对每个计算机科学专业都提出高级数学的要求。同时,在数学的要求上增加灵活性,可以帮助招到和留住更多计算机专业的学生。
明确地将语言技能与编程联系起来,并提供不需要高级数学的教育选择,可能有助于改善程序员的多样性,同时让学生掌握他们所需的编程技能。现在,迅速普及计算机知识的“训练营”类教育,会导致参与者缺乏微积分知识就开始打退堂鼓。
随着编程成为许多工作的先决条件,现在是时候讨论关于学习编程的先决条件的时候了。基于这项新研究的结果,大学和个人应该重新考虑他们如何学习程序设计,以及什么才能把编程在工作发挥作用。这世上可能有很多“不适合数学”,但适合计算机科学的人。
所以,之前一直以自己“数学不好”拒绝编程的同学们,可以学习起来啦!
相关报道:
https://massivesci.com/articles/programming-math-language-python-women-in-science/