指向计算思维培养的思维可视化教学模式探索与实践
邓彰超
《普通高中信息技术课程标准(2017年版)》指出:计算思维是信息技术核心素养的重要组成部分,而信息技术选考是培养学生计算思维的主阵地,故本研究以选考算法课程的学习为载体,以思维可视化为手段,提出思维可视化教学模式,并将该模式运用到选考算法建模学习中,培养学生运用信息技术学科方法来分析解决问题,提高他们的思维能力和学习创新能力。实践证明,思维可视化教学模式能有效协助教师将教学重点从知识讲授转移到思维培养上来,帮助学生明晰“如何学习”和“如何思维”,通过知识的理解和运用,获得有意义的学习,进而提高学生的计算思维能力。
● 现状与问题
近年来,随着新课改的深化推进,尤其是浙江省作为新高考改革试点率先将信息技术纳入到选考科目,信息技术学科教學取得了长足的发展和进步,但也出现了一些问题。
1.教师教学方面
当前选考教学内容分散繁杂,缺乏统一有效的教学模式。教师教学中一般以讲评试题为主,未能创设真实复杂的实际问题情境引导学生学习,且算法解释较浅表化(用抽象解释抽象,难以有效利用学生前在经验);未能帮助学生亲历算法抽象过程(经历认知冲突、整合、生长)并建立知识网络;未能帮助学生有效辨识问题条件和变式情境;未能促进学生算法知识在问题解决中的有效迁移。
2.学生学习方面
从学生在选考课堂教学及考试分析中的表现来看,学生缺乏对算法知识的真正理解,对算法模型的应用条件认识不清,对所呈现的情境未能有效辨识其本质性问题(母题与子题)。知识呈现零散碎片化的状态,缺乏知识脉络之间的联系,导致很难提取运用。且学生对问题的本质的理解以及对算法的理解都不够深刻,内化不足。
● 思维可视化学习法则及其教学模式建构
思维可视化是指把学习过程中原本不可见的思维结构、方法、规律运用一系列的图示、动画等方法予以呈现出来,以期达到易于接受、增强记忆、加深理解的目的,其本质是隐形思维显性化的过程。思维品质是高中信息技术学科核心素养的关键。新课标建议教师以实际问题出发,建模得到算法的本源,并将它进行自动化应用。针对当前信息技术选考算法教学现状与问题,本研究提出思维可视化教学模式(如下页图1)。该模式以发展学生的思维能力为教学着力点,以思维的可视化为手段,将系统性模式化的思维训练与学科教学实践有效融为一体。
其教学模式步骤为:一是让学生针对实际问题通过图示或图示组合等方式进行意义建构形成算法结构雏型;二是将结构雏型依计算机能处理的方式进行子问题分解,并通过思维可视化途径深入理解各子问题,而后对各子问题各个击破解决;三是串珠成链系统构建算法模型并迁移运用,内化该算法模型,进而提升计算思维能力。
● 具体应用举例
综合学科教学指导意见、高考卷以及各地市模拟卷,统计归类常见的选考算法专题,如排序算法,又细分为冒泡排序、选择排序、快速排序、插入排序、桶排序、希尔排序等子专题。针对各子专题,本研究根据学生的知识碎片现状对整个单元进行设计,结合认知规律,首先从生活中常见的实例出发,通过图示等思维可见方式进行意义建构,从而形成算法的结构模型,大致了解算法原理,然后将结构模型分解,经由思维可视化深入理解、各个击破子问题,达到深层次理解掌握算法原理的目的,最后系统构建的算法模型,针对学生语法掌握不透彻的现象引导其进行上机编程调试,以算法巩固语法,促进语法的掌握运用,同时对算法模型进行变式内化运用,让学习在课堂真正发生,让思维提升过程在课堂真正发生。
1.具体问题的意义建构
意义建构所建构的意义是指事物的性质、规律以及事物之间的内在联系。插入排序的实际问题模型即每次从桌子上拿走一张牌并将它插入到左手中正确的位置(如图2),重复多次该过程,即完成整个理牌过程,也即完成全部数据的插入排序。
在Photoshop中,我们也常对图像进行自由变换操作,图像变换背后蕴含的实际问题模型即将每个像素点的数据进行相应的变换,图3所示是以水平变换为例,得到算法雏形。
2.分解结构模型,构建子问题并解决
回到插入排序课例,因直接研究全部的数据插入较为困难,且不易理清思路,结合第1步的意义建构,我们不妨先研究如何插入一个数据,在明确了如何插入一个数据到正确位置的方法思路之后,再研究插入其他数据,如法炮制即可。子问题分解时,必须明确一个重要前提,即左手中的牌已经是排好序的(如插入数据和已有数据重复,约定新数据在右边顺接插入)。联想上述摸牌理牌过程,当新拿到一张牌时,首先眼脑并用已自动找到新牌的待插入位置,然后将该位置上的原有牌移开,腾出位置,最后将新拿到的牌插入到刚腾出的位置。因此插入排序算法结构模型可大致分解归结为三个子问题:①查找位置;②移位腾出;③数据插入。最后将该思维过程抽象出可视化模型,如图4所示。
思维可视化手段是对问题进行深入理解的利器,如For循环语句可采用变量列表跟踪分析法辅助理解,又如多重循环,学生普遍反映抽象难懂,课堂以百钱百鸡问题为例,采取抽象思维形象化的方法,用连线的形式将抽象问题形象地呈现出来,让学生理解多重循环的原理本质(如图5)。
再回到插入排序,下面采用思维可视化手段将各子问题进行深入理解,各个击破。
子问题①,在数组中查找合适的插入位置(WZ)时,明确既可以从前往后查找,也可从后往前查找,继而引导学生根据图示,写出两种方向查找位置的For循环程序代码,接着以算法练习语法,引导学生将各自的For循环结构改写成Do循环结构(如图6)。
在教学过程中,学生的疑难在于最后查找的WZ到底是i、i+1还是i-1,此时应引导学生将待插入数据结合图4的可视化模型及图6的程序执行,即可得出,正确结论。个别学生提出如数据量大且重复数据较多,用这种查找方案复杂度太大,此时可引导学生思考采用二分查找法定位,或采用二分微增量近似查找法定位,这样进行师生互动研究,能够达到教学相长。
子问题②,数据移位。结合查找位置的方法,自然想到数据移位也大致有两个方向,即可以从定位WZ到数组末位置n,也可以从数组末位置n到定位WZ,对数据进行逐个移位。因为该子问题的解决涉及数据的移动及赋值,具有抽象性和动态性,这也是算法的教学难点,所以此处为了展现对象的瞬间动态性和算法的作用过程,也为了让学生深入理解赋值语句,辨析子问题解决的思路正确与否,采用编程运行对该问题进行动态模拟跟踪,并將运行结果呈现给学生,做到将抽象的数据结构和算法执行过程或结果可视化,经由算法执行过程及结果分析,自然生成了数据移位方向只能从末位置到定位,而不能是从定位到末位置,其原因及详细过程如图7所示。
子问题③,数据插入。虽然子问题②解决了数据的移位腾出,但定位WZ上的数据仍然是原数据16,变量只有在新数据给它赋值后,其值才会改变,注意到这点后,我们将新数据赋值插入即可(如下页图8)。
3.串珠成链,系统整合构建算法模型
通过子问题的构建及解决,我们可以把各子问题模块串接起来(为简单起见,数据范围取11个),形成完整的插入排序算法模型,同时编写程序并运行调试,结果如图9所示。
经由上述三个步骤,结合两届高三同学的反馈及考查结果,思维可视化应用于算法建模思路非常清晰易懂,学生基本都掌握了插入排序算法。
4.变式运用,内化选考算法模型
作为变式,我们可以将上述三个步骤结合起来,采用边寻址边移位,系统构建插入多个数据的插入排序算法变式模型。仍然采用思维可视化手段,基于对上述三个子问题的深入理解,对算法变式进行系统建模。因算法的抽象性和动态性,学生不易理解其执行过程,导致出错,而采用图示虽然可以在一定程度上化抽象为直观,但又难以展现数据对象的瞬时动态性和算法的执行作用过程,因此我们将该算法模型的程序数据、操作和语义提取出来进行动态演示,利用动画等多媒体工具来演示算法原理,通过算法思维的可视化呈现,使得算法的执行过程更为直观,理解也更容易,进而得出正确结论。
同理,针对其他算法,也可采用垂直翻转、选定区域的水平/垂直翻转,逆时针/顺时针旋转90度等来进行变式内化算法模型,让学生深入理解常见操作背后蕴含的算法原理。
通过思维可视化建立算法变式模型后,针对算法变式模型进行上机编写和调试程序,以此来检验算法模型的“适用性”并内化算法模型。算法调试期间会遇到一些错误,如思考路径逻辑错误、假设的条件错误等,甚至有些错误需要返回修改算法模型才能解决,但正是有了这些错误,才使得学生在解决错误的过程中,发展了思维能力、分析及解决问题的能力,这也是计算思维核心素养的精髓所在。
● 结论与讨论
本研究借助思维可视化思路和工具开展教学研究,总结和提出算法雏形意义建构、问题分解明晰、系统整合模型、变式迁移应用的思维可视化教学模式。至此,已有两届高三学生在选考算法教学中采用了思维可视化教学模式,师生以程序设计专题为载体,以思维可视化为手段,构建算法模型解决问题,大部分学生对选考算法大题填空不再望而生畏直接放弃,其中大部分填空能正确完成,分析问题、解决问题的能力得到提高,计算思维核心素养也得到了较大提升。但是,信息技术选考算法内容本身的特点决定了,思维可视化思路只能在教学中的某些环节中使用,难以按部就班完全采用该教学方法模型。另外,本研究中思维可视化方法工具运用较多的是图示及动画,而其他工具(如思维导图等)的有效运用,也有待继续研究。