内容正文:
用算法解决问题的过程教学设计
教学目标
用算法解决问题的过程
教材内容: 2.3用算法解决问题的过程
教学目标:
· 理解算法解决问题的一般过程:建模→设计→描述
· 掌握将实际问题抽象为数学模型的方法
· 学会用多种方式(自然语言/流程图/伪代码)描述算法
指向的核心素养:
· 计算思维:分解问题、抽象建模、设计算法
· 信息意识:识别数据价值,理解信息处理流程
· 数字化学习:运用工具表达算法
· 信息社会责任:考虑算法可行
教学重难点:
· 重点:抽象建模的过程(提炼核心要素、建立计算模型),算法的设计(输入、处理、输出)与描述(流程图)
· 难点:如何从实际问题中抽象出计算模型,循环结构和条件判断在算法中的灵活应用。
学习环境:有教学控制软件的多媒体机房
建议课时:1课时
教学活动设计
教学环节
教学过程
设计意图
新课导入
1.展示“迎新大合唱比赛”评分规则
学校举行迎新大合唱比赛,每个班级合唱结束后,主持人当场宣读10个评委的打分,然后再统计出总评分作为该班级的最终得分。每个班级表演所得的总评分计算规则如下:
(1)在10个评委的打分中去掉一个最高分和一个最低分。
(2)剩余8个分数的平均分即为总评分。
为了在比赛现场能快速根据主持人所宣读的10个分数计算出总评分,小伟需要为比赛编写一个计算机程序。请你设计一个解决该问题的算法,并用合适的方式描述。
2.提出问题:如何快速计算最终得分?
激发学习兴趣,引入算法解决问题的必要性。
新知探究(抽象与建模)
抽象与建模是从现实项目的真实情境中提炼出核心的要素并加以确定或假设,最终定义出一个有明确已知条件和求解目标的问题,并用数学符号描述解决问题的设计模型。
1. 引导学生提炼核心要素(评委数n、评分score、最终得分avg)。
本问题的已知数据包含了评委的评分,以及评委数。因为这些数据在事先都不确定,所以需要通过输入将数据传递给算法,不妨用变量n表示评委个数,score表示评委的评分,avg表示最终总评分。
为了使建立的问题模型具有一般性,可以认为评委数是不定的,所以用变量n来表示这个可变的数据。
2. 带领学生建立计算模型(数学符号描述)。
明确了问题的已知条件后,需要明确问题的解决目标。这个问题的解决目标比较直接,就是计算出n个评委给出的班级最终比赛得分。
基于上述分析,可以得出解决该问题的计算模型如下:
已知有n,(1≤n≤20)个数据:scorei,(1≤i≤n, 0≤ scorei ≤100),计算最终总评分avg。
处理规则:
① 找出n个数scorei中的最大值 max_score 和最小值 min_score
②计算所有分数总和sum_score
③修正总和: sum_last = sum_score - max_score - min_score
④计算平均: avg = sum_last /( n-2)
培养抽象能力,理解从实际问题到计算模型的转换过程。
新知探究(算法设计)
有了计算模型后,就可以遵循算法的特征、围绕算法的要素设计算法。
对任何数据的处理,总体上需要经历下列三个步骤:
1 输入数据
2 处理数据
3 输出处理结果
1.输入数据
输入数据:本问题需要输入的数据是总评委数n以及n个评委的打分scorei
算法描述如下:
1 输入总评委数n
2 表示评委的变量i初始化为1.
3 输入第i个评委的评分scorei,i增加1。
4 如i≤n,则转③,否则转数据处理
③④数据输入的步骤是相同的操作,故本算法的控制结构用循环结构
2.处理数据
(1)请以小组为单位,讨论本问题需要处理的数据有哪些,并进行交流分享。
本问题需要处理的数据:
1 寻找最值:遍历找出n个评委评分的最大值和最小值
2 计算总和:遍历累加所有评分
3 修正计算,得出最终评分:减去最大值和最小值后求平均
(2)请把本问题需要处理的数据的算法进行描述。
算法描述如下:
1 表示评委评分总和变量sum_score、最大值变量max_score和最小值变量min_score初始化为0。
2 如i≤n,则转③,否则转④
3 sum_score= sum_score+scorei。若max_score>scorei, 则max_score=scorei,若min_score<scorei, 则min_score=scorei。i增加1,转②
4 修正最后总分last_score= sum_score- max_score- min_score
5 最终得分 avg = sum_last /( n-2)
3.输出数据
(1)请以小组为单位,讨论本问题需要输出的数据有哪些。
本问题需要输出的数据:
1 去掉的最高分
2 去掉的最低分
3 最终评分
(2)请把本问题需要输出数据的算法进行描述。
算法描述如下:
1 输出去掉的最高分max_score
2 输出去掉的最低分min_score
3 输出最终评分avg
4.结合数据的输入、处理、输出,把本问题的算法设计归总。
(1)结合本问题中算法对数据的输入、处理、输出过程,把本问题的设计算法进行归总。
(2)算法描述如下:
1 输入总评委数n
2 表示评委的变量i初始化为1,评委评分总和变量sum_score、最大值变量max_score和最小值变量min_score初始化为0。
3 输入第i个评委的评分scorei,i增加1.
4 sum_score= sum_score+scorei。
5 若max_score<scorei, 则max_score=scorei。
6 若min_score>scorei, 则min_score=scorei。
7 如i≤n,则转③,否则转⑧
8 修正最后总分last_score= sum_score- max_score- min_score
9 最终得分 avg = sum_last /( n-2)
10 输出去掉的最高分max_score、输出去掉的最低分min_score、输出最终评分avg
掌握算法设计的基本方法,培养逻辑思维和合作能力。
新知探究(描述算法)
由于计算时涉及较多的条件判断,为了直观建议先用流程图描述解读该问题的算法,请同学们以小组为单位,进行讨论交流,绘制出本问题的流程图。
直观表达算法,强化流程图的规范使用,提升数字化学习能力。
拓展与练习
1.拓展链接
常用算法介绍
本例采用模拟策略来设计算法,即根据现实事务的实际流程和要求逐步进行处理,以达到数据处理的目标。计算机科学家根据各种问题的模型特征提出了各种针对性的算法设计策略,如穷举算法、顺序查找算法、对分查找算法、冒泡排序算法、深度优先搜索法以及动态规划等。
2.课堂练习
(1)用算法解决问题的一般步骤包括( )、( )、( )
(2)常用算法的描述方法有 ( )、( )、( )、( )
巩固知识,拓展视野
总结
请同学用1分钟回顾本次课的内容,请同学代表进行分享
结构化总结:知识树可视化呈现知识脉络,帮助学生形成系统认知
课后思考
如何扩展为多班级排名?
本次课的问题解决的是1个参赛班级的最终评分,请同学们思考,如果我们要解决的是问题是:
(1)根据评委的打分得出刚刚参赛班级最终得分。
(2)每次对已经参赛班级得分进行排名。
请你设计解决该问题的算法,并进行描述。
升华课堂内容,布置拓展性任务促进知识迁移。
教学反思
情境贴近生活,学生参与度高。
流程图绘制环节效果良好,学生能清晰表达算法逻辑。
部分学生对抽象建模感到困难,可增加更多案例对比(如体育比赛评分)。
学科网(北京)股份有限公司
$