
第16课 比较交换找最值 教学设计 课题 比较交换找最值 单元 第五单元 学科 信息科技 年级 五年级 教材分析 本课以“从5个信封中找最大数”为情境,引导学生学习找最大值的算法。通过描述算法、绘制流程图、Python程序验证三个活动,让学生理解“比较-交换-循环”的核心操作,认识循环结构在处理重复任务时的作用,为后续排序算法学习奠定基础。 学习 目标 1. 信息意识:了解在一组无序数中找最大数的基本步骤,能辨认其中的循环操作。 2. 计算思维:分析、描述找最大值的算法,用流程图表示算法,体验“算法→程序→验证”的完整过程。 3. 数字化学习与创新:能利用Python列表和`while`循环实现找最大值的算法,验证算法的正确性。 4. 信息社会责任:感受算法在生活中(如找最高身高、最厚书本)的应用价值,激发对算法学习的兴趣。 重点 用流程图描述找出最大数的算法;用程序验证找出最大数的算法。 难点 理解“比较-交换”的循环逻辑,掌握初始化最大值的技巧,认识循环次数与数据量的关系。 教学过程 教学环节 教师活动 学生活动 设计意图 情境导入 感受问题 1. 出示生活场景:找最高的人、最大的水果、最高气温,提问“怎么快速找到最大值?” 2. 引入核心情境:5个信封(编号1-5),每个信封有一个大于0的数,每次只能打开一个信封,看完放回,找出最大数。 3. 明确活动规则:小组合作探究,描述找最大数的算法步骤。 1. 联系生活,思考找最大值的方法。 2. 理解信封问题的规则,明确探究任务。 3. 小组讨论,初步形成找最大数的思路。 从生活场景切入,用信封问题具象化“无序数找最值”,激发探究兴趣。 探究新知1 描述找最大值的算法 活动1:梳理算法步骤 1. 基础版步骤: 第1步:准备A卡记录当前最大值 第2步:打开第1个信封,把数记在A卡 第3-5步:依次打开第2-5个信封,和A卡比较,大则更新A卡 第6步:A卡的数就是最大值 2. 优化版步骤(循环结构): 第1步:A卡记录0(小于所有可能数) 第2步:打开一个信封,和A卡比较,大则更新 第3步:重复第2步,直到所有信封都打开 第4步:输出A卡的数 3. 流程图绘制: 开始 → A卡记0 → 判断是否有未查看信封 → 是:比较信封数与A卡,大则更新 → 查看下一个信封 → 否:输出A卡 4. 拓展思考: 若要记录最大值所在信封,增加B卡记录编号 5个数需循环5次,5000个数需循环5000次 1. 梳理基础版步骤,理解“逐个比较”的过程。 2. 优化为循环结构,认识重复操作的本质。 3. 绘制流程图,可视化算法执行路径。 4. 思考拓展问题,理解循环次数与数据量的关系。 从手动操作到循环结构,让学生逐步抽象出算法的核心逻辑,建立循环思维。 探究新知2 程序验证找最大值的算法 活动2:Python程序实现 1. 认识Python列表: 列表用`[]`存储数据,如`box = [24, 91, 42, 108, 35]` 索引从0开始:`box[0]`是第1个数,`len(box)`获取数据个数 2. 回顾`while`循环: ```python while 条件: 循环体(重复执行的操作) ``` 3. 程序实现: ```python box = [24, 91, 42, 108, 35] cc = len(box) a = box[0] # 初始最大值为第1个数 i = 1 while i < cc: if box[i] > a: a = box[i] # 更新最大值 i = i + 1 print('最大数为:', a) ``` 4. 程序分析: 初始化`a`为第1个数,循环4次(从第2个数到第5个数) 每次比较`box[i]`和`a`,大则更新`a` 循环结束后`a`就是最大值 1. 学习Python列表的基本用法,理解索引和`len()`函数。 2. 回顾`while`循环语法,分析循环执行逻辑。 3. 运行程序,验证输出结果,理解“比较-更新”的过程。 4. 修改程序(如换一组数),验证算法的通用性。 将算法转化为可执行代码,让学生体验“算法→程序→验证”的完整过程,强化计算思维。 拓展提升 找最小值的算法 活 ... ...
~~ 您好,已阅读到文档的结尾了 ~~