1、查找的概念、顺序查找的思想及程序实现教学设计课程标准和教学目标查找的概念、顺序查找的思想及程序实现教材内容:5.4.1 查找 5.4.2 常见的查找算法中的顺序查找适应的课程标准: 1.7 通过实现数据的排序和查找,体验迭代和递归的方法,理解算法与数据结构的关系。教学目标: 通过对生活实例的分析和描述,理解查找的概念。通过不同生活实例的对比分析,学会选择运用恰当的查找方法进行问题解决。理解顺序查找的思想。能够针对具体给定的问题情境,合理组织数据,使用顺序查找的算法编程实现。指向的核心素养: 信息意识:能够根据解决问题的需要,自觉、主动地寻求恰当的方式获取与处理信息。计算思维:针对给定的问题情境
2、进行问题分析,抽象问题的基本特征,设计算法与数据结构,编程解决问题。数字化实践:能够较为熟练地运用数据结构解决生活中真实问题,并在解决问题的过程中进行选择合适的数字化资源与工具进行自主学习与小组协作探究。学习环境:有教学控制软件的多媒体机房。建议课时:1课时教学活动设计教学环节教学过程设计意图情境导入导入1:拿出一副新牌,如何快速找到其中一张牌。导入2:将牌打乱后,怎么再寻找这张牌。思考:生活中还有哪些查找的具体例子,你是通过什么样的方法快速进行查找的。(例如:查字典、查电话号码等)通过让学生对比有规律的扑克牌和无序的扑克牌找一张牌的不同方法,体验不同的查找过程,激发学生的学习兴趣,自然地引入
3、新课,对查找算法有初步感性认识。通过学生自己举例生活中的查找实例,进一步提升学生的信息意识,在与同学分享自己最优的查找方法的过程中,锻炼了学生的语言表达能力和计算思维能力。自主学习1. 通过分析上述生活中的实例,学生结合自主学习5.4.1部分内容,总结得出算法概念。2. 自主学习5.4.2顺序查找的思想部分内容,请学生用自然语言描述算法步骤。教师根据学生的回答,总结算法描述:将待查找的数据储存在数组中;输入查找关键值key;从数组中的第一个元素开始与关键值key进行比较,若相等,则输出相应信息;否则,继续比较下一个元素。直到找完数组的最后一个元素仍不想等,输出查找失败。有了对实际案例的对比分析
4、后,学生对查找算法有了初步感性认识,趁热打铁,让学生根据教材内容归纳总结查找算法的概念,从而实现知识的内化。顺序查找的内容较为简单直白,学生可以通过自学该部分内容理清算法思路,教师只需从旁引领提示即可。学生上机实践题目:A数组中存放了一些动物名称“dog” “cat” “monkey” “tiger” “panda” “rabbit” “horse”,现在想查找动物“bear”是否在其中,如找到输出“查找成功!是第几个动物”,否则输出“查找失败”,无论查找成功与否都输出比较的次数。设计意图:学生在知道了顺序查找的基本思想后,读懂书本中的代码是比较简单的,因此教师布置了一个课本上稍作改变的例子让
5、学生上机实践,既降低了难度,又让学生对代码进一步巩固加深印象。在输出查找成功与否的基础上统计查找的次数,为后面查找次数效率的分析打下基础。拓展提升(选做)某个班级的部分学生语文成绩如下表所示,要求实现根据考号查询该生的语文成绩,如查询不到则显示“该班无此学生”。思考:(1)用哪一种数据结构对表格数据进行存储?(2)对哪个字段进行顺序查找?说明:应用数组存储表中的数据,可以用3个一维数组也可以用1个一维数组;并对每一个字段的作用功能进行分析,顺序查找的为考号字段,结果显示的是语文字段值。对于学有余力的学生,可以参考书本中的代码,将顺序查找部分代码进行函数的改编,以便于反复进行调用设计两个思考问题
6、帮助学生通过分析实例理清思路,抽象建立数学模型。拓展任务的设置让学有余力的同学可以结合生活实例去思考解决实际问题,培养优秀学生的自主学习能力和探索精神,提高学生的计算思维能力,真正实现学以致用。同时在该时间段内让写程序比较困难的学生有足够的时间进行代码的思考编写调试。课堂小结思考:(1)若一个班级一共有45人,查找成功最好情况是比较几次?最差呢?若查找不成功,需要比较几次?(2)若有N个数据,那顺序查找的平均比较次数为几次?教师总结归纳:若一个数据序列有n个数,查找不成功的比较次数为n,查找成功:最好的情况为1次,最差的情况为n次,所以查找成功时的平均比较次数为(n+1)/2,且顺序查找的时间
7、复杂度为O(n)从具体例子引发学生思考,再抽象到n个数据的情况,总结归纳出一般情况,符合学生的思维习惯。教学设计思路本课通过让学生分析未打乱的扑克牌和打乱的扑克牌寻找同一张扑克牌的情境引入,启发学生运用不同的查找方法来快速解决问题,引导学生抽象两个不同问题的基本特征,将具体的例子抽象归纳出一般特征即查找对象是有序还是无序这一特征来选择不同的查找方法。在两个生活中具体问题的查找实践过程中领会查找算法的概念。有了对实际案例的对比分析后,学生对查找算法有了初步感性认识,趁热打铁,让学生根据自己的生活经验自己举例相关的例子和查找方法,从而进一步实现知识的内化。顺序查找思想部分的内容较为简单直白,学生可
8、以通过自学主学习该部分内容理清算法思路,教师只需从旁引领提示即可。教师根据学生的回答归纳总结出顺序查找思想的自然语言描述。学生在知道了顺序查找的基本思想后,读懂书本中的代码是比较简单的,因此从自然语言直接过渡到程序语言没有太大难度,此时跳过流程图的步骤,直接让学生读课本中的样例。上机实践部分如果直接做课本中的例子,学生会觉得枯燥乏味,不动脑筋的照样打一遍代码,不利于学生对代码的真正理解内化,因此教师布置了一个课本上稍作改变的例子让学生上机实践,学生在参考书本代码的基础上,进行模仿改写,既降低了难度,又让学生对代码进一步巩固加深印象。最后在输出查找成功与否的基础上统计查找的次数,为后面查找次数效
9、率的分析打下基础。在完成基本任务后,对于学有余力的学生安排了拓展任务,培养优秀学生的自主学习能力和探索精神,提高学生的计算思维能力,真正实现学以致用。此任务为一个接近学生生活的现实问题,利用顺序查找的算法来解决该问题。在代码编写之前设计两个思考问题帮助学生通过分析实例理清思路,抽象建立数学模型。同时在该时间段内让写程序比较困难的学生有足够的时间进行前一个代码的思考编写调试。课堂小结主要归纳总结顺序查找的时间复杂度,从具体例子的最坏最好情况的查找比较次数,引发学生思考一般情况,抽象出n个数据的各种情况,这样符合学生的思维习惯。本节课的内容总体难度不大,教师提供适量的生活实例启发学生思考,学生比较
10、容易理解掌握顺序查找的基本思想。在给予学生足够的时间自主学习后,通过上机实践操作,掌握顺序查找的程序实现。针对核心素养培养的设计考虑核心素养的培养不可能泛泛而谈,而应落实在每一次引导、每一个活动之中。本条例各个核心素养的具体落点分析如下:信息意识:落点在“能够根据解决问题的需要,自觉、主动地寻求恰当的方式获取与处理信息;”。本条目通过不同的生活应用场景,让学生在熟悉的例子中进入查找算法的学习,唤起学生的兴趣,引导学生在熟悉的真实情境中理解查找算法的概念,分析在不同的情境中可以恰当地运用不同的查找方法达到最快速度的查找。计算思维:落点在“针对给定的问题情境进行问题分析,抽象问题的基本特征,设计算
11、法与数据结构,编程解决问题”。本条目帮助学生在身边熟悉的情境中理解查找的概念和常见的查找方法,能根据特定的问题情境进行问题分析,例如引入部分未打乱的扑克牌和打乱的扑克牌寻找同一张扑克牌的情境,需要运用不同的查找方法来快速解决问题,引导学生抽象两个不同问题的基本特征,将具体的例子抽象归纳出一般特征即查找对象是有序还是无序。在具体的上机实践过程中,以一个查找动物位置一个虚拟的例子铺垫,然后进一步提升到现实具体问题的解决,在现实问题解决过程中设计合适的数据结构来存储数据,选择合适的查找算法,并在编程实现的过程中进一步提升学生的计算思维。数字化学习与创新:落点在“能够较为熟练地运用数据结构解决生活中真实问题,并在解决问题的过程中进行选择合适的数字化资源与工具进行自主学习与小组协作探究”。在拓展学习任务时,鼓励学生根据实际解决问题的需要,使用数字化工具开展自主学习和协同工作,并能在解决问题的过程中优化算法思想,提升创新能力。