课题 算法的执行 课时 1课时
学习目标 通过运行“鸡兔同笼验算程序”程序文件,观察程序运行界面,掌握程序执行和调试的方法。 通过修改“鸡兔同笼验算程序”程序文件,判断算法的正确性和完整性,制 算法优化方案,初步形成完善算法与程序的意识。
学习重点 掌握运行、调试程序的方法。 学习难点 初步具备完善算法与程序的意识。
学习准备 PPT 、任务记录单
学习过程
学习版块 学生活动 教师活动 设计意图 改进设计
回顾:明确问题解决的目标 1.集体观察上节课的流程图和代码。 2.思考:在“鸡兔同笼问题验算器”算法中,分支结构部分有什么功能 循环结构部分有什么功能 1.组织学生回顾项目探究的过程,明确本节课项目探究的目标:运行计算机程序,实现“鸡兔同笼问题验算器”程序;针对验算的需求,改进和完善算法。 2.组织学生观察,引导学生思考:图中实线框中的算法可以实现什么功能 虚线框中的算法呢 回顾算法与程序之间的对应关系,提高对算法流程图的 熟悉度,便于后续调试程序时借助流程图阅读代码。
建构:运行并调试程序 活动一 测试鸡兔同笼验算程序 1.根据任务记录单中每个程序的运行结果,猜测对应的错误 因,在任务记录单中选择错误原因的序号。 2.观察某个学生打开并运行程序的操作,思考:怎么知道这个 学生运行的是第一个程序 在哪里查看程序运行的结果 3.运行活动一素材文件夹中的4个程序文件,尝试修正代码 将调试的结果记录在任务记录单中。 4.根据自己在活动中的表现,在任务记录单中做自评。 活动二 “用户”体验,提出新问题 1.体验“鸡兔同笼问题验算程序”的交互功能,修改Python代 码中的鸡、兔的总头数与脚数,并在任务记录单活动二中记录运行 的结果。 2. 与同桌根据运行结果讨论算法存在的问题,并尝试提出改进 算法的想法。 3.根据自己在活动中的表现,在任务记录单中做自评。 4.集体讨论:现在的算法能满足对“鸡兔同笼”问题的验算需 求吗 还能如何完善 1.解读任务记录单活动一的内容要求,引导学生按要求完成错误原因分析。 2.请1名学生上台演示打开和运行第一个报错程序,引导学生观察算法执行的结果,指导学生认识文件信息和程序结果输出。 3.在学生操作的过程中,辅导个别学生打开和运行程序,关注学生修改程序的过程并适当给予帮助。 4.请调试成功的学生分享经验,教师适时引导学生在调试程序的时候可以根据运行结果中的典型的错误单词分析原因,根据提示的错误行修正代码。小结时, 通过课件具体展示while循环语句的注意点。 教师出示更多“鸡兔同笼”问题,引导学生再次思考“现在这 个算法能满足鸡兔同笼问题的演算需求吗”后,教师指导并示范修 改代码中鸡和兔的总头数与总脚数的操作,引导学生思考完善算法 的方向。 1.教师出示“鸡兔同笼”变式题目和答案。 2.展示引导图,指导学生根据“鸡兔同笼”题目中的信息修改程序代码 。 3.出示两道题运行的结果,引导学生思考算法存在的问题。 4.引导学生思考程序存在的问题,给出提示并小结可以完善的 方向 : 无解提示 、 解决同类问题 、 用户输入增加交互 。 本课是学生第一次修改错误程序,具有一定的难度。为了降低难度,设计了任务记录单供学生参考,帮助学生掌握调试程序的方法。对缩进代码的追问可以帮助学生厘清缩进的层次关系。 本环节安排学生修改程序的数据来验算算法的完整性。 学生通过体验能够更清楚地认识算法存在的问题,丰富调试程序的 方法,同时为下一环节提出更多完善算法的想法提供经验。学生在 前面的学习中并没有经历过完善算法的过程,结合教材中的完善算 法提示可以降低学生提出问题的难度。
应 用: 迭代制订算法优化方案 1.选择一个要解决的问题(无解提示、解决同类问题、用户输 入增加交互),用擅长的方式(自然语言描述、流程图)制订完善 算法的方案。 2.四人小组讨论完善算法的方法,并记录在任务记录单中,学 有余力的小组可以根据改进的算法修改程序。 3.四人小组讨论后推荐1人代表小组展示算法。 4.根据自己在活动中的表现,在任务记录单中做自评。 1.组织四人小组选择一个要解决的问题,并讨论制订算法设计 方案。在讨论之前,教师提示每一个问题的完善思路,降低难度。 在学生讨论的过程中,教师要关注没有交流或交流出现停滞的小组,有针对性地进行指导。 3.活动结束后,邀请解决3类不同问题的小组代表谈谈改进算法的方案。 指导学生完善算法的逆向想法,也为后续制订算法优化方案提供可迁移的思考路径。提出解决思路,在降低问题解决难度的同时,更聚焦培养学生完善算法与程序的意识。
小结:交流评价 1.观察“增加用户交互的鸡兔同笼问题验算器”程序,根据运 行结果的提示集体借助AI 调试代码。 2.用自己的话说说在算法执行的过程中可能会遇到的问题。 运行“增加用户交互的鸡兔同笼验算器”程序,组织学生关注运行结果,根据运行结果借助AI 修正程序代码。 总结用计算机解决问题过程中算法执行的一般流程:回顾算 法、验证算法、优化算法。 在课堂小结中再次迁移学生调试程序的经验。 借助AI 修正程序,拓展学生视野。回顾可以帮助学生对优化算法的过程形成整体的认识, 让学生意识到优化算法是算法设计中的重要一环。
作业指导
板书第5课 算法的执行
任务记录单
任务一 测试鸡兔同笼验算程序
运行编写好的程序,根据运行结果和正确程序,选择错误的原因(填序号),并尝试解决程序中的问题。
任务二 “用户”体验,提出新问题
体验“鸡兔同笼问题验算程序”的交互功能,修改Python代码中的鸡、兔的总头数与脚数,并记录运行的结果。
tu =0
#枚举的对象为免的数量,枚举范围为0~35
错误原因:
while tu〈36:
ji 35-tu
①没有区分大小写,
#如果符合正确解条件,则输出鸡免的只数
ifji*2+tu米4三94:
②标点输入没有使用英文半角状态;
print(ji,"只鸡,",tu,"只兔。”)
t知=tu+1
③冒号与缩进的使用有误。
正确程序
程序
运行结果
错误原因
调试结课
NameError:name 'Tu'is not defined.
口已解决
1
名称错误:名称“Tu”没有定义
口未解决
运行结果
invalld decimal literal
口已解决
2
口味解决
无效的十进制文字
记录
expected an indented block after while'statement on line 3
口已解决
3
口未解决
在while语句后应该有一个缩进的块
expected an Indented block after'I statement on lne 6
口已解决
4
在计语句后应该有一个缩进的块
口未解决
环节自评
口我能运行程序;口我会猜测程序出错的原因;口我会调试程序
【发现问题】“用户”体验,提出想法
(1)体验程序:侈改代码中的鸡、兔总的头数与数,记录运行的结果。
鸡.兔总头数
35
20
60
鸡、兔总即数
94
50
66
运行结果
23只鸡,12只兔
(2)出问魔:我感觉程序还存在(怎么样)
的问题。
环节自评
口我会记录程序运行的结果;口我能提出算法存在的问题。