APP下载

高中新课程新教材教学中的计算思维教育

2021-09-24

中国信息技术教育 2021年18期
关键词:算法解决问题计算机

华东师范大学开放教育学院教授,曾任华东师范大学信息科学技术学院副院长、全国中小学计算机教育研究中心上海部主任等职,近期主要从事儿童编程教育、计算思维教育等方面的研究工作,已出版专著《计算思维教育》《中小学计算思维教育实践》以及儿童编程系列读本,发表论文数十篇。

山东省青州第一中学信息技术特级教师、校长助理。山东省教科院兼职教研员,山东省教学能手、山东省电化教育先进个人、国培信息技术专家、山东省教育厅新课程培训专家,获得潍坊市政府教学成果一等奖。曾经编写国家教材(教科版)必修二《信息技术与社会》(副主编),出版专著《趣味动画一点通》,主编山东省初中《信息技术》教材(泰山版),《中国信息技术教育》杂志“蓝调解码”栏目主持人,发表上百篇重要的国家级论文,指导信息学奥赛获得省一等奖、国家三等奖十几人次。

计算思维是一种学科思维,我们不否认计算思维教育会有利于学生思维整体水平的发展,同时也需要清楚计算思维作为计算机学科思维与其他学科思维有着不同之处,计算思维的独特性才是计算思维教育的价值所在。

在高中信息技术新课程带来的先进理念中,学科核心素养无疑是最为靓丽的风景,在由信息意识、数字化学习与创新、计算思维和信息社会责任引领的高中信息技术新课程、新教材的群山之中,计算思维是公认的一座高峰。伟人曾说过“无限风光在险峰”,对一线教师而言,计算思维的魅力与苦难于新课程新教材教学的确都如诗中所言。在漫漫的攀登途中,我们或许还有很多迷茫,本期对话特为大家指点迷津。

● 计算思维概念的发展

王爱胜:王教授您好,您一直在研究中小学信息技术课程、教材与教学,在计算思维在教学中如何落地方面有很多显著的研究成果。所以,我将一线信息技术教师在教学中遇到的部分困惑提出来,请您分析指點。

根据我的了解,计算思维曾有不同的提法,也有不同的观点与阐释。计算思维概念的提出者周以真教授也有不同的阐述。周以真于2006年3月首次提出计算思维的概念,对计算思维的阐述侧重软件工程的学习思维与设计流程。2010年,周以真教授又指出计算思维是与形式化问题及其解决方案相关的思维过程,对计算思维的阐述更加微观化,站在具体的计算机问题解决角度对计算思维进行了新的界定。这就造成了一线信息技术教师常有两种困惑:针对第一种阐释,好像在教学中只要学习编程就是对计算思维的落实;而针对第二种阐释,又好像计算思维可以拓展到利用应用软件解决问题等所有教学领域。

所以,想请教王教授,应如何认识计算思维的概念发展?如何看待编程设计与应用软件不同的计算思维?

王荣良:王老师好!很荣幸能与您共同探讨共同关心的计算思维教育问题。

但凡一个概念从专业领域走向大众视野,必然会遇到很多问题。例如互联网,在计算机网络专业中,还需要细分互联网与因特网的异同以及各种技术特性,这就与目前大众所接受的互联网概念并不相同,而互联网+概念的提出,则是反映了一种社会生产、社会生活方式,其原有的技术属性明显弱化。计算思维也一样,计算思维概念在经历通俗化的过程中,会促使更多的人去学习、研究并接受这一概念,同时,计算思维概念本身也在不断地演化与发展。其合理的发展方向,也是我们所关心的问题。

在计算机专业教育领域,计算思维早就被提出了。例如,《中国计算机科学与技术学科教程2002》,也称为CCC2002教程,从学科教育思想、观念、教学计划以及学生培养目标等方面为计算机科学与技术本科教育提供了指导意见。CCC2002教程阐述了计算思维的梯级训练系统,并把计算思维能力作为专业本科学生必须掌握的学科能力。周以真教授把计算思维界定为如同读、写、算一样重要的、每个人都要掌握的能力,引起了社会的广泛重视以及很多学者的参与讨论。计算思维的普及化发展,以及计算思维分解为更一般的思维方式等都是概念演化的不同方向。但是我们需要思考的是,计算思维概念发展的边界在哪里?因为如果不预设边界,计算思维很有可能会普及成为适合解决所有问题的一般思维方式。我的观点是,计算思维是一种学科思维,我们不否认计算思维教育会有利于学生思维整体水平的发展,同时也需要清楚计算思维作为计算机学科思维与其他学科思维有着不同之处,计算思维的独特性才是计算思维教育的价值所在。

王爱胜:请教王教授,计算思维有什么优势可以让它成为信息技术学科思维呢?

王荣良:如果认可计算思维是计算机学科思维,那么,开展计算思维教育的最好载体就是计算机学科教育。这是我的第二个观点。尽管在生活问题或其他场景中解决问题的过程也能领悟到计算思维,然而计算机学科知识、学科方法的学习经历是培养计算思维最直接也是最专业的途径。当然,以这样的途径在中小学开展计算思维教育,面临的挑战是学生的认知水平和知识储备与计算思维教育的关系,也就是说,中小学生能够掌握的计算机学科知识是否能够支撑计算思维发展的需要。

作为20世纪最伟大的发明,计算机有两个特点:通用性和友好性。通用性表现在计算机高度抽象了数据计算的过程,我们在其基本架构上运用计算机学科思想与方法编制软件或设计硬件,就可以为特定的应用服务。通用性也造就了计算机具有应用的广泛性。友好性则反映了计算机的发展是以尽可能降低人的能量开销为目标的,其特定应用的傻瓜化发展,就是在一定程度上或范围内帮助人们降低思维强度,从而轻松地享用计算机。正因为如此,计算机会被广泛地应于各个领域。因此,我的第三个观点是,不能以计算机在当代社会应用的普及性来简单推断计算思维教育的重要性。

由于实施计算机学科教学需要有一定的门槛高度,所以在中小学开展计算思维教育,面临着学习者计算机学科基础知识匮乏的困境。相对而言,编程学习需要的学科基础知识比较少,起点低,中小学生容易接受,是一个适合在中小学开展计算思维教育的载体。同时,在中小学开展编程学习有基础,且目前也有比较多的人机交互友好的编程平台可供选择,这也是有利因素。更重要的是,程序设计是一个作品创作的过程,这个过程能够体现计算机学科思想与方法的运用。

至于利用应用软件解决问题,则需要考察其表述的应用与计算机学科思想与方法的关系。一般而言,所谓应用软件,就是计算机软件开发人员已经将具体应用的操作要求以程序为载体进行了固化,从而降低使用者的思维负荷。例如,使用文字处理软件,使用者思考的重点肯定是文章写作本身,而对于文字编辑、查找、修改等功能仅仅是熟练应用而已。如果学生装配或使用应用软件解决问题时,需要运用计算机学科思想与方法,或者在学习该应用软件时需要运用计算机学科思想与方法,那么经历此过程,有利于促进学生计算思维的形成。软件操作技能的掌握,可能成为计算思维教育的基础,如果解决问题的重点不是计算机学科思想方法的运用,那么与计算思维的关系不大。我们有理由相信,一个人能够非常熟练地玩电子游戏,并不能说明其计算思维也同步发展。

● 计算思维与算法思维的关系

王爱胜:通过王教授的分析,我们结合新教材及各地教学实践来看,觉得在义教阶段可能更有利于进行应用软件方面的计算思维培育,而高中学生更多的是急需在编程教学上的计算思维培养。在编程教学中,一直困扰一线教师的是算法思维与计算思维应是一种怎样的关系呢?比如,设计一种查找程序,查找的策略有很多,如顺序查找、折半查找等。生活中,我们找东西更多的方法当然是顺序查找,无非就是费点力气一个一个地查看。而用计算机解决问题,就可以通过递归算法进行分治策略处理,从而更高效地进行折半查找。这种算法的优化策略,也是因为具有较好的计算思维了吗?

因此,请教王教授,算法思维与技术思维的关系是怎样的?对传统提法中的算法思维而言,递归也好,分治也罢,这个优秀的算法内容本身,在计算思维中是如何表征的呢?属于计算思维的哪种表现呢?

王荣良:算法是问题求解的一种手段。在使用计算机解决问题的过程中,问题求解的关键点之一是设计算法,即設计可实现的算法,设计可以在有限时间和空间内执行的算法,设计尽可能快速的算法。我曾经从三个方面描述算法思维:算法思维就是能清楚地说明问题解决的方法,能够将一个复杂的问题转化成若干子问题并将其进一步简化,以达到解决问题的目的;算法思维就是能清楚地理解问题解决的规则,能够认识到问题的起点、边界和限定范围,按部就班地完成任务或解决问题;算法思维就是能清楚地分析问题解决方法的优劣,能够设计与构造操作步骤更少、更经济的算法。

所谓计算,就是“数据”在“运算符”的操作下,按“规则”进行数据变换。当我们要求计算机自动计算时,就是需要设计一些规则,能让计算机按这些规则自动完成工作,这一过程就是设计算法。算法的本质是规则及构造,构造算法的前提是数学建模,目的是通过构造有序规则自动地解决预设的问题。美国国际教育技术协会和计算机科学教师协会描述了计算思维问题解决过程六个阶段要素:①提出问题,这些问题能通过计算机或其他工具解决;②按逻辑组织和分析问题;③通过抽象表征数据,如建模和仿真;④使用算法思维自动化解决方案;⑤识别、分析和实施可能的解决方案,以实现最有效资源和步骤的组合;⑥总结问题解决过程,并迁移到不同问题解决中。这被称为计算思维的一种操作性定义,算法在其中的地位十分重要。

因此,算法学习,学习者所习得的是一种解决问题的策略,如王老师您所说的,运用分治策略处理,采用折半查找方法可以快速地查找数据;算法学习,也为学习者建立一种观念,即通过有限步操作规则,特别是通过重复执行的操作步骤,可以清晰地认识到,一个复杂的问题是可以逐步地通过执行预设的规则而得以解决。这一经历过程与计算思维是一致的,即经历“抽象—形式化表达—构造—自动化”的过程,针对问题,通过抽象,形成合适的算法,用形式化方式准确地表达,然后构造执行序列,最后自动化地解决问题。我把运用算法思维实现这一过程称之为用“程序性构造”实现自动化,即在时间上通过有序操作实现问题解决,这是算法思维对计算思维所做出的贡献。

王爱胜:请教王教授,除了算法思维之外,我们还可以从哪些角度来应用计算思维呢?

王荣良:除了算法思维,系统思想与方法也是求解计算问题的一个重要手段。对于系统的研究,涉及怎样刻画与描述系统,类似于计算过程的数学建模,运用系统建模的方法来解决问题。这样,一个系统可以通过模型来表达,也可以通过分析模型来分析系统。

系统具有层次性,不同的抽象层次看到的系统是不一样的,系统思想和方法可以指导人们怎样通过分层将复杂的问题化解为简单问题,怎样把系统表述清楚,怎样将存在的但不可见的系统以可见或可理解的方式呈现出来,以及怎样用部件有效地构造系统,评价系统的性能。例如,对于计算机网络协议,就是通过系统分层的思想,清晰地阐述数据包的自动传输。系统思想与方法作用于计算思维,我称之为“系统性构造”,体现的解决问题的过程是通过对现实世界待解决问题的分析与描述以后,用一个个对象或构件组成系统,通过系统建模,从空间上构造一个计算系统来实现自动化。例如,在面向对象的程序设计中,对象的行为或者方法是在时间上反映规则执行序列,是算法思维的体现;而各对象之间的关系、对象与类之间的关系,则是从空间上体现了系统的有机组成,是系统思想的体现。

当然,系统是人们看待世界中的事物的一种有效方式,系统思想与方法有其通用性,很多学科都用系统的观点来分析问题和表达问题。不同的学科,由于视角和研究目标、研究方法的不同,对同一事物的表述也会有所不同。因此,在计算思维教育的大框架下,系统思想与方法的运用一定要关注计算机学科思想方法的体现,具有计算机学科特征。例如,信息管理与信息系统专业把信息系统界定为实现对信息的有效传递、存储、处理和利用而建立的包括设备、技术、人员与机构在内的综合系统,因为该专业隶属管理学,人作为管理学研究的要素则必然被包含在信息系统之中。从表面上看,我们会发现,在这种系统观下人机交互就成为了系统内部的数据通信。而从计算的观点出发,人不应该是计算系统的组成部分,而是计算系统的外部环境,计算思维就是用于理解计算系统如何通过控制其系统内部各组成部分自动化地为人类解决问题。所以,计算思维教育特别需要重点关注计算系统是如何通过内部控制和外部的输入输出来为人类服务。

● 计算思维的培养周期问题

王爱胜:王教授给出的解答,实际上是明确了计算思维的概念的内涵与外延、编程中计算思维的应用及计算思维的目的界定方法等,让我们对计算思维在教学中的实现有了更多的信心。然而,我们可能还有一个更大的问题会时刻面对,即计算思维的形成到底在时间、空间上需要怎样的期待。有的老师说,一节课两节课不可能形成计算思维,得一个学期或者一个学段才行;也有的老师说,一个问题的解决就可以落实计算思维。这让我们的教学设计、教学实施都有一些迷茫。

因此,请王教授给我们一个计算思维培养周期的建议。

王荣良:这是一个很有趣的问题。要明了计算思维的培养周期,就需要明确计算思维培养的目标以及这一目标的评测方法。更进一步,我们还需要知道如何开展计算思维的培养。这样的话,计算思维培养周期的问题,又绕回到了计算思维教育问题本身。

查阅《普通高中信息技术课程标准(2017年版)》,可以发现针对课程各模块计算思维的学业水平要求,不少都是按计算机或网络等学科知识要求描述的。我们不能将此理解为计算思维就是用知识掌握来评价的,更不能简单地推断计算思维培养就是知识学习。同样的现象也出现在信息意识的学业水平描述上,这既说明意识或者思维之类的概念在具体描述上的困难性,同时也说明计算思维与各教学阶段的学科知识有相关性。

从计算思维的本源出发,具备计算思维的人应该能够自如地运用计算机学科思想方法解决问题。其解决的问题可以是计算机学科问题,也可以是将计算机学科思想方法迁移到其他方面问题的运用。也就是说,一个具备计算思维的人,能够“计算地”看待问题,哪怕是好奇心,也会具备计算的特征。例如,他遇到一款新接触的应用软件,会产生与普通人不一样的、基于计算机学科的思考,猜想该软件的核心功能、主要算法以及可行性方案,并且还会输入一些参数来测试与验证自己的猜想。

计算思维的能力是复合的,无论是语言能力、认知能力、解决问题能力,都支撑计算思维的实施与发展。比较其他学科,概括能力、构造能力和推演能力是最能体现计算思维学科特征的能力。概括能力支持学生有关计算机的学科知识认知,同时也支持学生计算思维向理论方向升华。构造能力是一种计算机类系统的设计能力,是解决问题的重要能力体现,反映了计算思维解决问题的独特性,体现了计算机学科从理论到实践的运用。推演能力是一种最基本的逻辑演绎能力,其保障了计算思维正确的思维路径和思维结果,同时也可以验证计算结果的正确性。

王爱胜:王教授,您可否从基本、较强等不同等级或水平的计算思维给我们一种信心?

王荣良:目前,一些机构在研制并发布了各种计算思维评测方法和量表。大部分评测方式都是采用问卷的方式来测量学生的计算思维水平,但这些测评方法并不适合日常教学中的常规评价。回到实际的教学,我们知道,纯粹的思维教育是不存在的,计算思维教育必然融入到计算机学科知识与方法的教学之中。因此,计算思维的培养周期应该与承载计算思维教育的课程教学同步,但其与知识学习的不同点在于:其一,不同于知识学习可以用是否记忆来检测学习效果,计算思维培养需要有一定的时间积淀,在从知识向能力升华过程中得到发展;其二,思维是一个过程,计算思维的形成需要经历从抽象到自动化的问题解决全过程。

依据以上两点可知,知识学习与计算思维发展是有关联的。在计算思维教育的框架下,简单记忆不是知识教学的主要目标,如何通过知识的学习促进学生思考才是教师需要深思的问题。相应地,计算思维的评价也不是只能采用问卷式的量表进行评测,而是可以结合教学内容从学科知识与方法的掌握运用到问题解决等多个维度进行综合评价。

按照知识技能与计算思维关系的紧密程度,可以把学科知识技能分为三类。第一类与计算思维的关联度最高,如算法概念以及各类具体算法,经历算法应用及其实现过程与计算思维重合度高,显性地支持计算思维的形成。第二类与计算思维关联度一般,如二进制知识及涉及的“0”“1”思维,反映出其在计算机存储、运算以及信息编码等方面的特征,隐性地支持计算思维的形成。第三类与计算思维关联度最弱,如计算机操作技能,虽然从学理上分析这些技能与计算思维几乎不相关,但其熟练程度与学科知识与方法的学习效率相关,从而间接影响到计算思维的培养。因此,系统地规划课程内容十分重要,既能保障课程内容的系统性,又能彰显计算思维的培养。

不同学习阶段的计算思维能力表现是不一样的。这既反映在不同年龄段的学生在问题理解、知识驾驭等能力上的差异,也体现在不同的学习内容导致学生使用不同的学科方法解决问题上。新课程依据计算思维教育的目标要求进行系统的规划,虽然没有必要每节课的学习内容都与计算思维紧密关联,但是每个学期或学年,都应该具有运用计算机学科思想解决问题的完整经历,从而不断地积淀计算思维,螺旋式地发展计算思维。

● 结束语

王爱胜:非常感谢王教授的热心交流和专业指导,让我们认识到计算思维既是一种课堂教学中具体的可操作、可培养的内容,也是一种教育教学中长期的理念与目标,我们将进一步在教学实践中探索、尝试、反思与交流,希望我们能在一起攀登计算思维学科核心素养高峰的过程中,看见更多的课程风景,收获更多的课堂教学成果。期待有一天,与王教授在高中信息技术教学的征途上再次会面,再论课程教学和进步方向!

王荣良:能够有机会和王老师就计算思维教育实施过程中一线教师关心的问题进行交流,是一件很愉快的事,我感到收获很大。

我们要用系统的观点看待计算思维教育,同时计算思维教育实施也是一个系统工程。从高中信息技术课程来看,数据、算法、信息系统、信息社会等概念对应的学科思想方法很丰富,如何选用正确的学科思想方法理解计算思维,无论对于教师的教还是学生的学,都是一种挑战。平板设备的广泛使用,导致小學生的键盘和鼠标操作技能不如以往,是否需要设置统一的教学要求?更一般地,针对不同年龄段的学生开展计算思维教育其合理的知识技能基础是什么?这些问题都需要深入研究。计算思维教育将在探索中前行。

最后再次感谢王爱胜老师,也非常感谢《中国信息技术教育》杂志为我们提供交流平台。

猜你喜欢

算法解决问题计算机
浅谈列方程解决问题
“解决问题的策略:一一列举”教学实录与反思
中国计算机报202007、08合刊
Travellng thg World Full—time for Rree
中国计算机报2019年48、49期合刊
中国古代的“计算机”
两只想打架的熊
学习算法的“三种境界”
算法框图的补全
算法初步知识盘点