从四个核心元素探索小学scratch教学中计算思维的培养

(整期优先)网络出版时间:2023-01-09
/ 3

从四个核心元素探索小学scratch教学中计算思维的培养

林敏宜

惠州市马庄小学516007

摘要:计算思维是信息技术学科核心素养之一,是当前国际计算机界和教育界较为关注的一个重要的概念,但如何在小学scratch编程教学中培养学生的计算思维,是广大一线教师一直在探索的问题。[1]Looi Chee Kit教授认为,计算思维核心的元素是四部分:分解、模式识别、抽象、算法。本文将结合个人教学实践,结合实例从分解、模式识别、抽象和算法四个核心元素着手,探索如何在小学scratch编程教学中培养学生的计算思维。

关键词:计算思维,分解,模式识别,抽象,算法

计算思维是信息技术学科核心素养之一,是当前国际计算机界和教育界较为关注的一个重要的概念。当前最新最热门的高科技大部分都是借助于计算思维发展起来的,比如:人工神经网络、语音识别、机器人技术……所以,计算思维是孩子适应21世纪人工智能时代的必备技能。因此,从小学阶段就开始进行计算思维的渗透学习是非常必要的。随着人工智能时代的到来,scratch编程教学在小学信息技术课堂中逐渐延伸,学生高涨的学习热情、惊人的学习能力,都给教学带来了无限的精彩。那么,什么是计算思维?如何在scratch编程教学中培养学生的计算思维?

计算思维是运用计算机科学领域的思想方法形成问题解决方案的过程中产生的一系列思维活动。[1]Looi Chee Kit教授认为,计算思维核心的元素是四部分:分解、模式识别、抽象、算法。具备了这四个能力,人们就能为问题找到解决的方案,以程序的表现形式,则可以在计算机上执行,以流程或者规章制度的表现形式,则可以由人遵照执行。也就是说,培养学生计算思维可以从这四个核心元素着手,具备了这四个能力,就拥有了计算思维。本文将从个人教学实践出发,结合实例从四个方面探索如何在小学scratch编程教学中培养学生的计算思维。

一、思维导图助分解,培养学生计算思维

所谓分解,是指让学生把复杂的问题分解成更小、更简单的问题。在scratch教学中,如果我们把设计一个scratch程序看成一个“复杂问题”,那么在进行设计之前,我们需要对程序的需求进行分析,把“复杂问题”分解成“简单问题”。在这个环节中,当教师请学生分析程序设计的需求时,学生总是没有一个清晰、条理的思路。即使学生你一句我一言,一起找出所有需求,到了下次分析另一个程序需求时,也仍然没有一个学生能思路清晰地分析出来。这说明,单一的谈话引导没有办法帮学生掌握分解问题的思路。笔者试图找到一种工具,帮助学生分解问题:首先想到的是专业的程序需求分析工具——实体关系图(即E-R图),但对学生来说太复杂,难以理解,因此,实体关系图不适用于小学生编程教学。而在偶然的一次思维导图培训中,笔者发现,思维导图能直观、有层次地显示出程序需求的分析思路、内在联系。笔者尝试将思维导图引入到课堂,通过一学期的教学实践,收获的成效不小:学生有了思维导图的辅助,分析需求时思维可视化,学习效率大大提高,分解问题的思维能力大大提升。比如:在《猫捉老鼠》一课中,学生在试玩“猫捉老鼠”这个游戏后,教师引导学生分析程序需求,并绘制一个需求分析思维导图(图1)。绘制思维导图的过程就是对思维能力的运用过程,就是需求分析的过程。如图1所示,三支主干——“角色”、“舞台”、“脚本”清晰明了地显示分解的主思路,顺着主干,问题被逐级分解,最后,每个末端分支都是较小、较简单的问题,“猫捉老鼠”程序设计这个“复杂问题”被成功分解,取而代之的是“角色猫1只”“猫跟随鼠标移动”等多个简单问题。思维导图让分解问题的思路可视化,大大提高学生的理解能力和逻辑思考能力。在思维导图的辅助下,学生培养了分解问题的思维,从而促进了计算思维的培养。

I:\论文\1.jpg 

图1 “猫捉老鼠”需求分析思维导图

二、举一反三促识别,培养学生计算思维

模式识别是指引导学生在相似的问题和经验之间建立联系。也就是说,要求学生分析相似的对象或经验,能从以往的经验中得到规律并且举一反三将它运用到其他的问题中。任何事物都有相似性,模式识别正是教会我们寻找到事物之间的共同特点,利用这些规律,去解决问题。当我们把复杂的问题分解成小问题时,我们经常会在小问题中找到模式,并举一反三解决问题。在设计《猫捉老鼠》教学环节时,我设计了一个拓展任务:用scratch制作“打地鼠”游戏。大多数学生都玩过这个游戏,三两下就绘制出游戏的需求分析思维导图(图2),这时候,教师要引导学生和学过的内容建立联系,学生在对比下就会发现“打地鼠”游戏和“猫捉老鼠”游戏有相似的“小问题”(图2和图1对比),比如“跟随鼠标移动”“随机出现”等。学生已经学习了如何实现“跟随鼠标移动”“随机出现”的脚本,在“打地鼠”中再次遇到相似问题时,通过模式识别,学生知道两个游戏中的“跟随鼠标移动”是一样的,都可以用

或                实现;而两个游戏中的“随机出现”却是不尽相同——“猫捉老鼠”中“老鼠”出现的坐标(位置)和时间都是随机的,而“打地鼠”中的“地鼠”都在各自的“洞”,坐标是固定的,只有出现的时间是随机的(图3)。在这个过程中,“小问题”的相似点则是模式,在已有的经验中寻找相似“小问题”的解决方法,这个过程就是模式识别。学生在对问题进行模式识别的思考过程,就是对所学知识进行举一反三的一系列思维活动的组成。在scratch教学中,教师要精心设计知识拓展和课后作业,引导学生将所学知识举一反三地运用到新问题中,培养学生模式识别的习惯,提高解决问题的速度和精准度,从而培养学生的计算思维。学生模式识别的能力提高了,不但学习效率大大提高了,思维灵敏度也提高了,他们在解决问题时能更快找到解决方案。

I:\论文\微信图片_20200927182914.png 

图2 “打地鼠”需求分析思维导图

图3  左:“猫捉老鼠”的部分脚本;右:“打地鼠”的部分脚本

三、问题引导化抽象,培养学生计算思维

抽象要求学生提取重要的信息,而忽略不相关的细节。抽象的目的是把复杂的现实化简为可计算的模型。生活中的问题是具体的,具体问题需要抽象化,才能化简为可计算模型,才能用计算机解决问题。小学生思维正处于形象思维为主,并逐步向逻辑思维过渡的重要阶段。因此,小学阶段培养抽象思维非常符合学生的认知规律和思维发育规律。当学生遇到一个具体问题不知从何下手时,教师要引导他们在具体问题中提取重要、关键的信息,去掉不相关的细节,从而将问题化为可计算的抽象模型。在《漂亮的风车》一课中,孩子们被漂亮的风车吸引,可是如何用scratch画出这美丽的风车呢?教师引导学生对图4中的风车进行分析:“风车有几片风叶?每片风叶相似吗?相邻两片风叶形成几度角?”通过启发式提问,引导学生对“风车”观察,学生不难发现:4片风叶具有相似性,并且相邻的风叶成90度角。这时候,教师继续引导学生提取重要信息:把1片风叶“提取”出来绘制(抽象)为图5中的样子,设定中心点a,把其它3片风叶看成图5的复制品。那么一个可计算的模型就出现了——利用图5的风叶围绕中心点a旋转90°拼成图4的样子。通过编程实现(如图6),最终达到图7的效果。如果不满意图7的效果,可以通过不断优化图5来无限接近图4。在这个过程中,教师巧妙设置问题,引导学生对具体事物进行观察、分析、提取、化为抽象,步步为营,最终生成可计算模型,这样的思考活动提高了学生的观察能力、问题分析能力,激发了学生的抽象思维,从而培养学生的计算思维。

四、“言、图、比”学算法,培养学生计算思维

最后一个核心元素要求:当学生设计简单步骤解决问题时,使用算法。算法是解题方案准确而完整的描述,是一系列解决问题的清晰指令。可以说,算法是编程的灵魂所在。因此,在scratch编程学习中,教师要有意识地培养学生的算法设计能力。笔者认为可以从“言、图、比”三方面来培养:

1.言——用规范的程序设计语言表达算法设计思路。在课堂中,教师要鼓励学生完整表达算法的设计思路,在设计角色和舞台时学会将场景的口头语言转化为规范的程序设计语言。比如,在《小瓢虫找妈妈》一课中,学生在描述小瓢虫“贴线走”的过程:当小瓢虫脱离轨迹就往轨迹靠近,没有脱离轨迹就行走一些距离。这样的描述还不是规范的程序设计语言,教师应进一步引导:“‘脱离轨迹’换一种表述可以吗?转化成:如果没有碰到轨迹就……。”循循善诱,直到学生完整表达出来:“如果碰到轨迹就旋转一定角度行走一些距离,否则,往反方向向轨迹线靠近。”这样的表达使得算法思路清晰明了地呈现出来,而且更接近程序指令。长此以往,学生的信息素养也会得到提高。培养学生用程序设计语言表达算法设计思路,这是培养算法设计能力的第一步。

2.图——用流程图辅助学生理解算法。为了让学生更直观地理解和表达,教师可以使用流程图上阵助教。在讲授《小瓢虫找妈妈》整个程序流程时,可以请学生补充填写流程图红色虚线框部分(图8),再引导学生理解流程图,流程图完成了,搭建脚本也就不难了(图9)。借助流程图呈现算法设计,让学生学会阅读流程图,透过流程图理解算法,从而初步培养学生的算法思维,提升学生的计算思维水平。

图8                                                               图9

3. 比——在需求分析的对比中优化算法

我们都知道同一个任务有不同的需求分析,也就会有不同的算法去实现。比如上文提及的“打地鼠”游戏,除了图2,还有部分学生做出这样的需求分析思维导图(图10)。对比图2和图10,学生很快就发现区别在于碰触侦测任务交给哪个角色。这时,教师带着学生共同探讨:如果交给“锤子”,那么从“锤子”的流程图(图11)可以看出,碰触侦测任务的流程十分繁琐,这是因为 “地鼠”角色有9个,“锤子”需要逐一侦测,这样的算法复杂而且容易出错;而如果把碰触侦测任务交给“地鼠”们, 那么从“地鼠”流程图(图12)可以发现,这个算法更简单易懂,只需要几条指令就可以实现,而且每个“地鼠”角色可以复制同样的脚本,便于修改维护。

F:\论文\论文\10.png 

F:\论文\论文\未命名文件(1).jpg图10

F:\论文\论文\未命名文件.png

图11 “锤子”角色的部分流程图     图12 “地鼠”角色的部分流程图

学生在使用算法解决问题的过程中,不仅提高了编程能力和信息素养,同时还培养了计算思维能力。

五、结语

通过一学年的scratch教学实践,结合学生完成的scratch作品,笔者发现,学生的计算思维能力有了显著的提高。综上所述,教师在小学scratch编程教学中,要根据教学内容精心设计课堂,以培养分解、模式识别、抽象、算法这四个能力为目标,采取恰当的策略——思维导图助分解、举一反三促识别、引导提取化抽象、“言、图、比”学算法,调动学生动脑思考、动手实践,从而提高学生解决问题的能力,培养学生的计算思维。

参考文献:

[1]周永来《基于计算思维的信息技术课堂教学》,吉林教育,2018年第11期 教学探索

[2]谢忠新,曹杨璐《中小学信息技术学科学生计算思维培养的策略与方法》,中国电化教育, 2015年第11期116-120

[3] 段勇《基于计算思维培养的Scratch创意编程教学模式初探——以《队列练习:认识广播命令教学为例》,现代教育,2019年06期,2015年05期