编码更多的是关于交流而不是计算。新数据:关于人们学习编码的速度的最佳预测指标是什么?不是数学或认知能力,而是语言能力。数学技能几乎无关紧要。编码是掌握一门语言,而不是数字。
该实验采用个体差异方法来测试学习现代编程语言类似于成年后第二次“自然”语言学习的假设。语言能力的行为和神经(静息状态脑电图)指数与算术和流体认知测量(例如流体推理、工作记忆、抑制控制)一起用作预测因子。学习率、编程准确性和测试后陈述性知识被用作参加 10 次 45 分钟 Python 培训课程的 36 个人的结果衡量标准。由此产生的模型解释了学习结果中 50-72% 的差异,语言能力测量解释了每个结果的显着差异,即使其他因素竞争差异。跨结果变量,流体推理和工作记忆能力解释了 34% 的差异,其次是语言能力 (17%)、β 和低伽马波段的静息状态脑电图功率 (10%) 和计算能力 (2%)。
这些结果为理解编程能力提供了一个新的框架,表明在现代编程教育环境中计算能力的重要性可能被高估了。
大学环境中的编程课程通常需要高级数学课程作为先决条件。Jenkins 描述了我们对学习编程的了解与教授编程的环境之间的这种差距,他认为“如果计算机教育工作者要真正开发一个让所有学生都能快速而良好地学习编程的学习环境,对学生所面临的困难和复杂性的理解是至关重要的。目前,编程的教学和学习方式已从根本上被打破” 2. 不幸的是,自 15 年前发出这一行动呼吁以来,几乎没有取得任何进展。在同一时期,编程语言的性质也发生了变化,降低了例如学习 Pascal或 COBOL编程的原始研究推广到当代编程语言的可能性。
此处描述的研究受到概念范式转变的推动,即学习使用现代编程语言类似于在成年后学习自然语言,例如法语或中文。具体来说,我们认为对编程能力的神经认知基础的研究在很大程度上忽略了这样一个事实,即计算机编程_语言_的设计类似于程序员的交流结构(人类语言),这一想法在 50 多年前由乔姆斯基首次正式提出。
人们认为 Python 的流行部分是由于它易于学习。与我们的假设相关的是,Python 的开发理念旨在“读者友好”,并且实现这一目标的许多方式都具有语言相关性。例如,Python 使用缩进模式模仿英语书写系统中存在的“段落”样式层次结构而不是大括号(在许多语言中用于分隔代码的功能块),并使用单词(例如,“not”和“is”)表示通常用符号表示的操作(例如,“!”和“==”)。
为了研究学习 Python 编程的神经认知基础,我们招募了 42 名年龄在 18-35 岁之间没有编程经验的健康年轻人(26 名女性)参加实验室学习实验。代替课堂学习,我们采用了 Codecademy 在线学习环境,全球超过 430 万用户通过该环境接触了 Python 编程。为了促进主动学习(而不是仅仅点击解决方案按钮来推进培训),参与者被要求报告他们何时以及如何寻求帮助(例如,提示、论坛或解决方案按钮),并且实验者通过屏幕共享来验证这些报告和屏幕截图数据。在进入下一课之前,参与者还需要在课后测验中获得至少 50% 的准确率。SD = 9.4%)在课后测验中表明参与者积极参与学习。
详细点击标题