目前,科学家已将计算思维和理论思维、实验思维并列为人类三大科学思维,计算思维正逐渐成为一种基本的思维智能,受到了科学界的广泛关注。它从被明确提出的那天起,便引起全球计算机教育者的广泛关注和热烈讨论。
周以真教授认为抽象(abstract)和自动化(automation)是计算思维最显著的两大重要特征。abstract的中文释义有三个:一是形容词,有抽象的、理论上的,难解的,抽象派的,茫然的意思;二是名词,有摘要,抽象概念,抽象派艺术作品的意思;三是动词,有提取、分离,转移(注意等),概括、摘录等意思。而中文的抽象一词有两个意思:一是从许多事物中,舍弃个别的、非本质的属性,抽出共同的、本质的属性,是形成概念的必要手段;二是不能捉摸的。从抽象的中英文意思可以看出,在计算思维中提出的抽象应该是取了动词的意思,就是从事物中舍弃个别的、非本质的属性,抽出共同的、本质的属性,包括提取、分离的过程。计算思维中的抽象完全超越物理的时空观,并完全用符号来表示,其中,数字抽象只是一类特例。与数学和物理科学相比,计算思维中的抽象显得更为丰富,也更为复杂。数学抽象的最大特点是抛开现实事物的物理、化学和生物学等特性,而仅保留其量的关系和空间的形式,而计算思维中的抽象却不仅仅如此。
计算思维的第二个本质特征是自动化,释义自动化的中文解释为最高级的机械化和电气化。机器、设备和仪器能全部自动地按规定的要求和既定的程序进行生产,人只需要确定控制的要求和程序,不用直接操作。
在 2017 版高中信息技术课程标准中,计算思维表现为形式化、模型化、自动化、系统化四个方面,抽象是实现形式化、模型化的基础,也是实现自动化、系统化的先决条件,而自动化则是实现高效解决问题的保证。只有对问题进行合理的抽象,才能实现高效的自动化过程。利用计算机解决实际问题的过程如图 1 所示。
图1 利用计算机解决实际问题的过程
计算思维培养的重要载体就是程序设计教学,之前在教学过程中我们往往忽视了对学生抽象的培养和训练。一方面是因为我们的教学内容就很抽象,教学中举的例子离现实生活较远;另一方面,教师有意无意地过多地关注了程序语言的语法教学,而忽视了对实际问题的分析。这样导致的后果就是学生缺乏对实际问题分析能力的锻炼,只记住一些固定语法规则,对于语言的学习没有迁移性,对于老师讲过的题很容易做出来,而对于没有遇到过的问题就会感到无从下手。
计算思维中的抽象到底应该包括哪些步骤呢?我们认为抽象至少应该包括以下三个步骤。
第一,界定问题,要将来源于生活中的问题用自然语言描述清楚,明确要解决的问题。
第二,找出问题的关键特征,这个过程中我们要判别并选取与问题解决相关的关键部分,抽取基本的解题单元,并扩展问题解决领域,然后将这些关键因素用特定的符号表达出来。
第三,建构模型,将问题的关键因素之间的关系用合适的形式表达出来。
通过以上三个步骤,基本上就能找到关键因素,从复杂的现实世界映像到简化的抽象模型,并能用正确的方式描述它们之间的关系,从而为实现模型化和仿真即程序自动化,打下良好的基础。当然,抽象是有层次的,具体的哪些问题抽象到什么层次与程序设计语言的实际要求以及学生的思维水平紧密相关,这个需要在教学过程中准确把握,但要坚持一个原则就是对问题的抽象一定要有利于用这种语言实现自动化。
为了更好地实现计算思维的自动化,我们需要了解语言的数据结构、控制结构等知识,这部分的教学是我们教师所擅长的,一直以来也是非常得到重视的。
App Inventor是谷歌公司开发的手机编程软件。用户能够通过该工具软件自行研发适合安卓系统手机使用的应用程序。这款编程软件通过一些积木模块的拖曳结合手机自带的传感器就能制作出既华丽又实用的手机应用,这样的操作避免了枯燥的程序设计语言的记忆对思维的干扰,使开发者更专注于对手机APP应用的设计,专注于分析所开发的手机应用的关键因素,分析这些因素之间的联系,并按一定的方式表达出来。以App Inventor为载体锻炼计算思维是一种很好的途径。
本书重视对学生抽象能力的培养,利用独立的项目引导学生经历分析问题、界定问题,抽取关键因素并分析这些关键因素之间的联系,而程序设计的数据结构、控制结构等语法知识会隐含在这些项目中。在项目的引领下,学生多次经历这样的过程后计算思维势必会得到提高。
本书还注重学以致用,每章的后面都有启发学生拓展思维的思维导图,引导学生顺利达到知识的迁移,在最后一章,我们还为学生提出了更高的要求,要求学生制作一个综合作品,并给出了评价指标。
本书共分 12 章,除第一章外,均是以项目的形式组织展开的,本书着力培养学生的计算思维,从计算思维的本质:抽象和自动化入手,引领学生经历项目学习的全过程,在这个过程中提高计算思维。本书适用于初、高中零起点的学习,如果不是零起点的学生可以从自己喜欢的章节开始学习。
本书编写依据的平台:App Inventor2 WxBit汉化版,由华南理工大学杨道全老师基于MIT App Inventor开源代码二次开发,独立运行,免费为大家提供服务。同学们可以从https://www.wxbit.com下载安装使用,这个网站还可以查询到更新记录等其他信息。