一、教学目标
(1)知识与技能
①能够根据问题分析,设计循环结构程序的算法
②能够运用for循环,使用Python程序编写、调试并运行代码
(2)过程与方法
①通过任务驱动和探究新知的教学过程,掌握分析问题和解决问题的方法
②通过具体实例的讲解,体会用计算思维解决问题的过程
(3)情感态度价值观
①在分析问题和解决问题的过程中,形成交流精神和合作探究意识
②培养分析问题的习惯,体验学习算法的乐趣,提高学习算法的信心
二、教学重点与难点
教学重点:正确理解循环结构中的for循环,通过for循环解决实际问题
教学难点:通过计算思维相关特征点开展本节课知识的学习
三、学习者特征分析
认知能力:在顺序结构和选择结构程序的铺垫下,学生对程序有了一定的认识,一定程度上掌握了分析问题和解决问题的方法
学习动机:循环结构是程序三大结构中最难的一种,学生的学习兴趣和学习热情可能会减退
学习风格:循环结构抽象程度大,初中生的抽象认识能力比较薄弱,所以教学中应选择贴近生活的实例进行讲解
四、教学策略与方法
任务驱动法:课堂中采取学生感兴趣的数学问题激发学生的学习兴趣,由浅入深,不断将知识内容深化
启发探究和小组合作法:循环结构的抽象程度很大,要求学生的抽象认识能力很高,逻辑思维能力很强,所以教学中教师要充分发挥引导作用,启发学生进行探究与思考,解决问题
五、教学课时:2课时
六、教学环境:微机室、希沃智能触摸屏教学一体机
七、教学过程
| 教学环节 | 教师活动 | 学生活动 | 计算思维的体现 |
| 情境导入 | 数学小知识情境导入: 教师通过重复叠加引出循环的概念 演示程序运行的结果 | 按照老师的提问一个个回答,并思考从1加到100是多少。 | 此例题是先从1+2、1+2+、1+2+3+……+100,反映重复执行某一个操作,以便引出循环的概念,这是属于发现问题和分析问题的环节。 |
| 任务驱动 | 布置学生应解决的任务: 1.以1加到100为例,如何将该问题用算法描述出来 2.如何将算法用Python程序编写出来 | 将要解决的任务分解成一个个可以解决的小任务,思考任务如何解决 | 通过任务的引导帮助学生养成分析问题的良好习惯,找到解决问题的关键,从而实现问题的解决。 |
| 案例分析 | 对算法的描述进行分析,告诉学生在复杂的问题情境下,解决问题的方式是多样的 | 写出解决步骤 可能出现的几种情况如下所示: 甲:第一步,输入1,2,3……100 第二步,计算s=1+2+……+100的值 第三步,输出s的值 乙:第一步,初始化s=0 第二步,利用循环结构循环计算s=1+2+……+100的值 第三步,输出s的值 | 解决问题的方法是多种多样的,关键是要帮助学生找到一条最简便高效的方法,这是属于抽象方面的体现;通过与学生的共同探究,增加学生的参与度,得出不同的解决方法,与此同时可以引出循环结构这个概念,提高学生的接受度和理解度。 |
| 探究新知 | 在循环结构的基础上,帮助学生利用循环结构解决问题。 从1加到2加到3一直加到100,像这样周而复始的重复同样的步骤,就是我们这节课所学的循环结构。在图4-8中,是从1加到100;图4-9是从1加到1000,像这样确定了循环次数,我们称为计数循环(引出循环结构和for循环语句) 进一步讲解for循环语句,它的格式为: For循环变量in[列表值]: 循环体 详细讲解for循环语句中列表值的运用 师生共同探究得出: #第一步,初始化变量“和” s=0 #第二步,使用for循环100次加法 for i in range(1,101): s += i #第三步,使用print进行输出 print ("1+2+……+100= ",s) 并继续调试和运行求出1+2+……+1000的和 | 通过自学和教师的引导得知这种计数循环采用for循环语句 在教师的引导的帮助下,得出1加到100的范围应该是range(1,101);1加到1000的范围应该是range(1,1001)。 | 在这个环节,先让学生明白任何问题都是从简单到复杂,由浅入深进行的,不可能一蹴而就,从循环结构概念、for循环语句、范围的选定一步步深入细化,最终得出结果。师生和生生之间写出解决步骤并尝试调试与运行代码,这是属于算法与程序和自动化能力的培养。 |
| 巩固练习 | 围绕循环结构,布置类似的课堂作业: 我们求出了加法之间的循环,那如果是乘法之间的循环呢 请完成: 用Python程序求出1*2*……*100的积 | 在规定的时间内各自完成这个题目并在学生端提交作业 | 帮助学生养成面对复杂问题时,先分析问题找出问题的关键,然后写出问题步骤、最好写成程序的良好习惯。同时,根据不同的计算思维相关特征点,通过课堂作业的检测,分析学生的计算思维能力是否得到培养。 |
| 交流评价 | 交流与评价: 引导各小组成员进行交流,提出学生在解决问题时面临的疑惑以及自己在问题解决过程中的收获 | 小组之间相互交流 在小组分享过程中,根据不同的小组展示提出不同的意见,以及值得自己学习的地方 | 通过交流了解学生对本节课的掌握情况,在大家的疑问基础之上才能对症下药;在评价过程中,可以激发学生的发散思维,相互学习,共同促进。 |
| 总结提升 | 师生共同总结这节课的重点知识: ①明确循环的次数,我们应该采用for…in…循环; ②for循环的格式 ③先找到问题的关键。然后用自然语言形式记录下来,最后编写程序 | 和老师一起回顾本节课的重点内容并总结 | 帮助学生整理本节课的知识结构,明白知识的重难点在哪,一起查缺补漏。 |