高中信息技术课程蕴含的计算思维分析*张学军,郭梦婷,李华(西北师范大学教育技术学院,甘肃兰州730070)[摘要]计算思维可以让学生以一个多元化的视角用信息技术学科思维方式理解信息世界,解决目前信息技术课程发展所面临的学生学习积极性不足等突出问题,进一步推动信息技术课程的改革与重构。实际上计算思维隐藏于现有的高中信息技术课程之中,只是没有聚焦于它。该研究从基于“伟大的计算原理”的计算思维概念框架、计算思维操作性定义两个视角来分析高中信息技术课程蕴含的计算思维。计算思维概念框架涉及计算、抽象、自动化、设计、通信、协作、记忆、评估共八个维度,计算思维操作性定义涉及用计算思维解决问题过程的详细可操作步骤。研究采用了大量的、翔实的案例,对高中信息技术课程一个必修模块、五个选修模块蕴含的计算思维进行了深入细致的分析。对于高中信息技术课程而言,能够充分挖掘出各个模块内容中蕴含的计算思维,是有效实施计算思维教育的关键和前提。[关键词]信息技术;计算思维;概念框架;可操作性定义;案例分析中图分类号:G434文献标识码:A[作者简介]张学军(1968-),男,甘肃会宁人。教授,博士,主要从事数字化教育资源设计与开发、虚拟现实技术与教育研究。E-mail:xjzhang99@163.com。一、问题的提出2006年,美国周以真教授首次提出“计算思维”:计算思维是指运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。[1]这一概念的提出引起了国际社会的共鸣,同时,也引发了国内学者对信息技术课程重构与改革的思考。2000年,教育部召开的“全国中小学信息技术教育工作会议”中决定:将信息技术教育课程列为中小学的必修课程。2003年,教育部颁布的《普通高中信息技术课程标准(实验)》(以下简称《课程标准》)将提升学生信息素养作为普通高中信息技术课程的总目标,进一步推动信息技术课程的发展。[2]但是近年来随着信息技术课程实施及技术的发展,信息技术课程在教学内容和具体目标上都呈现出一定的不稳定性,多元化培养趋势日益明显。计算思维作为与理论思维(以数学学科为代表)、实证思维(以物理学科为代表)并称的三大科学思维之一,[3]逐渐被部分国家定为信息技术课程的核心培养目标。2008年美国计算机协会(ACM)将“计算思维”与“计算机导论”课程绑定在一起,并明确要求讲授计算思维的本质。[4]2011年,美国计算机科学教师协会(CSTA)把计算思维培养作为计算机科学课程的主要课程目标。[5]2013年,英国教育部将原有的国家课程方案中的ICT课程改名为计算课程,并将计算思维作为新课程的核心目标。[6]2010年,国内首届“九校联盟计算机基础课程研讨会”(C9会议)发表了联合声明,把培养学生的“计算思维”能力作为计算机基础教学的核心任务和目标。[7]近年来,国内一些重点大学也将计算思维的知识作为计算机相关专业或计算机基础课程的重要内容进行学习。但这些研究与实践大都是关于高校计算机教育中的计算思维,对中小学信息技术课程中所蕴含的计算思维进行系统研究较少。实际上计算思维隐藏于现有的高中信息技术课程之中,只是《课程标准》未能聚焦到它身上。对于由一个必修模块、五个选修模块组成的高中信息技术课程而言,所涵盖的内容涉及大量的“抽象与自动化”的内容,而“抽象”与“自动化”*基金项目:甘肃省普通高中新课程“信息技术学科教学改革研究与实验基地”项目;西北师范大学青年教师科研能力提升计划骨干项目(项目编号:SKQNGG11034)正是周以真教授提出的计算思维的本质所在。挖掘高中信息技术课程所蕴含的计算思维,可以为基于计算思维培养的高中信息技术课程改革提供有力的参考依据。二、计算思维与信息技术课程的关系1.计算思维体现了信息技术课程的一种内在价值目前,国内对信息技术课程价值的研究表述,大都是趋于泛化的“信息素养核心价值”论,关于“信息技术课程内在价值”论述的研究较少。信息技术课程是一门以计算机为核心工具的课程,具有较强的抽象性、逻辑性和思维性,需要学生具备严谨的思维方式来解决问题。《课程标准》中对学生的培养目标,虽然强调了培养学生利用信息技术解决问题的思想方法,但却并没有明确地体现信息技术课程的内在价值。全国中小学计算机教育研究中心李锋博士明确提出计算思维是信息技术课程的一种内在价值。计算思维作为信息技术课程中集“逻辑能力、算法能力、递归能力、抽象能力”为一体的解决问题的方式,无论从技术方法层面、社会需求层面还是个体心理发展层面,都以一种独特的思维方式引导学生理解信息社会,提高学生信息技术运用的批判能力、自我调节能力。[8]发展学生计算思维,培养学生运用信息技术解决问题的能力充分体现了信息技术课程的一种内在价值。[9]2.计算思维解决了信息技术课程的学科思维问题学科思维是区分学科边界、表征学科独立以及成熟的重要标志,信息技术想要作为一门学科独立存在,就一定要有自己的学科思维。[10]对此,祝智庭教授也指出:面对不断变化的信息化世界,计算机课程不是要把学生都培养成为程序设计专家,而是希望学生要具备信息技术学科的思维方式,正确理解计算机和人与社会的关系。[11]随着数字化社会的不断推进,各类电子产品在日常生活中逐渐普及,小到手机大到各种生产设备,计算思维已经成为人们理解问题、分析问题、解决问题必需具备的思维方式。对于信息技术课程而言,计算思维就像人们阅读、写字、做算法一样,是信息技术学科最基础、最适用、不可缺少的基础思维方式。[12]3.计算思维是信息技术课程改革的助推剂从国内外的研究现状可以看出,国外的信息技术课程改革英国以培养计算思维为主,美国倾向于多元化目标,目标之一计算机科学与计算思维紧密相关。在国内,张丽霞等研究了基于数字化生存能力的信息技术课程目标的重构,[13]吴向东等提出了“技术—文化”一体的新型信息技术课程框架并在小学进行了实践,[14]李艺等提出应着眼于学科思想投射视角来重构信息技术课程。[15]考察国内外信息技术课程的发展历程,它大体经历了“面向学科知识”、“面向学科工具”和“面向学科思维”的课程开发取向。[16]计算思维作为面向信息技术课程的学科思维,可以让学生以一个多元化的视角用信息技术学科思维方式理解信息世界,解决目前信息技术课程发展所面临的学生学习积极性不足等突出问题,进一步推动信息技术课程的改革与重构。三、计算思维的分析视角1.基于“伟大的计算原理”的计算思维概念框架“伟大的计算原理”提出者美国ACM前主席PeterJ.Denning认为,计算原理可以被归为七个类别。美国Settle和Perkovic基于Denning的七个伟大计算原理,提出了一个计算思维的概念框架,内容包括计算、通信、协作、记忆、自动化、评估和设计。[17]计算思维的概念框架,可以帮助人们进一步认识和运用计算思维,它包含计算思维的组成元素以及组成元素间的相互关系。后来,陈国良院士和董荣胜教授在此基础上增加了抽象,提出了一个包含八个概念,三个层次的体系。[18]拓展后了计算思维概念框架详细包含八个概念及对应的关注点和详细的核心概念,其中涉及计算思维八个基本概念的层次关系如图1所示。[19]图1计算思维基本概念的层次关系图[19]2.计算思维操作性定义2011年,国际教育技术协会(ISTE)和计算机科学教师协会(CSTA)对计算思维给出了一个操作性的定义,[20][21]即计算思维实质上是问题解决过程,包括(但不限于)以下步骤:(1)制定问题,并能够利用计算机和其他工具来帮助解决该问题;(2)逻辑化地组织和分析数据;(3)通过抽象(例如模型、仿真等),再现数据;(4)通过算法思想(一系列有序的步骤),来支持自动化解决方案;(5)识别、分析、实施可能的解决方案,同时结合上述步骤和资源,从而找到最有效的解决方案,;(6)将该问题的解决过程推广并迁移到更广泛的问题中。[22]四、高中信息技术课程蕴含的计算思维分析美国计算机科学技术教师协会认为,计算思维教育应当存在于每个学校的每堂课程教学中。[23]对于高中信息技术课程而言,能够充分挖掘出各个模块内容中所蕴含的计算思维,是有效实施计算思维教育的关键和前提。下面,就分别从计算思维概念框架和计算思维操作性定义两个视角分析高中信息技术课程蕴含的计算思维。(一)从基于“伟大的计算原理”的计算思维概念框架视角1.计算在基于“伟大的计算原理”的计算思维概念层次中,计算(Computation)处于核心层(第一层次)。计算是执行算法的过程,从一个包含算法本身的初始状态开始,输入数据,然后经过一系列中间级状态,直到达到最终也即目标状态。[24]课程标准中所包含的必修模块《信息技术基础》课程主题二“信息的加工表达”和选修模块《算法与程序设计》课程能很好体现计算的思想和方法,下面通过案例加以说明。(1)汉诺塔(Hanoi)问题汉诺塔(又称河内塔)问题是指有三根柱子,其中一根柱子上按大小顺序放着64片圆盘。要求把圆盘按大小顺序移动到另一根柱子上。规则要求小圆盘上不能放大圆盘,一次只能移动一个圆盘。汉诺塔问题,是通过递归与非递归方法来对圆盘进行移动的。汉诺塔问题蕴含递归关系,所以采用递归算法往往比较自然、简单、易于理解。汉诺塔问题计算量很大,当圆盘数为n时,需要移动2n-1次,所以,假设圆盘数很多,那么即使是用一台功能超强的计算机来解决它,也许要很多年。鉴于264-1这个数字太大,先考虑3个圆盘的情况,假设三根柱子分别为A、B、C,则计算机模拟执行时就会按A→C,A→B,C→B,A→C,B→A,B→C,A→C的顺序依次显示圆盘移动的起始、中间和最终状态。随着圆盘数的逐渐增大,计算机计算及显示圆盘移动的状态所花费的时间也会越来越长,学生此时便能很好地体验汉诺塔问题的计算复杂度。(2)计算机抽奖很多综艺类电视节目都设有抽奖活动:主持人先喊:开始!大屏幕上便不断滚动显示随机的手机号码,主持人后喊:停!大屏幕上最后显示的手机号码就成为中奖号码。电视上类似上述的抽奖活动实质上属于计算机抽奖,抽奖程序可支持手机号码、身份证号码、姓名、图片等多种中奖方式。计算机抽奖程序一般涉及用随机函数计算并选择手机号码的顺序问题,计算量的大小与候选手机号码的总数有很大关系。尽管涉及的算法不算复杂,但是不断滚动显示随机的手机号码也能让学生感受计算的快慢和状态的变化。2.抽象抽象(Abstraction)是指从众多事物中抽取出共同的、本质性的特征。[25]计算思维的抽象包含的核心概念有:概念模型与形式模型、抽象层次;约简、嵌入、转化、分解、数据结构、虚拟机等[26]。课程标准中包含的必修模块《信息技术基础》主题三“信息资源管理”和选修模块《数据管理技术》、《算法与程序设计》能很好体现抽象的思想和方法。(1)图书借阅系统概念结构、逻辑结构设计图书借阅系统可作为《信息技术基础》主题三“信息资源管理”或《数据管理技术》中的具体案例,主要功能是完成图书的借阅,其数据库设计分为需求分析、概念结构设计、逻辑结构设计和物理结构设计等阶段。概念结构设计、逻辑结构设计属于典型的数据抽象。图书借阅系统概念结构设计阶段,就是在图书借阅系统需求分析的基础上,将现实世界中图书借阅涉及的数据用概念模型来表示(抽象)。建立概念模型常用的方法是实体-联系方法(E-R方法),该方法直接从现实世界中抽象出实体和实体间的关系,然后用E-R图来表示概念模型。设计E-R图的基本步骤是:首先,用方框表示实体(如图书馆、图书管理人员、图书、读者等);其次,用椭圆表示各实体的属性(如图书的属性主要包括图书编号、名称、作者等);再次,用菱形表示实体之间的联系(实体之间的联系有一对一、一对多和多对多三种。如读者和图书两个实体之间为多对多即m:n的借阅联系)。图书借阅系统的概念结构设计的E-R图如图2所示。图2图书借阅系统的概念结构设计的E-R图图书借阅系统逻辑结构设计阶段,就是将图书借阅系统的概念模型即E-R图转换为数据库管理系统支持的数据模型(再次抽象)。如果是关系型数据库管理系统,则转换后对应的数据