程书志
(太湖县师训科教中心 安徽安庆 246400)
计算思维是当前信息技术教育教学中十分关注的主题,但大多数研究集中在大学计算机课程中。随着《普通高中信息技术课程标准(2017年版)》的推出,计算思维作为信息技术学科四大核心素养之一,成为信息技术教师的高频话题,在信息技术教学中也要注意如何落实学生计算思维素养。程序设计知识作为初中教材的重要内容且衔接高中教材,备受师生关注。从逻辑上讲,一个程序是对许多计算示例的简明而有限的描述,每个程序都包含一个可能的无限过程。而计算思维可将一个复杂问题通过转化、化简等方法简述成一个易于解决、快速理解的问题,可看出,在程序设计中对学生进行计算思维培养是有捷径可走的。本文试以研读八年级下册第二单元程序编写初体验中的活动3“出租车计费程序”来探索培养学生计算思维的方法。
安徽省初中阶段使用的信息技术教材是安徽省教科院编著的义务教育阶段新课程实验教科书(非零起点),教材是项目式结构,由现实生活中的问题开始引发学生思考如何解决问题,一个单元可作为一个项目来解决,在解决问题的过程中学习新知识、构建新的知识体系。要想在课堂教学中落实学生计算思维素养,离不开教材,因此教师要研读教材,发掘哪些知识点可以用于计算思维培养。
图1 算法流程图
“计算思维”由周以真教授在2006年首次提出并进行定义,较为公认的计算思维最具本质的特征是抽象和自动化。教学中,为了体现计算思维这种抽象特性和自动化本质,就需要教师对教材进行一定的弥补和转化。计算思维的抽象性表现在先将具体问题进行分析、提炼、构建,然后构造解决问题的算法,再采用符号化的形式抽象出来。例如,在“出租车计费程序”这个活动中,教材给的问题情境是“某市出租车的起步价为2.5公里以内8元,超过2.5公里的路程,按每公里1.5元计价。”在这个问题上,教师可以继续追问:如果你是司机,是不是希望自己只要输入乘客行驶的路程,马上就能显示乘客要支付的费用?我们如何直接得出结果?这时教师带领学生一起分析,发现此问题可抽象成2个小问题,即出租车行驶了2.5公里以内,直接就可以得出8元的结果;如果超过2.5公里,则要进行计算求解。这个过程使用自然语言来描述就是:输入公里数,如果0<≤25,则=8,否则=8+(-25)×15,输出应付费用。然后进一步构造解决问题的算法,用程序语言中的选择结构来实现这个二选一的问题,再将问题及其解法用流程图的形式表现出来(如图1)。
这个问题求解过程就是计算思维抽象性的本质。教师通过追问问题到分析问题的过程、抽象解法到流程图描述算法等一系列步骤的呈现,学生不仅学会了分析问题,计算思维能力也得到了提升。
通过算法的代码实现以及在机器上运行求解实现是计算思维中的自动化展现。教材是通过VB编程语言来实现出租车计费程序,学生使用选择语句来完成问题中二选一的问题,再通过调试程序检验是否可以正确运行,能否按照之前的算法完成任务并得到正确的结果。学生使用VB编程完成这种抽象的解释和程序的自动运行,能较深刻地体会到计算思维的自动化本质。
图2 计算思维活动模型图
计算的目的在于问题解决,而思维的目的在于问题解决和创新发现,所以计算思维的目的也在于问题解决,它是运用计算的方法进行一般问题的求解、系统的设计和人类行为的理解。“问题解决说”也因此获得众多学者和机构的认同。2011年,国际教育技术协会ISTE分会和CSTA计算机科学教师协会共同制定了中小学计算思维课程框架,明确将计算思维定义为解决问题的一种过程,这一过程包括问题确定、数据分析、抽象表示、算法设计、方案评估、概括迁移等六个环节。人们用计算机能够识别的方式来告诉计算机做什么以及如何做,这就使得问题的解决变为了算法的描述和程序的编写。计算思维是基于计算模型(环境)和约束来解决问题,在问题求解的过程中所使用的方法思路和步骤就是算法。无论是用自然语言、流程图,还是用其他方式来描述算法,最终目的都是将算法变成能在计算机中执行的程序,算法厘清了解决这些问题的思路,学生就可以通过自己编写相关程序来实现算法。
结合计算思维的定义以及参考费海明《中小学生计算思维培育的路径与策略》一文中的算法构建式教学方法,即让学生对任务实践中的技术进行抽象,从个别到一般构建算法、再从一般到个别检验算法,在此过程中培育计算思维。对程序设计教材内容进行分析,将计算思维方法渗透于教学活动过程,构建计算思维活动模型(如图2),通过这样六步活动来解决问题。下面就以“出租车计费程序”这个小程序为例,来看这些教学活动在课堂教学中的实施步骤。第一步:将问题呈现给学生;第二步:通过分析问题,将问题抽象成可用变量表示的两段公式;第三步:设计算法流程图,对于初学者可先将问题用自然语言进行描述,再转化成算法流程图,更易于学生理解;第四步:编写程序,在学生初学程序设计内容时,计算思维的培养重点应强调理解(和能够有效执行)计算的过程,为了让学生更好地理解计算思维的思想,可给出部分代码;第五步:调试程序,在调试过程中学生需要体会选择结构中条件的作用,了解程序执行的有穷性、正确性、有效性,将教材“知识库”中关于算法及其特性的内容在此环节对学生介绍,并让学生上机体会,学生计算思维能力得到发展,更有利于后续的概括迁移;第六步:概括迁移,可利用 “创新园”中的练习2修改出租车计费标准,按照前五步的教学活动模式来重新设计程序,还可将课堂所学知识点迁移到单元活动2中“圆面积计算程序”,增加一个判断输入半径为负数的功能,并给出提示信息。在此过程中,学生进一步理解了选择结构的算法思想,也进一步体会到了在问题求解过程中计算思维的自动化特征。
计算思维培育需要合适的资源、有效的实践活动、教学策略与教学方法的创新和应用。按照六步教学活动构建课堂,学生从具体的问题到抽象的问题然后到算法的设计,再从编写程序到调试程序,最终通过概念迁移回归问题,可以较为自然地构建计算思维。
计算思维首先来自计算机科学,它兼具计算和思维的特质,经过近十几年的研究与发展,已经成为人类所应具备的基本思维,与理论思维、实验思维并称为世界三大科学思维。随着计算机的普及,计算机能解决的问题越来越多,计算机变成了人类思维的执行者,人类思维的内容和方式也发生了变化。
那么,教师在课堂教学中如何去评价和检测学生的计算思维能力呢?我们试从计算思维定义出发,一是从计算和问题求解的角度来评价,它可以脱离编程对学生进行评价。这种评价强调学生成为计算思考者,思考如何在数据中发现规律、如何将问题抽象处理甚至可以建立模型。二是从计算机科学和编程的角度来评价,计算思维是通过约简、嵌入、转化以及仿真的方法来解决问题,是一种递归思维,其中包含了变量、循环、程序编写与调试、算法优化等编程概念和方法。学生用程序来解决问题,就可以用其编程表现去评价他们的计算思维。下面是以“出租车计费程序”一课为例设计出的计算思维评价表,表1是计算和问题求解角度评价表,表2是计算机科学和编程角度评价表。
表1 计算和问题求解角度学习评价表
表2 计算机科学和编写程序角度学习评价表
两个表格中的评价内容随着课堂内容不同而作了不同的设计,但要点是将学习内容分两个角度去呈现,这样学生对自己的学习行为和能力有所了解,教师也可以通过表格看出学生计算思维能力得到了怎样的发展和提升。两个表格也向学生展示了计算思维的构建过程,让学生明白提高计算思维素养比单纯操作计算机更为重要。
培养学生的计算思维,是为了让学生能像计算机学科专家一样形成用计算机求解问题的特有思维习惯及思维方式。虽然计算思维能力的培养非一日之功,但信息技术学科教学尤其是程序设计的内容能更好地培养学生从生活中的问题求解过渡到学会用计算机进行问题求解。本文主要通过具体的课堂教学案例,探索利用信息技术教材发现计算思维本质,探讨如何将计算思维融入程序设计课堂教学中的方法。