1、选择排序教学设计选择排序教学设计一、学习任务分析许多问题的处理过程依赖于数据的有序性。排序在生活中的应用也极为广泛,如购物网站的价格、销量排序等。而排序算法是程序设计中的重要算法,对它的学习既是对已经学过的三种程序设计结构的综合运用,又能为后续对分查找的学习作好铺垫。本节内容便是选自华东师大新版高中信息科技教材(第二册)算法与程序设计第二章第3节排序及第四章第3节排序实现等内容。对教材的两节内容进行重组合并,将理论与实践结合,以加深学生对选择排序算法的理解与运用。选择排序是一种简单直观的排序算法,选择排序的过程是不断的在待排元素中选择最大值或最小值,然后交换位置的过程,其算法是结合了双重循环和
2、擂台法找最值的知识,因此选择排序的程序代码实现,同时巩固了这两部分内容。如何让学生从具体每一趟排序中观察、分析、归纳出一般的规律,是本节课的难点。在此基础上,一步一步引导学生开展算法设计、编写、调试和完善程序,从而揭开排序算法程序实现的神秘面纱。在之前的学习中,学生已经学习了数组、分支结构、双重循环结构等基本程序概念,本节内容在此基础上,学习选择排序的原理及其代码的实现,了解选择排序的不同变式,并能够运用选择排序算法解决综合性问题。本节内容也为之后其他排序方法的学习提供了参考,为后续对分查找奠定了基础。由此,本节内容起到了承上启下的作用。结合学生学情,选择排序安排两课时完成,本节内容为第一课时
3、内容。二、学情分析本节内容的学习者是高一年级理科班的学生。在日常生活中,学生常常会接触到许多排序的例子,例如微信步数排行、游戏排行榜等,并对如何对一群杂乱的数值按规则进行排序有了基本的方法。因此,对于选择排序而言,其排序的原理相对较容易掌握。在代码编写方面,学生已经学习数组变量和擂台法的相关知识,有利用分支、循环语句编写程序解决问题的经验和一定的编程能力。在教学方法设计的过程中,考虑到该班级学生思维活跃、学习能力较强,喜欢自己实践探究来解决问题,因此在教学设计时应给予学生更多的思考及实践的机会。尽管该班学生有一定的编程经验和能力,但由于实践操作不多,对与程序的整体编写还存在困难,对现实问题转换
4、为计算机程序解决的能力需要进一步提升。具体来说,在程序实现过程中,双重循环的方式及范围对于学生而言仍然具有一定的难度,需要着重讲解整体的结构与实现,由浅入深,引导学生通过分析原理、拆分问题、组合架构的方式,循序渐进。此外,在用数组变量解决具体问题时,还存在理解上的偏差,不太理解数组的特点、作用及适用情况。因此,需要借助具体排序问题,在体验、讨论的过程中,让学生经历选择排序解决实际问题的过程,体会选择排序的价值,体会人解决问题与利用计算机解决问题的差异。 三、教学目标知识与技能1. 能描述选择排序的基本原理。 2. 能根据选择排序的原理,推测计算机执行过程,描述解决实际排序问题的过程。3. 能解
5、释和识读选择排序算法的流程图,并用VB进行编程验证。过程与方法1.通过“位置重排”游戏的排序过程,提炼、总结选择排序的原理。 2.通过实例分析,由易到难,层层剖析的方法掌握选择排序的原理,并学会用选择排序基本思想对数据进行排序,记录每一趟排序后数组中数据的变化。3.归纳选择排序的规律,迁移到流程图的识读,学会从具体到一般的归纳方法。4.对照每一轮的找最值的方法总结归纳找到其内在的规律,从而掌握选择排序的程序实现。情感态度价值观1.通过对排序原理的探究,提升对算法来源于生活的认同感,初步养成善于对生活实例进行观察和归纳的思维习惯。2.通过VB程序编写和验证,理解计算机高效准确的特性是人脑的补充和
6、延伸,体会计算思维和逻辑思维的魅力。四、教学重难点分析教学重点:选择排序算法的基本原理、过程及流程图。教学难点:选择排序的实现代码中双重循环嵌套的应用和用擂台法找最值位置。五、教学方法在教法方面,主要采用讲授法、演示法和任务驱动法进行教学。按照明确选择排序原理、分解选择排序实现步骤、步骤组合归纳、过程转换代码的流程,层层递进,一步一步推导出选择排序的实现程序。首先通过 “位置重排”游戏过程,归纳、总结选择排序的原理。其次,对于选择排序的流程图描述拆分为三个探究任务,驱动学生按照步骤一步步进行知识的自主建构,提升学生的自主探究能力和小组合作能力。最后,整合探究任务,梳理排序算法流程图,对照流程图
7、实现程序转换!在学法方面,主要采用观察思考法、练习法、小组交流法进行学习。学生通过观察第一遍选择排序的游戏过程进行思考探究,实践探究选择排序的原理。通过小组合作探究的方式,拆分问题,形成代码碎片并重组。新知学习完毕后,通过练习进行及时反馈,检验所学,促进提升。五、教学环境设计教学环境:装有Visual Basic 6.0的笔记本电脑20台,并能够与内外网相连;平板电脑20台,装载移动端课堂互动平台。教学准备:算法教学网站、学案、辅助教学的PPT、课堂练习、基本程序等。 六、教学过程教学环节教师活动学生活动设计意图新课导入【游戏导入】课前发给第一排五个学生1人一张纸,里面分别写上5个大小各异,顺
8、序打乱的10100之间的数。请五位同学协助配合老师完成一个简单的游戏,大家需要根据这五个学生拿到的数字大小,按小到大的顺序重新排位。【提问】那么,你会用怎样的方式让他们有序呢?学生一般会提出:找到5个人里拿到最小数的那个同学,请他和第一个位置上的同学交换一下位置;剩下的4个同学里再找到拿到最小值的同学,请他和第二个位置上的同学交换位置;以此类推,完成从小到大的排序。过渡:根据学生的回答,指出其中蕴含了选择法排序算法的思想。这就是今天我们要来学习的一种排序方法,叫做选择排序。 学生参与游戏,思考日常生活中的排序方式并回答。注意:学生需要一个步骤一个步骤描述清晰,如:第一步做什么,第二步做什么 通
9、过简单的游戏导入课程,开门见山。请学生说一说有哪些排序方法,发散性思考,更有助于之后各类排序算法的学习。【环节一】选择排序的原理过渡:选择排序,顾名思义,是需要在待排数组中不断选择最值。接下来继续启发:前面这种方法中,你是如何找到最小数的?在只有5个数值时是可以实现的,但是如果现在有100个数值,你能不能一眼看出哪个最大哪个最小?如果不能,我们看能不能从这5个数值的排序中寻找一下规律,让计算机程序来解决?一眼看出,其实在我们大脑了进行了快速的比较,也就是这样的:选择排序游戏演示第一趟的时候,明确第一个位置应该站的是拿最小数的同学,让第1个位置的同学和第2个位置的同学将手中的纸举高让后面同学看,
10、让拿较大数的同学坐下,拿较小数的同学站着,然后较小数的同学再与第3位同学比较,继续留下较小数的同学与第4位同学比较,全部比较完,留下拿最小数的同学与第一位同学交换位置。【提问】第一个位置排好即第一趟排序是从哪里开始进行比较的?到哪里为止?是按照什么方式进行比较的?在第一遍排序结束后,实现了怎样的效果?【小结】第一遍的排序是从第一个位置开始比较的,到最后一个为止。在比较过程中,固定第一个位置,以其元素为最小值标准,后面的元素与其进行比较,如果后面的比较小,就将小的更新为新标准,继续向后比较,重复上述过程,直到最后一个元素,找出最小的与固定的第一个位置的元素进行交换。在第一遍排序后,第一个元素是最
11、小的。过渡:那么,按照这样的方式进行比较并排序,接下来的第二遍、第三遍排序后的结果又是怎样的呢?归纳:选择排序的原理:每一次从待排序的数组中找出最小(或最大)的数,使它与第一个数相互交换。然后再在余下的数中找出最小(或最大)的数,与第二个数相互交换。以此类推,直到所有的数成为一个有序的序列。让学生体会大脑思考和计算机思考的差异,然后观察位置重排的情景演示,并回答教师的问题 。学生根据游戏演示的排序方式以及教师的讲解,学生自动完成后面4轮的排序,并完成表格,记录数据。学生观察第一遍选择排序的过程演示,明确选择排序基本的效果与方法,教师加以引导。通过简单的游戏演示一遍选择排序的过程,学生通过模仿、
12、思考等方式,完成后几遍的排序,并归纳总结选择排序的原理和过程。让学生意识到选择排序就是求最值问题,需要知道最值在数组中的位置,再进行交换;一轮比较下来需要位置交换一次。【环节二】选择排序的原理深化和流程图描述过渡:概况起来(就是重复做“定(位置)”“找(最值)”“换(元素)”),将选择排序的思想用流程图表示,出示最简单选择排序流程图,分三步解析流程图。【实践探究一】如何定位置?1.思考:上述位置重排游戏中的5个数据在计算机中如何存储?2位置重排时,一共有几个位置需要安排合适的数字?3.如果是10个数有多少个位置需安排,100个数哪?归纳规模为n的数组的排序规律。归纳:1.明确流程图的主结构是以
13、需要排序的位置为循环变量的循环结构。循环体是找最小数和交换数组元素。2.指出“在数组中寻找最小值”和“交换最小值”需要进一步求精。注意:排序趟数是指固定位置的次数,也就是寻找最值的轮数,即将最大/最小的数放到固定位置处。根据选择排序的原理进行思考,并和同伴进行交流讨论,每个小组派出一名代表发言。在问题的探索中,尝试使用流程图描述选择排序算法步骤在学习了选择排序原理的基础上,提出了三个问题,层层递进。学生通过小组探究的方式思考并探讨,集合集体的智慧解决问题。体现了教师引导、层层递进、学生自主建构知识体系的效果。从整体上把握选择排序算法结构明确排序趟数与位置的关系过渡:在每轮定好位置后,如何找到合
14、适的数字放在该位置?【实践探究二】如何找到最小值 1.思考:如何找到最小值?2. 打擂台找到最小值后,最小值在哪里?是找到最值好,还是找到最值所在的位置好?3.明确找最小值时,需要记录最小值的位置。向学生演示并解析,位置重排游戏中第一遍找最小数时,首先固定首位,让计算机认为d(1)是最小的,因此把最小数的下标k赋值1,接着让后面的d(2)到d(6)的数与d(k)进行比较,找到一个比d(k)小的数,就执行k=j。 其余4遍引导学生观察思考,归纳找出规律。引导学生梳理以下过程:(1)固定一个位置i后,首先认为该位置的元素最小,从该位置后一个元素到最后一个元素打擂台(2)定义两个变量:最小值元素的下
15、标k,来标记最小值的位置;固定位置i处数据的下一个元素下标j(3)解析k=i的含义,i是每趟排序是固定位置的,k是标记最值的位置,固定i时认为该位置的元素最小,所以k=i(4)明确这一部分的结构是循环结构+分支结构接着出示找最小数的流程图,引导学生掌握寻找最小数的流程图。注意:比较次数是指每一次判断两个数大小的次数 学生思考并回答教师的问题,观察归纳,通过比较4遍的情况,找到4遍比较的“通项公式”。观察:k和j变量的变化情况在数组中寻找最小值的求精和细化从k和j的变化中引导学生写出相应的指令。过渡:在每轮找到最小值后,如何将最小值放在合适位置?【实践探究三】何时交换数据1.思考:寻找最小值的目
16、的什么?2.观看动画梳理每次最小值应该放的位置和实际放的位置有何关系?3.引导学生思考利用分支结构实现数据交换注意:交换次数则是指满足条件后交换的次数,该次数最小为0。思考问题,观察位置重排动画,填写表格,找出交换数据的条件,完善流程图中数据交换部分交换数据的求精和细化通过留白来培养学生的读图与归纳能力。【整体再感知】引导学生对定位置、找最值、换元素三部分细化的流程图整合,让其从整体上再次感受选择排序的双重循环结构。听课、思考从整体上把握梳理知识点,将已有的流程图进行拼合,形成基本的选择排序架构。【环节三】选择排序程序初体验过渡:在经过了定、找、换之后,我们了解了选择排序的原理,并学会了流程图
17、描述,那么,怎样用VB编写出选择排序的代码呢?【自主探究】对照流程图和算法网站的动画演示思考并小组探讨以下问题:(1)5个数组元素一共要进行固定4个位置进行重排,也就是4遍排序,那么应该用什么语句体现?(2)在第i遍排序中,也要经过很多次的查找,那么此时又应该怎样实现不断查找?(提示:从哪一个元素开始比较,到哪一个元素停止比较)(3)用什么语句实现数组元素的大小比较?(4)何时及怎样实现元素的交换?然后根据所给的代码框架自主实践,打开“工程1.vbp”工程文件,将选择排序代码补充完整,使其能够正常运行。【小结】选择排序的格式For i=_to _ 选择排序定位置的实现(外循环)_默认i处为最值
18、For j=_ to _ 在每一遍的排序中,都要从i后的元素一一比较(内循环)If a(j) a(k) Then _更新最值下标End IfNext jIf _ Then _交换i和k处元素End IfNext i【教师巡查指导】【小结】排序代码如下For i=1 to 4 k = i For j=i+1 to 5 If a(j)a(k) Then k = j End If Next jIf ki Then t=a(i):a(i)=a(k):a(k)=t End IfNext i再次解释内外循环变量的值的变化规律,及如何使用数组下标来进行求最值位置的想法。让学生拓展思考解决三个问题:1、对10
19、0个数据进行排序,程序怎么改?2、如何让数据从大到小排序?3、n个数据通过选择排序变为有序,这中间一共要比较几次数据?【归纳小结】强调选择排序是分为非递增序和非递减,选择排序程序是用双重For循环来实现,外层For循环控制是第几趟排序,也就是有几个位置需要重排 ,内层For循环控制找最值的范围。由于程序默认待排序位置处为最小值,进行找最值的范围会发生变化(每趟从待排处下一个开始),故内层For循环变量的下界由外层循环变量决定。思考问题,对照流程图,自主完成流程图向程序语言的转换 根据所给程序进行思考实践,将选择排序代码补充完整。上机运行结合具体的动画演示选择排序的过程,利用动画可反复查看和交互
20、的特点帮助不同需需求的学生学习。在基本架构的基础上,将VB代码融入其中,完成选择排序的基本程序,并对知识点进行总结归纳,使学生对于选择排序的程序实现有更清晰明确的理解。鼓励学生试着上机调试,不要怕出错。【环节四】选择排序的练习应用(备用)过渡:在学习了选择排序原理及其基本代码之后,如果将其运用到具体问题中,又是怎样体现的呢?【课堂练习】完成问卷星平台上的练习题。【教师巡查指导】【简要评价反馈】根据学生在练习中遇到的问题进行简单讲解。完成问卷星平台上的练习并提交。在学习了原理与基本代码的基础上,用练习题目进行简单的程序运算,进一步巩固提升。学生在提交作业后能够看到自己的分数以及题目解析。教师也能
21、通过平台查看学生的分数,实现了学生知识点掌握情况的实时反馈课堂总结【师生共同小结】本节课我们学习了选择排序的原理及其简单程序实现。选择排序的原理就是固定每一个位置,通过与其之后的元素逐一比较,找到合适的数据交换,不断重复直至有序,也就是定、找、换三步。定位置决定了找的起点,所以是外层循环,找最小值是逐一比较,因此也需要循环,找好之后,才能决定是否交换。通过一步步的分析,我们也实现了双层循环嵌套的选择排序基本程序。当我们掌握了选择排序的程序之后,改变一个符号,改变一个数字,就可以让结果产新的变化,这就是程序和算法带给我们的全新体验。希望同学们能感受到程序的灵活性,愿意用程序去解决生活中的问题。课后请学生思考一个问题,n个数据通过选择排序而变得有序,需要交换几次数据?和教师一起整理总结选择排序的知识点:选择法排序通过遍历记录下最值的位置,将最值位置处元素和待排元素进行交换。和学生一起梳理总结本节课的知识点,并展望之后要学习的内容,使得课堂更加完整。七、板书设计 选择排序1.选择排序的原理定位置、找最值、换元素排序趟数;n-1比较次数:n(n-1)/22.选择排序的程序
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1