APP下载

在Scratch程序教学中培养学生的计算思维

2021-09-10周运福

中小学信息技术教育 2021年8期
关键词:计算思维信息技术教学程序设计

周运福

【摘 要】本文通过用Scratch制作一个简单的投票器软件,让学生历经确定问题、分解问题、转化问题、算法设计及程序编写、测试、评估等过程,在问题的形式化描述、解决方案的表达及方案的执行、评估方面进行了计算思维的培养探索。

【关键词】计算思维;信息技术教学;Scratch;程序设计

在中小学的班级活动中少不了各种选举,如课代表选举、少先队干部选举,有些时候要从多人中随机挑选1人投票选举,用笔、纸的方式记录既费时又不方便统计,我们尝试利用Scratch来制作一个投票器软件,帮助同学们统计选票。

教学目标及重难点

1.教学目标

(1)学生能新建变量,对变量初始化、赋值和运算。

(2)在界定信息问题,分解问题,设计程序解决问题中培养计算思维。

(3)在程序完善、修改中体验软件开发的迭代工程思想。

2.教学重点

新建变量,通过按键完成投票、计票等功能。

3.教学难点

变量的赋值理解。

情境导入,提出問题

一是谈话揭示问题:前几天碰到我们班同学对大队委投票有想法,认为不透明、不真实,想要在屏幕上看到两人的实时票数,该怎么办呢?

二是小组讨论:寻找解决问题可能性办法。

三是引导聚焦技术:我们能不能借助信息技术提高投票、计票的公开性、透明度和效率?用五年级学过的Scratch设计程序帮助投票计票,实时显示?

设计意图:捕捉、发现学生生活中存在的问题,将问题解决与计算思维培养的必备知识整合在一起,在项目式或问题式学习中推进解决。

确定问题,分解问题

通过讨论,我们明确设计一个投票器程序能够通过按键点击进行投票、自动计票,避免投票“黑幕”。

1.项目分解为几个小问题

回忆生活中投票选举我们必须要完成哪些工作。同桌轻声交流讨论。

归纳投票工作流程:投票、计票、票数公布。

2.生活问题转化为信息问题

在活动中投票的过程可能对应计算机中哪些操作?同学们思考一下,在括号内填上自己的想法,如表1所示。

表1  生活中投票问题转化为信息问题

场景 投票过程 计票过程 结果显示

生活中 填写选票或同学们表决等方式 人工统计计算 写在

黑板上

计算机 (                  ) 用“变量”来存储数据,程序指令进行数据处理 (        )

设计意图:引导学生将大问题分解为投票、计票过程与结果显示等几个小问题,同时,将问题转化为可计算的信息问题。

算法设计,程序编写

1.程序界面的设计

(1)背景的选择:从背景库中选择一个舞台的背景。

(2)角色的选择:从角色库中选择“girl1”代表女生张丽,“boy1”代表男生王刚。

2.算法设计

编写程序要实现的功能是:点击人物角色或者按键盘字母对候选人投票,投票次数是无限的,投票票数是累加的。

如果用一句话来表述上面的想法,请你补充完整括号里面内容:

当(          )的时候,某同学票数增加1票。

上述功能的实现,在Scratch中有多种实现方法,我们选择按键实现方法。

在Scratch中,使用“事件”类指令中的“当按下空格键”模块和“数据”类指令中的“变量”来完成投票、计票功能(图1)。

图1  简单投票器模型构建、算法设计

设计意图:在算法设计中,用一句话填空的方式帮助学生理解、确定算法,用表格列项的方式将算法与实现的程序模块一一对应,培养学生面对生活问题时的抽象、自动化解决问题的意识及能力。

3.程序脚本的设计

我们建立ZL和WG两个变量分别代表张丽和王刚的票数。

(1)新建变量。

①选中女生角色。

②单击“脚本”选项卡中的“数据”类别,再单击“新建变量”按钮。自定义一个“ZL”变量。这是一个全局变量,所以,脚本放在任一角色都可以用。

注意:“变量名”要使用“有意义”的英文单词或中文、字母表示。

(2)按键响应。

①在角色区,单击选择需要搭建脚本的角色。例如先选择“女孩”角色。

②单击“脚本”选项卡中的“事件”类别,将“当按下空格键”指令拖入脚本区。并将默认的“空格键”修改为“Z”键。

思考:这里为什么建议使用“Z”键?

(3)变量计数(变量的赋值)。

单击“脚本”选项卡中的“数据”类别,把“将变量ZL的值增加1”指令拖入脚本区。

与“按键响应事件指令”进行拼接。

完成“张丽”角色的投票、计票的脚本。随着按键不断按下,变量“ZL”也在不断发生变化。

4.尝试完成“王刚”角色变量制作

学生上台演示,教师小结。

(1)新建变量。新建“WG”变量存储王刚票数。

(2)按键响应。指定“W”键作为相应的响应按键。

(3)变量计数。将脚本“将ZL增加1”拖入脚本区,放在按键响应语句下。点击“ZL”下拉菜单中选择“WG”。

现在,我们的投票器软件已经初具雏型了,请几个同学上来试一试吧。试投票之前老师先把程序文档保存为“投票器1.0”。

5.小试牛刀,自主编程

(1)自主学习,完成程序编制。不清楚的地方可以观看微课学习。

(2)教师巡视指导。

程序测试,优化迭代

1.优化程序

展示学生作品,对照评价表进行互评、点评,引导学生思考:投票器只能使用一次,要重复使用该怎么办?

两人的投票要清零。选择数据模块中的“将ZL设定为0”和“将WG设定为0”语句。我们把优化后的投票器程序文档保存为“投票器1.1”版本。

2.拓展提升

在使用“投票器”时,有的同学希望能够及时地反映出投票总数,该如何进行改进?

总结与分享

通过学习,我们把一个生活中的问题转化为一个信息问题,并且利用Scratch编程实现,解决了班级活动投票中的基本问题。如果要实现自动统计票数,并显示得票多的人,我们又该如何对程序进行升级呢?大家课后思考。

设计意图:程序教学中要弱化“操作性”和“知识性”的内容,注重迭代思想的渗透,要将类似迭代的这种学科核心思想和方法的培养贯穿问题解决的始终。

板书:制作一个简单投票器(图2),附参考程序(图3)。

案例反思

1.计算思维教什么

(1)计算思维解决问题的思维方法。

要渗透基于计算机解决问题的学科思维方法的学习,重视个体在运用计算机科学领域的思想方法形成问题解决方案的过程中产生的一系列思维活动。面对真实情境,要掌握计算思维解决问题的步骤方法,这种方法不是仅仅关注局部算法、程序设计,而是面向问题的计算思维解决问题的整个思维流程。

在本案例中,让学生经历确定制作简单投票器问题,把问题分解为投票、计票、公布票数几个小问题,同时将问题转化为计算机能够执行的计算问题、用“当按键按下时,票数增加”的填空方法帮助学生进行算法设计。最后在老师讲解变量的知识后完成程序的编写、测试、评估等过程。在把生活问题转化为信息问题并用编程解决的过程中培养了学生的计算思维,渗透了计算思维解决问题的思维方法。

(2)计算思维的核心要素。

计算思维的核心要素有分解、抽象、算法等概念,在教学中帮助学生学会分解问题、体验抽象、掌握基本算法结构。借助思维导图,将问题最终分解为投票、计票、显示票数,逐个解决。在问题抽象方面,告诉学生抓住问题主要特征,通过提取关键信息的方法,培养抽象能力。比如,本案例中投票事件,关键流程就是投票、计票、展示票数,其他用什么方式投票,如何计票等可以不管。在算法设计方面,通过一句话“当 (   )的时候,某同学票数增加1”帮助学生分析算法、理解程序结构。

在编程算法实现方面,选择按键实现方式,同时也可让学生尝试点击角色实现方式,让学生体会不同模块可以实现相同的算法。但是,重视这些元素不意味着计算思维的培养就只是对这些元素的理解掌握,而是一定要有计算思维解决问题的流程意识,各元素的掌握学习是为了更好地落实用计算思维去解决问题的能力。单独掌握这些核心元素而不谈如何解决具体情境问题,就偏离了计算思维的培养。

2.计算思维怎么教

(1)要盡量运用真实的问题情境。

教师要善于捕捉、发现学生生活中存在的问题,在问题解决中让学生获得成就感,真正感受到技术改变学习、服务生活。例如案例中的投票程序,学生就在班会中进行了投票尝试,获得了班主任的赞赏。激发了学生兴趣,更加积极寻找可计算的现实问题,通过编程完成。要注意把真实情境中的大问题引导分解成每节课能完成的小问题,逐个解决。本节课是设计可投票的程序,下节课是在此基础上设计自动显示得票获胜的人,再后面是自动点名上台投票的程序,在一次次优化迭代中完成问题解决。

(2)在“双主线”教学中培养学生计算思维能力。

信息技术学科有自己的内在逻辑知识体系,要完成基础知识和基本技能的学习,这是一条“显性主线”。计算思维的培养需要借助信息技术学科知识的载体来实施。我们更要关注应用学科知识解决问题时的计算思维能力的培养,即分解、抽象、程序设计,这是教学中计算思维培养的“隐性主线”。

我们不能习惯于“操作”和“技能性”内容教学,更不能只对计算思维要素概念进行教学,强调概念知识的理解和记忆,而是要在教授解决问题所需的学科知识时,渗透、培养基于计算思维解决问题的思维方法,让孩子们形成一种思维习惯,当自己再遇到一个真实问题时,能够运用已有资源和素养独立解决。所以,双主线教学中应该是“隐性”主线为主导,围绕其组织教学内容进行“显现”的学习,最终在知识技能的习得中提升计算思维能力。

(3)计算思维教学小学阶段重点关注问题的确定和分解。

计算思维教育关注的是利用信息技术解决问题的能力。这种能力既表现为“结构分解、实体抽象、模型建设、自动化实施”等信息技术应用特征,也包括“明确问题、设计方案、实施反馈、修订完善”等一般性解决问题方法。而发现问题、确定问题是现阶段学生们较弱的方面,我们习惯将现有问题抛给学生,让学生在指定的问题中进行练习,而学生一旦面临真实世界时,发现不了问题,或者找不到问题的主要矛盾,也就谈不上解决问题了。

在计算思维的培养中,引导学生发现问题,确定信息问题,学会分解问题是需要我们重点关注的。如生活中的投票行为有很多环节,投票、计票、检票等,哪些行为是投票工作所必须的?哪些是可要可不要的?把这些必要行为沉淀下来,思考能否被“计算”?如果可以,那么再进行问题分解、模型构建等系列流程。

注:本文系国家出版融合重点实验室、人民教育出版社人教数字教育研究院规划课题“计算思维在小学创客类课程-Scratch教学中培养的实验研究”(课题批准号RJB0520001)成果

猜你喜欢

计算思维信息技术教学程序设计
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧
高职高专院校C语言程序设计教学改革探索
高职院校信息技术课程教学内容革新的探索与研究
程序设计课程中计算思维和应用能力培养问题研究
运用“分层教学”优化信息技术课堂教学设计
民族高校C语言程序设计课程教学改革的研究
略谈中小学信息技术教学中微视频的应用
算法的案例教学探析
浅谈艺术专业学生计算思维能力的培养