资源简介 第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. 修改程序(如换一组数),验证算法的通用性。 将算法转化为可执行代码,让学生体验“算法→程序→验证”的完整过程,强化计算思维。拓展提升 找最小值的算法 活动3:拓展找最小值的算法 1. 提问:“如果要找最小值,算法要怎么修改?” 2. 引导思路: 初始化`a`为第1个数 比较时改为`if box[i] < a:`,小则更新`a` 循环结构不变,仅修改比较条件 3. 程序验证:修改找最大值的程序,实现找最小值的功能,运行验证结果。 1. 思考找最小值与找最大值的异同,修改算法思路。 2. 编写找最小值的程序,运行验证结果。 3. 总结:找最值的算法核心是“循环+比较+更新”,仅条件不同。 通过拓展任务,让学生迁移算法思路,理解“找最值”算法的通用性,提升知识应用能力。课堂总结 巩固提升 1. 师生共同梳理: → 核心算法:循环遍历所有数,比较-更新当前最值 → 初始化技巧:最大值可初始为第1个数或极小值,最小值可初始为第1个数或极大值 → 程序实现:Python列表 + `while`循环 + `if`条件判断 → 生活应用:找最高、最厚、最大等场景 2. 布置作业: ① 用流程图描述“找5个数中最小值”的算法 ② 修改Python程序,实现找列表中最小值的功能 1. 回顾本课核心知识,形成对“找最值”算法的完整认知。 2. 完成作业,巩固算法描述和程序实现能力。 3. 思考生活中更多找最值的场景,感受算法的应用价值。 总结知识,强化算法核心逻辑,为后续排序算法学习铺垫。板书设计 比较交换找最值 1. 算法核心步骤: - 初始化:记录当前最值(最大值/最小值) - 循环:遍历所有数,逐个与当前最值比较 - 更新:若当前数更优(大/小),则替换当前最值 - 输出:最终的当前最值 2. 流程图逻辑: 开始 → 初始化最值 → 判断是否有数未比较 → 是:比较→更新→下一个数 → 否:输出最值 3. Python程序模板: ```python box = [数1, 数2, ...] a = box[0] i = 1 while i < len(box): if box[i] > a: # 找最小值改为 < a = box[i] i = i + 1 print('最值为:', a) ``` 展开更多...... 收起↑ 资源预览