acm-header
登录

ACM通信

教育

解释的编程


路线图工作流程图、说明

图片来源:Andrij Borys Associates, Shutterstock

在珍妮特·温的开创性研究15年后,关于计算思维(CT)的意义和目的留下了大量的困惑通信的观点,7两种不同的计算思想流派出现了。在更为突出的思想流派中——我们姑且称之为职业教育——编程和CT之间的界限有些模糊。毫无疑问,对编码结构的理解是CT教育的重要组成部分。然而,如果教学和评估CT主要是基于循环、序列和条件语句等概念,那么这与编程有何本质区别?支持和反对这一学派的观点有很多,但最普遍的观点,至少在美国,似乎是以职业为导向,并以经济理由为主要依据。不幸的是,在计算机职业学校的思想中,CT对计算机科学以外的学科的好处充其量是附带的。

进入第二种不太发达的、侧重于通识教育的计算思想流派。我们将其称为“显式编程”。在这所学校里,编程可能不被看好,但它成为一种跨学科的思维工具,真正理解典型的K-12学科的强大思想,如STEM、艺术、语言和音乐。在显式编程学派的计算思想中,CT是关于用电脑思考。这个想法并不新鲜。事实上,它早于Wing愿景,可以追溯到Seymour Papert。Papert最初使用了“计算思维”这个术语3.指的是问题规程和他所说的编程的解释性实践之间的关系。

显式编程通过在典型的K-12学科和计算机科学之间建立双向联系来促进CT思维图1).这种类型的联系的动机方面早已被教育改革家杜威认为是“工具动机”。2工具性动机是一种间接的动机——就像学几句法语可以让你在法国的餐馆点餐一样。在这个例子中,工具动机表明你最感兴趣的是吃东西,而不是学习法语。类似地,对于显式编程,工具性动机可能会培养“学习编程”或“编程学习”或两者兼而有之的兴趣图1).

f1.jpg
图1。显式编程通过桥接结构将传统的K-12学科与编程联系起来。

  • 学习计划。STEM、音乐、艺术和语言等学科,建议游戏、模拟、机器人、故事和动画等应用,可以作为开发编程技能的迷人环境。
  • 学习编程。编程可以作为一种辩证法,通过动手探究的过程来支持对STEM、音乐、艺术和语言等学科的理解和揭示误解。

需要指出的是,虽然在理论上职业和解释学派的思想可以结合在一起,但我们观察到,教学倾向于职业教育是由于现实的原因。虽然显式编程使CT与K-12学校相关的愿景非常有吸引力,但实现双向连接(图1红色箭头)。由于这种困难,显式编程还没有在学校中产生系统的影响。在传统的K-12学科和计算机科学之间建立桥梁,不仅需要对这两个学科有扎实的理解,更重要的是,要理解如何有意义地将它们连接起来。不幸的是,教师不太可能有相关经验。K-12学科和编程之间的巨大差距需要通过精心设计的桥接结构来连接图1)作为学科和编程之间的垫脚石(图1,绿色框和箭头)。两个使用CT模式的例子1正如这里所描述的桥接结构:这些项目是用AgentCubes编程的4计算思维的工具。

ins01.gif

回到顶部

例1。碰撞模式创建病毒模拟。

病毒模拟是可纳入生命科学课堂课程的解释性编程活动的一个例子。为了编写病毒模拟程序,学生必须编写一个健康的人,在与病人接触时有一定几率生病。的底部图2将这种碰撞计算思维模式的实现描述为具有70%概率条件的IF/THEN表达式。计算人物数量的能力,允许学生通过改变生病的几率百分比,以及死亡率和康复率来进行实验,以确定,例如,随着时间的推移,不同的疾病易感性对人口的影响。这反过来又使发现成为可能。例如,学生经常试图制造一种致命的疾病,使死亡率接近100%。他们发现,与我们的直觉相反,这导致了人口总死亡率的降低,正如我们现在所知道的那样。从中学到研究生院,这一发现随处可见5以及强化项目,如2020年6月黑人女孩流行病学密码虚拟研讨会(https://bit.ly/BGCVirusSim).

f2.jpg
图2。在描述人口数据的AgentCubes中进行流行病学模拟的碰撞-变化模式实现(中下)。其中的规则是:“如果我旁边有一个或多个生病的角色,而我目前是健康的,我就有70%的几率生病。”


进入第二种不太发达的、侧重于通识教育的计算思想流派。


ins02.gif

回到顶部

例2。创造青蛙游戏的概率生成模式。

游戏设计5为显式编程提供了充足的机会,例如,支持桥接构造,从而实现支持计算数学思维。例如,在一个类似青蛙的游戏设计活动中,学生需要为在繁忙的多车道高速公路上行驶的汽车编写程序,使其成为键盘控制的青蛙通过的障碍。为了让游戏更简单,但又不过于简单,我们需要在这些道路上设置正确的汽车数量和分布。利用概率生成模式,学生对左边的隧道按照一定的频率和概率生成汽车。如果使用低频率(每0.6秒)但高概率(100%),那么结果将是一波同时发生的汽车,这看起来不自然(图3(左),使游戏玩法过于可预测。尝试这一结构并选择一个高频率(每0.06秒)但低概率(10%)的结构能够创造出更吸引人的游戏玩法图3(右)将数学与游戏设计联系起来。

f3.jpg
图3。左:产生新车的频率低,概率大(100%);右:高频率,低概率。

我们教授可扩展游戏设计的经验5对于学生和老师,世界各地的建议三个关键原则的桥接结构,以有效地促进显式编程。

ins03.gif

回到顶部

桥接结构:

  1. 通过充当高度可重用的具体抽象来培养创造力。通过将现有的游戏或他们自己的游戏设计思想分解成他们已经学会编程的常见设计模式,构建应该使学生能够创造出对个人有意义的工件,如游戏。就像架构师不会用钉子或砖块来考虑房子一样,这些模式在设计抽象层次上要比编程结构(如IF或LOOP语句)高得多。我们发现,计算思维模式作为构建游戏和STEM模拟的桥梁结构是非常有效的。1计算思维模式在描述两个或多个物体相互作用的现象层面上运作,例如产生、碰撞、运输、吸收(见左)、爬坡和扩散。面向学科的CT模式,例如例2中使用的概率生成模式,对计算数学思维、计算音乐思维、6以及通过显式编程进行计算艺术思考。在设计这些模式时,需要了解CT工具的功能支持。并非所有基于块或基于文本的编程语言都是相同的。用一种工具优雅和简单的事情,用另一种工具可能会变得复杂和几乎不可能(http://tiny.cc/affordances).
  2. 使辩证法。辩证法是一种推理过程,通过探究揭示误解来解释有力的观点。使显式编程辩证地看待“学习编程”,以及同样重要的“学习编程”红箭头图1需要支持。显式编程不仅仅是计算机科学教育的集成。例如,在科学课上,老师希望学生理解行星的运动。学生们创造一个地球精灵围绕太阳运动的动画。地球是程序化的,就像Logo中的“乌龟”一样,使用循环迭代使地球向前移动一些像素,然后向右转一些角度。这就产生了一个地球围绕太阳旋转的漂亮动画。然而,它不符合解释任何比创建一个静态的立体模型制成的纸,电线,和磁带。这个活动并没有让学生参与一个辩证的过程,挑战错误的概念或扩展他们对行星运动的理解。相反,例1中的辩证法是关于发现病毒传播的惊人现象,例2中的辩证法是关于用由调谐频率和多个隧道产生多辆车的概率所产生的复合概率进行实验。
  3. 促进工具性动机,使学生能够创造有意义的艺术品。工具性动机,2如前所述,有助于将规程与编程联系起来。学生可能对编程本身不感兴趣,但可能想要构建对个人有意义的工件,如模拟(例1)、游戏(例2)、动画、故事和机器人。对于以学科为导向的CT模式,例如例2中用于创建青蛙的概率生成模式,工具性动机可能会导致理解数学/概率的兴趣,因为对数学的掌握有助于创造更可玩的游戏。这与学校里传统的数学学习形成了强烈的对比,在学校里,学生们通常认为掌握这门学科是天生的才能,而不是一种使能的工具。与学生不同的是,教师可能并不关心游戏设计,但一旦他们看到学生通过游戏设计高度投入学习编程,教师可能会将游戏设计视为一种有效的教学方法。

K-12学科和编程之间的巨大差距需要通过精心设计的桥梁结构来连接起来。


回到顶部

结论

如果计算思维不只是拥挤的课程中必须教授的另一项内容,而是想真正与公立学校相关,它就必须从根本上改变对跨学科教育的看法。编程如何支持STEM、艺术、音乐和语言的有效教学?也许CT的一般概念需要被学科导向的版本所取代,比如计算数学思维、计算音乐思维和计算艺术思维。通过为教育工作者和学生提供桥梁,在典型的K-12学科和编程之间的巨大差距,显式编程,发展了Seymour Papert最初的计算思维概念,正在做的就是这一点。

回到顶部

参考文献

1.Basawapatna, A.等。识别计算思维模式。在42年nd计算机科学教育技术研讨会(SIGCSE),达拉斯,德克萨斯州,美国,2011。

2.杜威,J。对教育的兴趣和努力。霍顿•米夫林公司,1913年版。

3.数学教育空间的探索。国际计算机数学学习杂志(1996), 95 - 123。

4.超越语法:20年来在AgentSheets中进行块编程的经验教训。视觉语言与感知系统杂志(2017), 68 - 89。

5.Repenning等。可扩展的游戏设计:通过游戏设计和模拟创造将系统的计算机科学教育带到学校的策略。计算机教育学报(TOCE(2015),日至31日。

6.Repenning等。计算音乐思维模式:通过交互符号设计将音乐教育与计算机科学教育连接起来。在12月12日th计算机支持教育国际会议。(布拉格,2020),641 - 652。

7.计算思维。Commun。ACM 49, 3(2006年3月),33-35。

回到顶部

作者

亚历山大Repenningalexander.repenning@fhnw.ch)是瑞士温迪士教育学院FHNW的计算机科学教育教授兼主席,以及美国科罗拉多大学博尔德分校的计算机科学教授。

Ashok Ram Basawapatnabasawapatnaa@oldwestbury.edu)是美国纽约州老韦斯特伯里市数学、计算机和信息科学系的计算机科学助理教授。

回到顶部

脚注

这项研究得到了美国国家科学基金会、瑞士国家科学基金会和哈斯勒基金会的支持。


版权归作者所有。
向所有者/作者请求(重新)发布许可

数字图书馆是由计算机协会出版的。版权所有©2021 ACM, Inc。


没有发现记录

Baidu
map