复杂问题解决:算法学习的价值追求
——以《花朵缤纷》一课为例

2023-10-08 03:29黄荣江苏省南京市立贤小学
中国信息技术教育 2023年19期
关键词:控件一朵花花瓣

黄荣 江苏省南京市立贤小学

●背景

算法是小学信息科技学习的重要内容,是在问题解决过程中涉及的一系列综合性的思维活动。它是一个抽象的概念,如果在教学中泛泛而谈,则很难培养学生的算法思维能力,而复杂问题解决的能力对学生的算法学习是非常重要的。因此在教学中,笔者尝试将复杂的算法问题分解为多个子问题,使学生掌握复杂问题的分解策略。下面,以《花朵缤纷》一课为例进行说明。

●教学实践

《花朵缤纷》一课属于“算法与程序设计”模块,涉及的问题主要有两个:一是如何在图形化编程软件中把一片花瓣变成一朵花;二是如何把一朵花变成花朵缤纷的特效。

1.引入:复杂问题解决的来源

①欣赏“一片花瓣变成一朵花”现象。

师:视频中的一片花瓣变成了什么?让我们从编程的角度研究“一片花瓣变成一朵花”问题。

②欣赏“花朵特效”现象并揭示课题。

学生继续欣赏视频。

师:视频中的花朵又出现了什么特效?今天这节课,我们重点研究花朵缤纷。

生:花朵缤纷效果是由“一片花瓣变成一朵花”现象和“花朵特效”现象组成。

2.展开:复杂问题解决的主场

片段一:一片花瓣变成一朵花

师:各位同学动手操作,尝试将一片花瓣旋转变成一朵花(以五片花瓣为例),如图1所示。

图1

教师出示研究要求:①转一转:一片花瓣如何旋转变成一朵花?②说一说:小组内交流一下一片花瓣变成一朵花的过程。

学生小组活动。

师:哪位同学愿意将你们小组的研究成果向全班同学展示并交流?

生1:我要把这片花瓣依次进行旋转。

一位学生提出问题:旋转过后还是只有一片花瓣,但是花朵有五片花瓣?

生2:花瓣每次旋转过后,还要对这片花瓣进行复制,然后再依次进行旋转复制五次,这样就有五片花瓣了。

师:根据大家的回答,我们来梳理一下一片花瓣变成一朵花的具体操作步骤。第一步是要有一片花瓣,第二步是什么呢?

生:第二步是旋转,并且要确定旋转角度。

师:旋转的时候要注意什么?(出示课件)为什么有的花瓣会出现杂乱无章的情况?

生:在旋转之前,要设置好花瓣的旋转中心点。

师:因为旋转前就要设置好中心点,所以第二步是确定中心点,第三步是旋转,第四步是什么呢?

生:旋转后就要对花瓣进行复制。

师:这样就结束了吗?

生:没有,还要重复执行旋转复制这个过程,印好其余花瓣。

结合学生的回答,教师呈现一片花瓣变成一朵花的具体过程,如图2所示。

图2

学生根据算法过程在图形化编程工具里编写脚本进行验证,并展示成果。

片段二:花朵特效

师:一朵花完成了,接下来完成花朵特效。我们来研究一下花朵有哪些变化,如图3所示。

图3

随着学生的讨论、交流,教师提炼,进行板书:①位置不定;②出现多个花朵;③颜色各异;④大小不同。

师:根据同学们的回答,可以把花朵特效抽象成四个子问题,这样就降低了难度。首先来看位置不定的效果是怎么实现的。如何改变花朵出现的位置呢?

生:需要用到运动模块里的坐标控件,通过改变坐标里的数值去改变位置。

师:每次改变位置都要改变坐标,很麻烦,怎么办呢?能不能让计算机随机设定数值呢?它在运算模块里,你们能找到吗?找到了以后研究一下随机数的范围怎么设置呢?

生:可以把随机数的范围设置成舞台的X坐标范围和Y坐标范围。分别是-240~240,-180~180两组数值。

师:继续运行一下脚本,就会在舞台的随机位置出现一朵花。那如果要连续不断地出现在舞台不同位置(也就是出现多个朵花),怎么办呢?

学生尝试操作,试着用重复控件完成位置不定和出现多个花朵的效果。

师:花朵开满画面后,可以使用特效类控件实现花朵的颜色特效和大小变化,这两个特效类控件在哪里呢?

学生快速找到颜色特效和大小特效控件,尝试搭建脚本并运行。

3.练习:复杂问题解决的延伸

制作“雪花漫天飞”效果。

教师要求学生观察图4中的效果,思考以下问题:①一片雪花是由什么角色旋转而成的?②需要利用循环控件重复旋转复制几次?③仔细观察,雪花有哪些变化?④“雪花漫天飞”与“花朵缤纷”效果有什么联系?

图4

●教学思考

1.动手操作,情境中感知算法

活动是学生认知的基础,智慧从动作开始。学生通过看一看、动手操作、说一说、上机编程等丰富的实践探索活动,经历了动手、动口、动脑的过程,充分调动了各种感官参与学习,对一片花瓣变成一朵花的过程由感性认识上升到了理性认识。学生能深刻地理解一片花瓣变成一朵花的算法过程,并用图形化工具进行脚本编写。

在上面的教学片段中,学生不是简单的“操作工”,而是“研究者”,目标指引操作,问题驱动操作。因此,学生学习算法过程的热情是高涨的。

2.分解问题,过程中感悟算法

《义务教育信息科技课程标准(2022年版)》指出,在进行编程学习时,需要将算法学习贯穿于问题求解的过程中,而问题可以分为简单问题和复杂问题,简单问题不需要分解,复杂问题可以分解为若干子问题,然后根据功能求解出解决子问题的具体操作步骤,形成求解方案。

在本节课中,学生首先要明确具体的任务,即如何在图形化编程工具中实现花朵缤纷的效果。其次,抽象问题的关键特征,明确问题求解的输入和输出。再次,分解问题,将复杂的花朵缤纷问题分解为两个简单的问题,即一片花瓣变成一朵花和花朵的特效两个子问题,再由子问题分析出具体操作步骤,形成科学的算法。这样先整体后部分、先抽象后具体的方法,有利于培养学生解决复杂问题的能力。

分解问题的环节,是学生自主探究的主要环节,在片段一中,有学生的肯定,有学生的补充,也有学生的质疑。学生不但探索到一片花瓣变成一朵花的过程,同时也抽象出了其中的具体步骤。在片段二中,师生一问一答,教师的有效提问带领全班学生经历了重难点的突破,使学生对花朵特效脚本的编写从模糊到清晰,进一步地感悟了算法。从实践效果来看,无论是片段一还是片段二,学生均能在教师的引导下抽象出问题的基本特征,并将问题分解为具体操作步骤,这一过程有效地激发了学生的探究欲望,发展了学生的计算思维。

3.知识迁移,拓展中明晰算法

学习迁移是指一种学习对另一种学习的影响,也是将学得的经验有变化地运用于另一情境的能力。在练习环节,笔者设置了题目:如何在图形化编程工具中实现“雪花漫天飞”的效果?在教学中,教师是引导者,通过三个问题引导学生明确“雪花漫天飞”的学习任务,并对“花朵缤纷”与“雪花漫天飞”进行对比、辨别与联系,再主动地将解决“花朵缤纷”问题的学习经验迁移到“雪花漫天飞”的情境中去。这样,学生能通过经验的迁移、重组,主动构建、完善新的知识,从而提升学习效率。

总之,学生亲历了分析问题、抽象特征、分解问题、设计算法、实践操作等过程之后,能真正理解和掌握基本的知识与技能,更重要的是掌握了相应的解决复杂问题的算法,知道如何分析问题,如何找到解决复杂问题的路径,进而了解解决复杂问题的基本范式。

猜你喜欢
控件一朵花花瓣
关于.net控件数组的探讨
在一朵花前失语(外三首)
一朵花开
花瓣报
月光花瓣
天上的花瓣雨旋落
真想变成一朵花
ASP.NET服务器端验证控件的使用
阅读花瓣雨
基于嵌入式MINIGUI控件子类化技术的深入研究与应用