Computational Thinking in K–12: A Review of the State of the Field — K-12中的计算思维:领域现状回顾
K-12: 幼儿园+小学+中学教育合在一起的统称,多用于美国、加拿大以及澳大利亚的部分地区。
Abstract
本文通过研究最近发表的大部分以Jeannette Wing的文章为跳板的学术文献,确定了K-12教育中计算思维的讨论现状,找出了研究中的差距,并阐明了未来研究的优先事项。
Introduction
以下各节主要研究最近发表的、突出的、以Wing的文章为跳板的学术文献。文章还将报告围绕K-12中计算教育的主要工作。
鉴于CT作为一个词组的定义混乱,以及它对学校教育的必要性,下一节深入探讨了CT的不同观点和不断发展的定义,在学童中建设CT的理由,以及针对学校CT的常见批评。然后,文章调查了最近对CT的研究(包括一些不使用计算性思维这个词本身,但仍然考察儿童计算能力的研究),各种被认为能促进CT发展的环境和工具,并对试图评估CT的研究进行了评价。 最后,文章根据当前研究中的空白,列出了扩大K-12 CT讨论的优先事项。本文通过研究最近发表的大部分学术文献,以Wing的文章为跳板,确定了研究中的空白,并阐明了未来研究的优先事项,从而为K-12教育中关于计算思维的讨论现状提供了框架。
The What and Why of Computational Thinking
根据Wing(2006)的说法,”计算思维包括通过借鉴计算机科学的基本概念来解决问题、设计系统和理解人类行为”(第33页)。CT的本质是在面对问题时像计算机科学家一样思考。
早期的CT概念侧重于程序性思维和编程,虽然这个概念没错,但在workshop上被学者们重新审视,结合了几个计算机科学的核心概念后,此概念的范围被扩大,且超越了“单纯的编程”。workshop中也存在着几个尚未解决的核心问题:
- 如何识别CT?
- 在儿童中推广CT的最佳教育方法是什么?
- 能否合理地将编程、计算机和CT分开?
在2011年,Wing对CT的定义加以完善后,定义CT为“在制定问题及其解决方案时所涉及的思维过程,以便解决方案以一种可以由信息处理代理(information-processing agent/可理解为计算机)有效执行的形式来表示”
Aho(2012)进一步简化了这一定义,将CT定义为在提出问题时所涉及的思维过程,以便 “其解决方案可以被表示为计算步骤和算法“。
同在2012年,英国皇家学会也为CT提供了定义:”计算性思维是在我们周围的世界中认识计算的各个方面,并运用 计算机科学中的工具和技术,以了解和辩证性地看待自然和人工系统和过程。“
维基百科的解释:计算思维/运算思维
计算思维的另一个特征是基于三个阶段的“3A”迭代过程:
- 抽象(Abstraction):问题表示;
- 自动化(Automation):解决方案表达;
- 分析(Analyses):解决方案执行和评估。
在美国大学委员会的试点课程中,提出了computing的7个思想:
- 计算是人类的创造性活动。
- 抽象化减少信息和细节,把重点放在与理解和解决问题有关的概念上。
- 数据和信息有助于创造知识。
- 算法是开发和表达计算问题解决方案的工具。
- 编程是一个产生计算产品的创造性过程。
- 数字设备、系统以及将它们相互连接的网络使人们能够并促进以计算方法解决问题。
- 计算使其他领域的创新成为可能,包括科学、社会科学、人文、艺术、医学、工程和商业。
在2000年,diSessa提出了一个概念叫”computational literacy” 中文也可以翻译成“计算素养”,但现今与CT经常交替使用,二者概念也相对接近。1980年B. A. Sheil 在 Xerox PARC也提出了“procedural literacy”(中文翻译为程序素养)的概念,但和CT也无太大差别。
综上所述,CT的构成要素可以分成以下几点:
- 抽象和模式概括(包括模型和模拟)
- 系统性地处理信息
- 符号系统和其表示方法
- 控制流的算法概念
- 结构化问题分解(模块化)
- 迭代、递归和平行思维。
- 条件逻辑
- 效率和性能的制约因素
- 调试和系统性错误检测
编程不仅是CS的一项基本技能,也是支持CT所涉及的认知任务的关键工具,同时也是计算能力的展示。CS Unplugged这个项目就介绍了计算概念,但并没有使用计算机,同时还提供了很多有价值的入门活动,让儿童接触到CS的本质的同时,不至于接触到太难理解的部分。
这章节的最后总结了一下学习CT的目的,也就是为了在充满”计算概念“的社会中取得进步。
Summary of Pertinent Research on CT in K–12 — 关于K-12中CT的相关研究摘要
Environments and Tools That Foster CT — 培养CT的环境和工具
针对K12的编程环境应该是: 低门槛、高上限、可转移、有公平概念、系统的、可持续的
- 比较受欢迎的图形化编程有:
- 基于网络的模拟制作工具:
- 机器人套件和可操作媒介:
其中相对容易使用的是图形化编程,规避了编程语法的难度,将学习重心放在了”设计与创造“上。
它们基本上都涉及了3个步骤: ”use - modify - create” “使用- 更改 - 创造”
可视化、有形化的编程体验之后,学习者往往会接触到Python、Java、Scheme等高级编程语言。
同时,为缩小计算机领域性别差距,
作为一个比大多数工具更加性别中立且完整的可视化编程环境,为允许创意性的应用构建设定了一个较低的门槛。
同时还能使学习者参与复杂的CT概念,包括程序化和数据抽象 procedural and data abstraction、迭代和递归思维 iterative and recursive thinking、结构化任务分解 structured task breakdown、条件和逻辑思维 conditional and logical thinking 以及程序调试 debugging。
Video games 在K-12的编程学习领域中虽然热度呈上升趋势,但作为践行/检测CT的平台来讲,却一直没得到充分应用。虽然有Formula-T(使用NetLogo开发)的游戏存在,但其在CT研究中也未被充分使用。
当然Scratch 也有缺点,其缺乏将功能抽象为函数和程序的手段。(但Berkeley开发的Snap!有试图解决这个问题)
简单总结下这部分,虽然环境丰富,但CT研究中仍存在很多有潜力的方向没有被开发,比如:
- Fab labs
- Makerspaces
- DIY movements such as:
- Informal “hacker” events
- smartphones
- …
Assessment of CT — 对CT的评估
最近大多数针对CT评估问题的研究,如Werner、Denner、Campe和Kawamoto(2012)的《Alice中的童话评估》,都使用了学生创造的或预先设计的编程作品来评估学生对抽象、条件逻辑、算法思维和其他CT概念的理解和使用来解决问题。
用解构、逆向工程和调试来评估儿童在计算情境中的理解的想法长期以来一直具有教育吸引力。
Fields、Searle、Kafai和Min(2012)评估了学生在调试预制的有问题的电子纺织品项目时的工程和编程技能。
Han Koh、Basawapatna、Bennett和Repenning(2010)试图评估转移的棘手问题,以回答诸如 “现在学生可以为太空入侵者编程,那么学生可以为科学模拟编程吗?”等问题,并取得了一定的成功。
在过去的20年里,”学术话语(Academic talk) “被利用起来 以促进和评估数学和科学素养。学生在参与丰富的计算活动过程中对CS词汇和语言的使用发展,为衡量CT的成长提供了另一种工具。(Grover,2011年)。
Computing Education in K–12 — K12中的计算教学
CSTA’s Model Curriculum for K–12 Computer Science
计算思维网站上有丰富的CT资源链接。
ACM最近还在其《ACM Inroads》季刊中引入了一个新的主题–EduBits,重点介绍了ACM和附属组织的主要教育活动。
Broadening the Scope of the Discourse and Priorities for Empirical Inquiry — 扩大论述的范围和实证调查的优先事项。
很少有其他研究考虑到当代学习科学在社会文化和情境学习、分布式和体现式认知,以及活动、互动和话语分析方面的研究。
儿童和新手学习计算概念的认知方面在20世纪80年代得到了广泛的研究:
- 思维技能的发展 development of thinking skills (Kurland, Pea, Clement, & Mawby, 1986);
- 调试 debugging (Pea, Soloway, & Spohrer, 1987);
- 转移的问题 problems with transfer (Clements & Gullo, 1984; Pea & Kurland, 1984);
- 使用适当的鹰架理论来成功转移 use of appropriate scaffolds for successful transfer (Klahr & Carver, 1988); (scaffold在教育学中并不能翻译成脚手架,也有叫法为“支架式教学”)
以上文献应该被用于21世纪的CT研究。
同样没有得到充分研究的还有将计算机作为其他学科教学的媒介的想法–在K-12阶段将CT的引入与其他领域的问题解决技能的转移相吻合。此方面存在的研究有:
儿童成功设计LOGO软件来教授分数 children successfully designing LOGO software to teach fractions (Harel & Papert, 1990)
儿童成功设计LOGO软件来教授科学 children successfully designing LOGO software to teach science (Kafai, Ching, & Marshall, 1997)
在科学中使用建模软件 using modeling software in science (Metcalf, Krajcik, & Soloway, 2000).
关于学龄儿童CT的实证研究可以利用广泛的研究,例如研究初学CS的大学生在他们早期编程经验中所面临的,超越了语法问题的困难:
在发展儿童CT的某些元素(如递归)的道路上是否存在明确的障碍或困难目标?
如果有,这些障碍或目标是什么,如何解决?
另外,关于CT和CS的倾向性、态度和定型观念,以及它们与学习者身份发展的关系,也基本上没有被开发。
当我们努力为女孩和男孩提供旨在培养CT能力的学习经验时,这些因素有多重要?
一旦儿童参加了旨在发展CT的课程,我们能期望他们知道什么或在哪方面做得更好,以及如何对其进行评价?
这些也许是在认真尝试在学校大规模引入CT发展课程之前需要回答的最重要问题之一。
Reference
Grover & Pea, (2013) Computational Thinking in K–12: A Review of the State of the Field