Sequencing and Paradigm-Transition Evidence in Object-Oriented Programming: A Systematic Review
这项针对16项研究的系统综述得出结论,尽管“对象优先”的排序方式相比“对象滞后”的方法略具优势,但由于视觉工具和样本量较小,证据受到了干扰,这表明将程序性知识与面向对象的概念进行显式衔接,比单纯的排序顺序对于成功的学习而言是更为关键的因素。
原始论文采用 CC BY 4.0 许可(https://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
二十多年来,面向对象编程一直是大学编程课程中的主流范式,然而如何最好地教授这一范式仍然是一个激烈争论的话题。在这种方法中,学生通过创建既包含数据又包含如何使用该数据指令的数字“对象”来学习构建软件,就像现实世界中的物体既有物理属性又有行为一样。这种方法已成为构建运行我们现代世界的复杂软件系统的标准。然而,几十年来,教育工作者一直在争论这是否是最好的入门方式。一些人认为,学生在引入更抽象的对象概念之前,应该先学习基础的、逐步的程序化指令——即以严格的顺序精确地告诉计算机该做什么。另一些人则认为学生应该从第一课起就直接深入研究对象。问题不仅在于主题的先后顺序,更在于人类的大脑如何学习用代码进行思考。从复杂性的对象概念开始,是否会令初学者感到困惑?还是说,从简单的步骤开始构建,会造成一种心理障碍,使得以后转向面向对象思维方式变得更加困难?
内罗毕戴斯达大学的一位研究人员致力于通过收集所有可获得的关于比较这两种教学方法的科学研究,来解决这一长期存在的争论。其目标是超越个人观点和课堂轶事,去寻找关于学生如何学习的实际数据。该研究人员审查了 1997 年至 2021 年间进行的 16 项不同的研究,这些研究涉及美国、欧洲、以色列及其他地区的近两百名学生和教师。这些研究观察了学生在测试中的表现、他们在课程中的留存时间,以及他们遇到困难的具体概念——无论他们是先学习对象还是后学习对象。
综述发现,概念教学的顺序似乎并不是决定学生成功或失败的关键因素。当研究人员直接比较“先学对象”的学生与“先学程序化步骤”的学生时,结果出人意料地平衡。在进行此类直接比较的五项研究中,有三项显示“对象优先”组的表现略好,另外两项则发现成绩并无差异。至关重要的是,没有任何一项研究发现先学习程序化步骤能带来更好的结果。然而,研究人员发现,“对象优先”的优势并不一定是由课程顺序本身引起的。在每种学生通过“对象优先”方法表现更好的案例中,教学都得到了特殊视觉工具或环境的支持,使抽象概念变得更容易被观察。例如,一些研究使用了让学生可以在屏幕上操作数字对象的软件,将不可见的逻辑代码转化为可见的、移动的部分。当一项研究在采用完全相同的工具和内容、仅改变顺序的情况下对比这两种方法时,两组学生的学习效果是同等的。这表明,仅仅将对象这一主题提前到教学大纲中并不是提高成绩的魔力开关;相反,成功来自于材料的呈现方式以及为学习者提供的视觉支持。
该综述还考察了已经掌握如何编写程序化代码的学生在学习面向对象编程时的表现。数据表明,他们之前的知识并不是阻碍他们学习的障碍,但确实会影响他们对新材料的理解。具有程序化编程背景的学生往往会尝试将旧的思维捷径应用到新系统中。他们可能会假设计算机程序总是以单一的直线方式运行,或者可能误解程序的不同部分是如何相互通信的。这些旧习惯会导致特定且可预测的错误,例如混淆类(class)的定义与由它创建的实际对象,或者在面对多个选项时难以理解程序如何决定执行哪条指令。研究表明,无论学生是先学对象还是后学对象,这些困难都会持续存在。理解对象之间如何相互关联、如何链接以及如何动态运行的核心挑战,对所有人来说依然很难。
最终,证据表明,教授编程最有效的方法不是争论哪个主题在前,而是专注于如何将概念与学生已有的知识联系起来。如果一名学生已经学习了程序化编程,教师应当明确展示新的面向对象理念是如何建立在旧习惯之上或如何区别于旧习惯的,而不是寄希望于学生能自行领悟。该研究得出结论,对于那些学生先学习 C 语言再转向更复杂语言的机构,最好的方法是在两者之间建立一座清晰的桥梁,明确教授处理数据和指令方式上的差异。课程的顺序不如解释的清晰度和使计算机不可见逻辑变得可见的工具使用那么重要。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。