白英会
“计算思维”是小学信息技术四大核心素养之一,它对学生思维方式和思维习惯的培养起着重要作用。如何在高中信息技术课堂教学中培养学生的计算思维已经成为当前一线信息技术教师广泛关注并感到困惑的内容。本文以高中“算法与程序设计”中的Python编程教学为例,探索游戏化编程对计算思维能力培养的影响。
《用词云将程序可视化》选自中国地图出版社必修1《数据与计算》中的“算法与程序实现”的综合应用部分。在教学这部分内容时,将“词频统计”程序作为本节课教学案例,介绍利用程序解决问题的一般过程。具体流程是通过开发“词频统计工具”的项目,介绍如何抽象分析问题、设计问题的解决方案和算法步骤、编写程序、调试运行,最终实现从现实世界到程序世界的穿越。
一是必修模块“数据与计算”的教学内容以算法和程序设计为主,学生普遍反映比较枯燥,相当一部分学生对编程抱有抵触情绪。二是對于教师精心设计的探究任务学生并不买账,反而更乐于接受教师的直接讲授,倾向于模仿教师提供的案例,缺乏创新精神,导致所掌握的知识得不到拓展与提升。三是与编程相比,学生更喜欢使用时下流行的软件,学习比较容易上手的操作技能,但对开展自主学习、探究技术背后的原理积极性不高。基于以上问题,教师可以尝试基于计算思维的本质,从研究计算思维的特征出发,探究课堂教学设计的方向,以实现培养学生计算思维能力的目的。
计算思维有很多特征,在培养学生计算思维能力的前提下,主要分为四个方面:第一,任务分解。在明确任务要求的基础上,依据算法的主要组成部分,本着“自上而下,逐步求精”的思想,将一个不可能完成的大任务分解成几个比较容易完成的子任务。第二,模式识别。对分解后的任务,分析各部分之间的异同,表征事物的特征,利用已掌握的知识、经验去识别事物。第三,抽象化。利用模型来探究模式背后的一般规律,对于信息技术教学而言,就是将具体问题利用数学模型来表示,为下一步工作做好准备。第四,算法设计。基于一系列的分析,设计出解决问题的具体方法与步骤。
情景导入。首先通过展示利用文本分析工具制作的信息图片及词频统计工具的相关介绍,激发学生开发数字化工具的欲望,并顺势提出本节课的任务,即使用Python语言开发一款词频统计软件,并将统计中出现次数最多的前30个词输出。再通过程序演示《三国演义》中出现次数最多的前30个词的统计让学生了解程序的运行结果。由于课前就让学生准备了自己感兴趣的小说、影评等文本素材,所以面对这样的任务,学生热情高涨又无从下手,他们难以想象如何将一个现实世界的问题利用程序来解决,这也正是计算思维培养的关键。为了帮助学生搭建现实世界和程序世界之间的桥梁,引导学生体验从分析现实问题到用计算机解决问题的过程与方法,我通过设置以下三个梯度的任务引领学生完成该项目的开发。
自主学习。任务一:人工进行词语统计,并描述出具体的统计过程。我给学生提供了一段关于绕口令的文字材料,让学生人工统计其中每个词出现的次数,并且描述统计的过程。这一部分的设计意图是通过体验活动,模拟词频统计的过程,将平时熟知的问题求解过程进行显性化描述,把现实问题与计算机解决进行对比,聚焦关键性问题,从而归纳出生活中解决问题的一般过程。
探究新知。任务二:结合任务一,画出词频统计的算法流程图。算法设计环节是本节课的重点同时也是难点,结合算法的三个主要组成部分,首先引导学生将项目分解成三大部分,然后再将每一部分细化,并最后确定该项目的关键步骤就是如何实现词频统计。紧接着由一系列的问题链,再结合体验活动的归纳总结,让学生绘制出关于词频统计的流程图。该环节中通过分析、设计算法,让学生亲身经历从对现实问题的分解到用计算机解决问题的全过程,从而突破难点,达成教学目标。
操作实践。任务三:根据流程图,按照要求完成程序代码的输入。在编程环节,我将实现词频统计的核心代码打乱顺序后提供给学生,要求学生结合流程图将代码重新排序后,再在编程环境中实现。为确保学生能读懂程序,我还提供了相关的技术支持。该环节通过结合流程图把程序代码重新排序,既解决了学生编程基础薄弱的问题,又让学生初步理解了算法与程序之间的关系,真正实现了从现实世界到程序世界的穿越,促进了教学目标的达成。
计算思维被确定信息技术学科的核心素养,对信息技术教师而言可以说是挑战与机遇并存。面对不断更新的信息技术学科,如何在学科教学中培养学生的计算思维,是每一位信息技术教师值得探讨和努力的方向。相信我们的努力一定会为信息技术课堂教学注入新的生机和活力。
(作者单位:北京市通州区运河中学)