《while循环应用实例》教学案例
作者: 胡伟 王卫东
● 教学内容分析
《while循环的应用实例》是浙江教育出版社出版的初中信息技术八年级下册第二单元《Python程序基本结构》中的第11课。本单元选取了与学生生活、学习相关的例子,如“登录”实例、简易计算器、海伦公式、棋盘上的麦粒数、猜数游戏等,引导学生初步学习三种基本结构程序的编写,体验编程的具体过程,培养用计算机解决问题的能力,发展计算思维。本课是while循环结构的拓展应用,结合现实中的实例,设计了“猜数游戏”的项目,从中引入while循环语句的执行流程,结合多分支结构、循环控制语句break和计数器变量,编写较为复杂的while循环程序。学生在游戏中体验while循环的乐趣,感知while循环的功能,编写比较复杂的while循环程序。为了提高学生用计算机解决问题的能力,理解while循环的实际运用,笔者将任务进行了分解:因循环控制语句break和计数器变量在游戏中初体验时,并不是必需的,所以将这两个知识点移到了拓展提升环节,引导学生感知循环控制语句及计数器变量对程序完整性和趣味性的提升。
● 学习对象分析
本课的学习对象是八年级的学生,在知识储备上,他们之前学过Python的基本语句和三种程序结构,这是本课学习的基础。在学习能力上,通过问卷调查可知,绝大多数学生在前面的学习中,已基本了解计算机解决问题的四个步骤,能用Python基本语句编写简单的程序,但对较复杂的算法流程图与代码之间的关联理解起来存在一定难度,需要搭建脚手架。因此,将采用小组讨论、同伴互助、教师个别指导等方式开展学习,同时关注学生思维的发展,设计基础任务、拓展任务,满足不同学生的需求,让每一位学生都获得成功感。在学习特点上,学生能熟练使用平板电脑,在本节课设计中采用平板电脑开展学习,新鲜感会带给学生极大的兴趣,同时使用移动终端实时展现学习过程与结果,让思维可见,也让生生、师生之间的互动交流更加方便。
● 教学目标
①通过对“猜数游戏”的问题分析,能够用自然语言描述解决问题的方法,感知while循环在实例中的应用。
②通过对“猜数游戏”的算法设计和用流程图表示,初步理解while循环的执行过程,提高逻辑思维。
③通过对“猜数游戏”的程序编写,经历根据流程图来编写代码的过程,能够根据需要,综合运用算法的三种结构。
④通过对“猜数游戏”程序的调试运行,反思程序的不足并修改完善,学会循环控制语句break和计算器变量的用法,理解它们对程序的影响。
● 重难点与对策
重点:复杂while循环的执行流程;循环控制语句break和计数器变量在程序中的应用。(对策:通过游戏体验、交流讨论、书写算法流程图、联系实际、完善程序来达成)
难点:根据算法流程图完成程序代码的编写。(对策:通过算法流程图过渡、结合基本语法结构等脚手架完善程序来达成)
● 课前准备
学习环境:智通云交互系统环境搭建。
教学软件:云课堂APP。
● 设计思路
为了让学生深入体验while循环实例就在身边而且应用在生活中,本课从一个“猜数游戏”入手,让学生感受while循环的执行过程,感知while循环控制语句break及计数器变量对程序完整性和趣味性的提升。本课分三部分展开:一是体验游戏,利用所学知识分析猜数游戏背后的程序组成部分,感知while循环的执行流程;二是引导学生设计算法,编写程序并调试运行;三是引导学生联系实际,找出程序的不足,对程序进行改进,并对其功能进行拓展延伸,体验while循环带来的成就感,从而激发更多创意。
新课程倡导学生主动参与、乐于探究,关注学生的学习兴趣和经验,同时考虑到学生的心智发展水平和情感需求,本课教学“以学为主,以导为方”,以猜数游戏这一较为复杂的while循环实例的探究为主线,环环相扣,前后衔接,通过任务驱动、问题情境引导学生自主探究学习,利用Pad智通云等智慧教学环境,为学生提供便捷的合作、分享与展示的平台,并利用云课堂呈现任务单及导学案等作为学习助手。
● 教学过程
1.回顾旧知,游戏体验
(1)回顾旧知,提出问题
上节课学习了while循环结构程序设计,通过前测,复习while循环的基本语法格式。前测任务如图1所示。
设计意图:衔接旧知,运用移动互联网技术,通过平板进行前测,复习while循环的基本语法,复习上一节课的知识,让学生快速进入学习状态。使用移动平板设备进行前测,掌握学生的具体的学情,调动学生情绪,快速进入学习状态。
(2)游戏体验,进入课堂
通过“猜数游戏”引出本节课内容。在给定某数后,让用户进行猜测并输入数,计算机给出相应提示,如偏大、偏小或正确。若所猜测的数正确,则提示“恭喜你猜对了”。
设计意图:激发学生对本节课内容的学习,克服他们学习复杂while循环程序的畏难情绪,设置了“心有灵犀猜数游戏”体验游戏,顺利地引出课题。只有亲身经历游戏的过程,才能有真实的感受,通过游戏激发学生的学习兴趣,引导学生进入课堂。
2.观察讨论,探究新知
(1)问题分析
①引导学生思考并互动讨论。如图2所示,游戏中,首先给定一个要猜测数——猜测的具体数(变量num),然后读入用户的输入数(变量guess)。让计算机反复对输入数与给定数进行比较,并提示如下相关信息:如果猜测数大于输入的数(guess>num),则显示“偏大”;如果猜测数小于输入的数(guess 设计意图:利用平板完成关于程序背后的思考的调查,现场获取数据,引导学生回忆程序运行的过程,紧接着教师展示结果,通过平板上获得的数据,有效了解学生的学习情况。
(2)算法设计
①算法描述。根据上述分析,需要将输入数与给定数进行反复比较,因此需用while循环语句来实现。该算法用自然语言描述如下:
初始:给定数num=66
输入:输入数guess
循环处理:比较guess与num大小。如果猜测数大于输入的数,则输出“偏大”,并返回继续猜测;如果猜测数小于输入的数,则输出“偏小”,并返回继续猜测;否则,如果猜测数等于输入的数,则输出“恭喜你猜对了”,并返回继续猜测。
②算法的流程图表示。如图3所示,引导学生在各自的平板上完成算法流程图并提交,交流反馈,解决问题。
设计意图:利用平板开展程序算法的流程图的探讨与学习。这个环节,学生用平板进行学习,增强了使用数字化工具进行自主学习的实践体验,让学习更有效。借助使用移动平板设备,让学生自行绘制出流程图,对于学生来说更加方便绘制,对于课堂来说更加便于展示。
(3)编写代码,调试运行
如图4所示,引导学生根据前面的算法分析,编写程序代码,完成任务三和任务四。
任务五:根据提示语句,尝试编写程序代码,调试运行(如图5)。
设计意图:为学生提供了部分基础语法结构作为脚手架,将部分基础的语法结构设计好,剔除关键代码、易错代码,引导学生完善程序,这是从上一环节算法流程图到编写程序环节的一个提升。
3.联系实际,拓展完善
(1)完善程序
思考:上面书写的程序在猜中数字以后,仍然可以继续猜数,能否利用之前学习的控制语句,实现猜对后跳出循环体?
任务六:增加循环控制模块实现猜对以后跳出循环体;增加计数器变量控制猜测次数(如图6)。小组讨论,请一组上前分享。
设计意图:通过计数器变量的增加,提升程序的趣味性。
(2)总结梳理,建构知识序列
①while循环为条件控制循环,当while后的条件表达式为Ture时才进行循环。
②当出现while无限循环时,可以利用循环控制语句break结束循环。
③while循环跟分支结构组合可以实现更多的功能。
④while循环在实际生活中的应用非常广泛,如储蓄问题。
设计意图:拓展while循环在生活中各个领域的应用,感受while循环的魅力,为进一步的学习做好铺垫。同时,也是将学习到的知识向生活迁移,为编程服务生活打下基础。
点 评
本课在浙江省中小学教师信息技术应用创新大赛活动中获得一等奖。在智能化时代,Python程序应用在我们生活中已经越来越普遍,因此,浙教版新版初中信息技术教材将八年级教材上册都安排来学习Python程序设计。本节课选自第二单元《Python程序基本结构》中的第11课《while循环的应用案例》,这是一节综合实例课。如何链接学生的学习基础?如何激发学生的学习兴趣?如何扩大关注,帮助更多的学生进一步理解while循环语句格式和执行流程、循环控制语句break的重要作用?如何提升程序趣味性?这些问题成为困扰广大一线信息技术教师的主要问题。胡伟老师执教的这一课提供了一个很好的案例。纵观本课,主要有以下几个特点:
(1)聚焦生活实例,发展计算思维。这节课从生活实例出发,关注知识的衔接,将while循环实例蕴含在具体的情境中,引导学生从一个一个“猜数游戏”入手,感受while循环的执行过程,感知while循环控制语句break及计数器变量对程序完整性和趣味性的提升。学生通过体验游戏,利用所学知识分析猜数游戏背后的程序组成部分,感知while循环的执行流程;继而开始设计算法,编写程序并调试运行;最后联系实际,找出程序的不足,对程序进行改进,并对其功能进行拓展延伸,体验while循环带来的成就感,从而激发更多创意。
(2)基于学习视角,落实以生为本。纵观本课,可以明显感受到学生的主体性得到了充分的发挥。关注差异,设计分层任务,根据任务的难易程度,适时地开展小组讨论、自主探究、合作分享等学习活动。例如,课堂导入简洁实用,直接从上节课学生学习的知识入手,在激活旧知的同时提出新问题;对学生难以理解的算法设计以及程序代码的书写,则采用组织小组讨论并在平板上标注、组间分享等方法,带领学生归纳,学生在合作中体验到成功。在学习内容的探究上,胡老师落实了“以生为本,以导为方”的教学理念,安排了参考书本、自主探究和交流分享环节,在充分调动学生的认知之后,教师再及时介入,或统一讲解,或个性化指导。整堂课很好地体现了“以学为主,以导为方”的教学理念。
(3)为理解而设计,有效化解难点。通过前期的教学实践发现学生对算法流程图的书写较易呈现,但从算法流程图到程序代码的编写过程,却不是一下子就能理解的,这也是本课的教学难点。在教学中可以看到,胡老师通过任务驱动、问题情境引导学生自主探究学习,利用Pad智通云等智慧教学环境,为学生提供便捷的合作、分享与展示的平台,并利用云课堂呈现任务单及导学案等作为学习助手,有针对性地设计了基础任务、进阶任务,引导学生先初步感知再实践体验,然后迁移运用,最后进一步拓展,学生经历了“问题分析、形成算法、编程实现、修改完善”的过程,经过充分的思考与操作,在循序渐进中掌握了技能,逐步理解“过程”的作用与优点,从而有效地化解了本课的难点。
(4)技术助力教学,精准促进提升。随着移动互联网的发展和移动终端的快速普及,智慧教育走进了中小学校园。教师可利用信息技术助力课堂,提高教学效率,获取精准数据。本课充分利用学校现有的智慧教育资源,以移动终端作为学习工具开展编程教学,使得师生、生生的互动交流更加便捷。教学中,胡老师利用智通云系统实时展现大家思考与讨论的结果,让思维可见,扩大了关注,让学生的观点共享;教师还利用云课堂实时采集学生完成进阶任务的精准数据,并根据数据做出分层教学的决策,即一部分学生继续完成基础任务,有余力的学生完成挑战任务,对个别有疑难的学生集中指导,促进学生有效学习,让每一位学生都获得各自的成功感。
信息技术课程的发展提出了“四个转向”,要求教师从以往的关注知识技能的学习转向关注问题解决能力的发展,从关注“应用行为”转向关注“学科思维”,胡伟老师执教的《while循环的应用实例》这节课比较好地体现了这一思想。