计算机程序设计教学的元分析:有效的教学方法和条件
关键词:计算思维,计算机程序设计,干预性研究,多层次元分析,Scratch程序设计
摘要:该元分析映射了在三种学习条件下学习计算机程序设计的教学方法和条件的有效性的证据:(a)研究侧重于编程干预本身的有效性,(b)研究侧重于可视化和物理性的有效性,以及(c)研究侧重于主要教学方法的有效性。利用来自139项干预措施和375个效应量的数据,我们发现(a)学习计算机程序设计本身具有很强的影响(Hedgesrsquo; g frac14; 0.81, 95% CI [0.42, 1.21]),(b)可视化(g frac14; 0.44, 95% CI [0.29, 0.58])和物理干预(g frac14; 0.72, 95% CI [0.23, 1.21])的中到大的效应量,以及(c)针对主要教学方法研究的中到大的效应量(gs frac14; 0.49–1.02)。主持者分析表明,教学方法和条件之间的效果大小仅略有不同——但是,元认知教学中的协作、常规课程之外的问题解决教学、侧重于物理的短期干预以及侧重于通过Scratch进行可视化的干预特别有效。我们的元分析综合了有关计算机程序设计教学有效性的现有研究证据,并最终提供了可以比较未来研究效果的参考。
1.引言
在过去的十年中,计算机程序设计重新获得了相当大的关注,不仅因为技术的快速发展,而且还因为据称它可以培养其他技能,包括解决问题、逻辑思维和创造力(Liao amp; Bright,1991;Scherer,2016)。此外,世界各地的教育系统都在开发实施编程和所谓的计算思维的课程——这一概念将计算机程序设计和相关技能作为解决问题的一种形式(Shute, Sun, amp; Asbell-Clark, 2017)——作为一个独立的学科或整合到其他学科中(European Commission, 2016; Yadav, Good,Voogt, amp; Fisser, 2017)。尽管计算机程序设计的重要性已得到广泛认可,但对培养编程知识和技能的教学方法和条件的有效性的系统评估却很少受到关注(Grover amp; Pea, 2013; Lye amp; Koh, 2014)。
此外,现有的大量文献包含多种教学方法,侧重于特定编程工具的使用(Florez et al., 2017),促进计算概念的理解以及伴随元认知技能的信息处理的获取的方法(Lye amp; Koh, 2014),结对编程相对于个人编程的好处(Umapathy amp; Ritzhaupt, 2017),以及编程课程的设置,包括混合式和基于项目的学习效果(Hsu, Chang, amp; Hung, 2018; Vihavainen, Airaksinen, amp; Watson, 2014)——仅举几例。这些不同的焦点不可避免地导致了关于某些教学方法和条件的有效性的不同发现。例如,尽管Lou,Abrami和drsquo;Apollonia(2001)发现协同学习与技术(包括计算机程序设计)对个人和团队绩效的微弱影响(Cohenrsquo;s d frac14; 0.15–0.31),但Umapathy和Ritzhaupt(2017)却证实了有中度到重度的影响(Hedgesrsquo; g frac14; 0.41–0.64)。此外,虽然Yuuml;ksel和Yuuml;ksel(2015)通过解决问题(ggt;1.00)获得了编程教学的强大效果,但Denny、Cukierman和Bhaskar(2015)证明只有很小的效果(g frac14; 0.27)。研究清单和不同的发现可以很容易地扩展——总的来说,这些例子表明编程教学的有效性在不同的研究中有很大的不同。
随着越来越多的计算机科学教育工作者对让青年学生能够接触到编程感兴趣,通过游戏设计、机器人技术和基于视觉而非基于文本的语言来学习编程,预计将比其他方法更有效(e.g., Batista, Connolly, amp; Angotti, 2016; Lee, Mauriello, Ahn, amp; Bederson, 2014; Lye amp; Koh, 2014)。然而,现有的研究机构还没有提供足够的证据来支持这些预期(Florez et al., 2017; Scherer, 2016)。那么,计算机程序设计教学的有效途径和条件是什么?本元分析旨在通过综合未来提高学生编程知识和技能的实验和准实验研究的证据,为这个问题提供一些答案。具体而言,使用 Chen、Wang、Kirschner 和 Tsai(2018)提出的教育技术有效性审查框架,我们区分了三类主要研究,以检验有效性的三个方面,并最终绘制出程序设计教学领域(图1):(a)报告学习计算机编程本身的有效性的研究(即,对照组不参与任何编程活动),(b)报告编程过程中可视化和物理性的有效性的研究(例如,视觉编程语言如Scratch,机器人技术的参与),以及(c)报告主要教学方法有效性的研究(例如,以元认知、基于游戏的学习、协作、反馈为侧重点的编程教学)。对于这三个类别,我们通过多重、独立的元分析,估计基于绩效的结果变量(即编程知识和技能的度量)的总体干预效果大小,并量化研究内部和研究之间的影响变化。进行进一步的调节器分析以通过上下文变量解释这种变化。总体而言,我们的研究综合提供了有关教学方法和条件是否满足与其学习计算机编程的有效性相关的期望的信息。
1.1 在计算思维的概念中锚定计算机编程
计算机编程被定义为“开发和实施各种指令集以使计算机能够执行特定任务、解决问题并提供人类交互性的过程”(Balanskat amp; Engelhardt, 2015, p. 7)。所以,除了具备编程语言知识外,还需要具备与开发专门算法和逻辑相关的专业知识,以及在迭代过程中分析、理解和解决问题的能力(Forsstrom amp; Kaufmann, 2018)。因此,编程涉及的过程与解决问题的过程大体相似,例如分解问题、应用算法、抽象和自动化(Shute, Sun, amp; Asbell-Clarke, 2017; Yadav et al., 2017)。
Lye和Koh(2014)在他们的开创性评论中认为,计算机编程“让学生接触到计算思维,其中涉及到使用抽象和分解等计算机科学概念来解决问题”(p. 51)。最终,作者得出结论,培养编程技能也将增强计算思维技能。尽管受到批评(Denning,2017),计算思维的概念已经在现有的计算机科学课程、教师教育项目和研究议程中找到了自己的方式(Grover amp; Pea, 2013)。Wing(2006)将计算思维广义地定义为“通过利用计算机科学的基本概念来解决问题、设计系统和理解人类行为的概念”(P.33)。借鉴这一定义和“计算机科学基础”概念的后续规范,Shute等人(2017)命名了计算思维中涉及的关键过程——问题(重新)制定、递归、分解、抽象以及解决方案和程序的系统测试作者认为计算思维可以。鉴于这些过程,被视为在技术丰富的环境中解决问题的一种形式。
尽管计算机编程所涉及的过程和所需的技能也是计算思维所涉及和所需的(Lye amp; Koh,2014),但后者涉及的不仅仅是编程。在他们有影响力的框架中,Brennan和Resnick(2012)概述了计算思维的三个关键领域:计算概念(即程序员使用的概念,如队列和循环)、计算实践(即编程过程中解决问题的过程,如测试和调试)和计算观念(即学生对自己的理解以及他们和技术的互动,例如质疑技术作为解决现实生活问题的一种手段)。尽管计算概念和计算实践在编程中起着关键作用,后者——将计算观念作为计算参与的一种方式——代表了计算思维的一个显著特征(Kafai amp; Burke, 2013; Shute et al., 2017)。编程被认为是教授和学习计算思维的一种方式——换句话说,学习计算机编程最终有助于获得计算思维技能(Florez et al., 2017)。
鉴于干预研究对计算观念的关注有限(Lye amp; Koh, 2014),当前的一系列元分析侧重于计算概念和计算实践,标记为编程知识和技能。在这方面,编程知识包括以计算方式解决问题所需的概念和程序知识(即语法、语义、图式和策略性知识)。编程技能包括创建、修改和评估计算机代码的技能。
1.2 计算机编程教学的方法和条件
在Brown和Wilson(2018)最近的文章中,他们回顾了计算机编程在计算生物学中的作用,并得出结论,鉴于现有的编程教学文献,“编程能力不是与生俱来的,而是一种可以学习的技能。通过实践获得和改进”(p. 1)。基于可以有效教授编程知识和技能这一假设,在过去的几十年中已经提出并评估了几种教学方法——然而,它们的重点和成功程度各不相同(Grover amp; Pea, 2013; Robins, Rountree, amp; Rountree, 2003)。
在80年代和90年代的早期研究中,Logo语言的编程教学是主要关注点。在进行了大量的实验和准实验研究之后,关于不同教学方法有效性的证据基础是多种多样的。虽然一些研究发现有教师指导的教学比发现学习更有效(Lee,1991),但其他研究却发现相反的效果(参见 Clements,1995 的概述)。Palumbo(1990)因此认为,应该考虑关键的研究设计特征,例如编程语言的类型和干预时间的长度,以解释这些不同的影响。有效编程的教学环境和工具依赖性似乎很明显。
Garneli、Giannakos和Chorianopoulos(2015)回顾了有关K-12计算教育的现有文献以供新研究使用,强调了干预研究涉及的几个重点领域——这些领域包括检查编程工具、教育背景和教育工具的重要性。作者还强调了游戏设计和机器人教学、基于项目的干预以及涉及协作和使用物理对象来确定某些编程任务结果的干预的日益流行。Garneli等人(2015)得出的结论是,在K-12教学中实施计算机教育可能是“令人愉快和有效的”——然而,支持这些期望的经验证据仍然很少(Grover amp; Pea, 2013; Scherer, 2016)。Lye和Koh(2014)因此呼吁探索更多的计算机编程课堂干预,以丰富“什么有效,什么无效”的现有知识库。Vihavainen等人(2014)回顾了课程通过率的介绍性编程教学的有效性,确定了核心干预方案。这些方案包括协作和同伴支持、相关内容和情境化、评估程序、课程设置和资源化。作者综合了干预研究产生的影响大小,这些研究至少关注这些项目中的一个,并发现了整体积极的影响,这表明,与传统的讲座和实验室课程相比,通过率可以提高40%。与此同时,Vihavainen等人(2014)承认,这些改进因教学方法而异,多种方法的组合可能对教学编程最有效。Florez等人(2017)同意这一结论,并进一步指出协作和同伴支持以及使用可视化工具来帮助学生发展和阐明他们关于编程概念的心智模型的重要性。除了这些促进计算机编程教学和学习的干预研究趋势之外,还有其他几个项目,它们侧重于如下研究,例如,混合学习相对于面对面学习的好处,解决问题教学的有效性、反馈以及元认知技能的培养(有关概述和示例研究,请参阅表2)。
总的来说,我们对现有文献的回顾表明:(a)存在多种培养计算机编程的教学方法;(b)若干干预方案在培养编程知识和技能方面是有效的;(c)干预方案的有效性可能因研究和教学条件而异(另见 Li amp;a
剩余内容已隐藏,支付完成后下载完整资料
英语原文共 18 页,剩余内容已隐藏,支付完成后下载完整资料
资料编号:[596129],资料为PDF文档或Word文档,PDF文档可免费转换为Word
课题毕业论文、外文翻译、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。