巴军
● 教学内容
本课为新课程必修模块《数据与计算》中“算法与程序实现”部分的内容。通过电视游戏“猜商品价格”引入编制猜数游戏这个项目。学生在教师引导下进行任务分解,明确需求:生成随机数、判断数值大小以及重复猜数等部分程序设计与实现。本课使用Python语言,每一部分具体语句学习由学生通过教学辅助网站进行自主探究学习,完成对生成随机数的函数学习,掌握分支结构及程序实现,并认识循环结构,了解循环结构的作用与特点,初步学会使用while循环语句结构解决现实问题。
编制猜数游戏是一个比较综合的项目,结果可简单可复杂,实现方法多样,能够给学生更多的发挥空间。教师通过教学,使学生对用程序设计解决现实问题的方法有更深刻的认识,对程序的三种结构——顺序结构、分支结构和循环结构有更深刻的理解与应用,提高其学习程序设计的兴趣。同时,在学习的过程中学生的计算思维、数字化学习与创新能力也得到重点关注与培养。
● 学生情况
高一学生已学习了顺序结构和分支结构,熟悉Python语言的编程环境和操作,对用程序设计方法解决现实问题有初步的经验及一定的抽象能力。学生学习水平参差不齐,差距较大。同时,学生好奇心较强,理解力趋于成人,事物背后的逻辑、思维的高阶内容对他们有天然的吸引力。因此学生间的沟通、交流与分享,教师的及时辅导可以促进学生的学习。
● 教学方式与手段
启发式教学、项目学习、自主探究、互助交流。
● 技术准备
硬件:计算机、广播系统、局域网、投影、黑板;软件:Python编程平台、辅助学习网站、PPT、部分程序。
● 教学目标
认识随机数并学会使用Python提供的随机函数生成随机整数;熟练掌握分支结构并会应用;初步认识循环结构,了解其特点及适用情况;学会使用while循环语句结构解决实际问题,知道循环结构的执行过程;体会用程序设计解决问题的方法,提升计算思维、数字化学习与创新能力。
● 教学重难点
重点:学会用随机函数randint()生成随机整数;有意识地把现实中有规律的重复的问题用循环结构来解决,学会用while循环结构解决实际问题。
难点:认识并理解循环结构,用循环结构及语句解决实际问题。
● 教学流程示意图
● 教学过程
1.引入(5分钟)
师:大家玩过猜数游戏吗?怎么玩?谁能描述一下?(教师描述在一档电视节目中的猜商品价格的活动)
学生讲述玩过的猜数游戏,描述游戏规则。
设计意图:由游戏引入,激发学习兴趣,引出学习主题。
2.项目分析(3分钟)
师:如果编制一款猜数游戏,你们认为需要做哪些工作?
学生思考,根据经验回答解决猜数游戏的需求,完成项目分析,进行项目拆解,为后续分步骤解决问题做准备。
设计意图:引导学生分析猜数游戏的任务需求。
3.自主探究——顺序结构,解决生成随机整数问题(5分钟)
教师引导学生通过辅助网站进行自主探究学习。
学生通过辅助网站中的随机数栏目的学习,完成生成随机整数的编程问题。学会使用import random语句、randint(a,b)函数,展示、交流、分享。
设计意图:进行数字化学习,掌握用Python生成随机数的方法。
4.复习掌握——用分支结构解决数值判断问题(10分钟)
教师引导学生完成对猜数游戏中数值判断对错部分的编程,巡视辅导,发现不同的做法提问并展示完成情况。
学生完成对猜数游戏中数值判断对错部分的编程、展示、分享。
设计意图:复习、掌握分支结构,熟练应用。
5.自主探究——用循环结构,实现重复猜数(15分钟)
师:如果用户使用你编制的程序,有什么不方便的地方吗?如何编程实现重复猜数?
设计意图:引导学生思考计算机的特点,对重复的事、有规律的事情可以用计算机来完成,怎么完成?引出循环结构的学习需求。发现问题,引出对重复问题的解决需求。
学生尝试做到重复猜数,如用复制代码的方式等,并思考、交流。
教师巡视辅导,发现问题。组织学生交流,相互学习,引导学生解决编程中出现的各种问题,并理解为什么会出现这些问题。
学生打开辅助网站中的“循环结构”栏目,认识循环结构,学习用循环结构语句。教师讲解案例,学生交流对循环结构的认识,编程实现重复猜数。调试程序,对编程中出现的各种问题进行解决、交流,相互改错。
设计意图:引入对循环结构的学习,了解循环结构的定义、解决问题的适用情况以及while语句,知道循环结构的执行过程,初步学会使用while循环解决重复的问题。在发现问题的过程中提升能力,在调试程序的过程中收获成就感。
6.互助交流——认识循环结构(5分钟)
教师引导学生对循环结构的作用、语句使用方法进行总结、提高。
学生通过对程序的不断修改,思考并分析进入循环的条件、退出循环条件、循环体内部的内容。
设计意图:认识循环结构,体会用程序设计解决问题的方法,提升计算思维、数字化学习与创新能力。
7.总结、扩展(2分钟)
师:关于猜数游戏,你们还有什么想法没实现吗?下一步打算怎么设计?
学生交流。
设计意图:扩展思路,相互启发,程序本身是需要不断改进的。
点 评
(1)本节课在教学顺序上较以往常规方式有了较大调整。以往的顺序是:教师讲随机数,学生完成相应练习——教师讲分支结构,学生完成相应练习——教师讲循环结构,学生完成相应练习(包括猜数游戏)。本课教学顺序是:布置猜数游戏项目,教师提供学习资源——学生自主探究,学习随机、循环——展示、交流——学生相互讲解——认识循环结构——完善自己的程序(——撰写程序设计报告)。
(2)学生通过制作程序作品,把各种知识点串起来,逐步形成知识体系,学习顺序和成果学生自主选择,实现了知识的自我构建;课堂教学结构由以教师讲授为主转变到以学生自主学习为主。
(3)本节课主题选择有一定的开放性和综合性。课堂教学利用小微项目,提高学生在课堂上的专注程度、投入程度,给学生以更多的自主,使教学目标得到更充分落实。
(4)本节课,教师注重学生在学习过程中思维的变化,强调学生的体验,突出学生在编制、调试程序并逐步解决问题,以及与同学交流互助的过程中获得成就感。弱化学生程序作品的绝对水平差异,强调课上习得的知识增长;注重学生学习主动性,强调教师的组织、引导、辅助作用。
(5)本节课强调用计算机解决问题的特点,重点考查學生的自主学习能力,弱化对程序语法的记忆。
(6)本节课以内容丰富、组织有序的学习资源搭建学生自主探究与数字化学习的脚手架,使教师有更多的时间抓住学生课堂生成的问题,有更多的时间辅导学生,提高课堂教学效率。
(点评人:北京市教科院 王振强)