第17课 选择排序轻松做 教学设计(表格式)2025-2026学年五年级全一册信息科技人教版

资源下载
  1. 二一教育资源

第17课 选择排序轻松做 教学设计(表格式)2025-2026学年五年级全一册信息科技人教版

资源简介

第17课 选择排序轻松做 教学设计
课题 选择排序轻松做 单元 第五单元 学科 信息科技 年级 五年级
教材分析 本课是上一课“比较交换找最值”的延伸与拓展,以“盒子卡片有序排列”为核心情境,引导学生学习选择排序算法。通过手动模拟排序、梳理算法步骤、绘制流程图、Python程序实现四个活动,让学生理解选择排序“找最值—交换位置—缩小范围”的核心逻辑,掌握双层循环在排序中的应用,体会算法在数据整理中的高效性,为后续更复杂的排序算法学习奠定基础。
学习 目标 1. 信息意识:能梳理选择排序的基本步骤,识别算法中的双层循环结构,了解选择排序在数据整理中的应用场景。 2. 计算思维:能描述选择排序的算法流程,用流程图表示算法,理解“n个数需n-1轮排序”的规律,掌握双层循环的执行逻辑。 3. 数字化学习与创新:能手动模拟选择排序过程,用Python程序实现选择排序,体验“算法—程序—验证”的完整过程。 4. 信息社会责任:感受选择排序算法在生活(如成绩排名、商品排序)中的应用价值,体会算法处理大规模数据的优势。
重点 理解选择排序“找最值—交换—缩小范围”的核心步骤,用流程图描述选择排序算法。
难点 理解选择排序中的双层循环逻辑(外层控轮数、内层找最值),掌握数据量与排序轮数的关系。
教学过程
教学环节 教师活动 学生活动 设计意图
复习导入 衔接旧知 1. 回顾上一课核心:找一组数中最大值的算法,提问“如何把找到的最大值放到指定位置?” 2. 出示情境:5个盒子里分别有数字卡片24、91、42、108、35,要求将卡片从大到小依次放入1-5号盒子,如何实现? 3. 引出课题:选择排序轻松做,明确本课要学习基于“找最值”的选择排序算法。 1. 回顾找最值算法,思考“最值定位”的问题。 2. 理解盒子排序的情境要求,尝试说出初步思路。 3. 明确本课学习方向,建立“找最值”与“排序”的关联。 从旧知“找最值”自然过渡到“有序排序”,搭建知识桥梁,降低学习门槛。
探究新知1 手动模拟 梳理排序步骤 活动1:小组合作模拟选择排序 1. 发放数字卡片和盒子模型,明确操作规则: 每一轮只找未排序部分的最大值 找到后与未排序部分的第一个盒子交换卡片 交换后,该盒子进入“已排序部分”,不再参与后续查找 2. 引导小组完成5个数的排序,记录每一轮操作: 第1轮:未排序[24,91,42,108,35]→找最大值108→与1号盒交换→已排序[108],未排序[91,42,24,35] 第2轮:未排序找最大值91→已在首位,无需交换→已排序[108,91],未排序[42,24,35] 第3轮:未排序找最大值42→已在首位→已排序[108,91,42],未排序[24,35] 第4轮:未排序找最大值35→与4号盒交换→完成排序 3. 引导总结:5个数共需要4轮排序,得出规律:n个数需要n-1轮选择排序。 1. 小组合作,动手模拟排序过程,记录每一轮的未排序范围、最大值和交换操作。 2. 观察排序轮数,总结“n个数需n-1轮”的规律。 3. 用自己的话描述选择排序的核心思路:找最值、换位置、缩范围。 通过动手操作具象化排序过程,让学生直观理解选择排序的核心步骤,突破“缩小范围”的理解难点。
探究新知2 抽象算法 绘制流程图 活动2:用自然语言和流程图描述算法 1. 引导将手动操作抽象为通用算法步骤(以从大到小排序为例): 第1步:设定已排序数的个数为0(初始未排序范围为全部数); 第2步:在未排序数中找到最大值的位置; 第3步:将最大值与未排序数的第一个数交换位置; 第4步:已排序数的个数加1(未排序范围缩小1个); 第5步:判断已排序数的个数是否小于“总数-1”,若是则回到第2步,否则排序完成。 2. 讲解流程图新逻辑:双层循环结构 外层循环:控制排序轮数(已排序个数从0到n-2); 内层循环:在未排序范围中找最大值的位置; 3. 带领学生补全选择排序流程图,标注核心节点:开始→初始化→外层判断→内层找最值→交换→更新计数→外层判断→输出结果。 1. 跟随老师梳理通用算法步骤,理解每一步的逻辑意义。 2. 认识双层循环结构,区分“外层控轮数、内层找最值”的不同作用。 3. 补全流程图,将算法步骤可视化,强化对排序逻辑的理解。 将手动操作抽象为通用算法,再通过流程图可视化,培养学生的抽象思维和算法描述能力。
探究新知3 程序实现 验证算法逻辑 活动3:用Python实现选择排序算法 1. 铺垫基础:回顾Python列表、`while`循环、变量赋值,介绍变量交换语法:`a, b = b, a`(无需中间变量)。 2. 展示选择排序核心程序,逐行讲解逻辑: ```python # 定义待排序的列表 data = [24, 91, 42, 108, 35] n = len(data) # 获取数据总数 i = 0 # 外层循环:控制已排序个数(轮数) while i < n - 1: max_pos = i # 初始化最大值位置为未排序的第一个数 j = i + 1 # 内层循环:遍历未排序部分 while j < n: if data[j] > data[max_pos]: max_pos = j # 更新最大值位置 j = j + 1 # 交换最大值与未排序第一个数的位置 data[i], data[max_pos] = data[max_pos], data[i] i = i + 1 print("从大到小排序结果:", data) ``` 3. 演示程序运行:分步执行,展示每一轮循环后列表的变化,验证与手动排序结果一致。 4. 小任务:修改列表数据(如[12,35,6,89,20]),运行程序验证排序效果。 1. 回顾Python基础语法,掌握简洁的变量交换方法。 2. 逐行分析程序,理解外层循环和内层循环的执行逻辑,明确`max_pos`(最大值位置)的作用。 3. 运行程序,观察输出结果,验证算法的正确性。 4. 修改测试数据,独立运行程序,巩固程序实现能力。 将算法转化为可执行的Python代码,让学生体验“算法—程序—验证”的完整过程,强化计算思维,突破“双层循环”的教学难点。
拓展提升 灵活应用 拓展思维 活动4:排序拓展与生活应用 1. 任务1:修改程序,实现从小到大的选择排序(仅需修改内层循环的判断条件:`data[j] < data[min_pos]`,将`max_pos`改为`min_pos`)。 2. 任务2:思考生活中的选择排序应用场景:成绩从高到低排名、商品按价格从高到低排序、运动会跑步成绩排名等。 3. 拓展介绍:Python内置排序函数`sorted()`,演示`sorted(data)`(升序)、`sorted(data, reverse=True)`(降序),说明内置函数是对排序算法的封装,底层原理包含选择排序等多种算法。 1. 尝试修改程序判断条件,实现从小到大的排序,运行验证结果。 2. 列举生活中的排序场景,感受算法的实际应用价值。 3. 了解Python内置排序函数,理解“算法封装”的思想,拓宽知识面。 通过修改程序培养知识迁移能力,结合生活场景体会算法价值,同时介绍内置函数,建立“算法—实际应用”的联系。
课堂总结 巩固提升 1. 师生共同梳理本课核心知识: → 选择排序核心:找最值→交换位置→缩小未排序范围(基于找最值算法的延伸); → 循环结构:双层循环(外层控轮数,n个数执行n-1轮;内层找最值,遍历未排序部分); → 程序关键:变量`max_pos/min_pos`记录最值位置,`a, b = b, a`实现变量交换; → 核心规律:n个数需要n-1轮排序,无需对最后一个数单独处理。 2. 布置作业: ① 用流程图描述“6个数从小到大选择排序”的算法; ② 完善Python程序,实现对任意数字列表的选择排序,并添加“输入待排序数字”的功能; ③ 思考:选择排序中,若某一轮最大值已在未排序首位,是否需要交换?为什么? 1. 跟随老师梳理核心知识,形成对选择排序的完整认知,区分双层循环的不同作用。 2. 明确作业要求,带着问题完成课后练习,巩固算法描述和程序实现能力。 3. 思考拓展问题,深化对选择排序逻辑的理解。 系统总结知识,强化核心考点,通过分层作业巩固学习成果,同时设置思考问题,培养学生的逻辑思辨能力。
板书设计 选择排序轻松做 1. 核心思路 找最值 → 交换位置 → 缩小未排序范围 2. 核心规律 n个数需要n-1轮排序(最后一个数自动归位) 3. 双层循环结构 - 外层循环:控制排序轮数(`i < n-1`),记录已排序个数 - 内层循环:遍历未排序部分,找最值的位置(而非最值本身) 4. Python核心程序 ```python data = [24,91,42,108,35] n = len(data) i = 0 while i < n-1: max_pos = i j = i+1 while j < n: if data[j] > data[max_pos]: max_pos = j j += 1 data[i], data[max_pos] = data[max_pos], data[i] i += 1 print(data) ``` 5. 变量交换 简洁写法:`a, b = b, a`(替代中间变量法)

展开更多......

收起↑

资源预览