您好,欢迎访问三七文档
《冒泡排序法》教学设计一.教材分析本节内容选自浙江教育出版社《算法与程序设计》第五章第三节。本节课主要讲解冒泡排序思想、算法以及编程思路,下节课让学生进行上机实践。排序算法是使用频率最高的算法之一,而冒泡排序是其中一种很典型而且相对简单的方法。它的学习同时为后面的选择排序做了铺垫。通过冒泡实例的学习,可以提高学生的程序设计能力,为今后在算法与程序设计方面的进一步研究和学习打下基础。二.学习者分析通过一段时间的学习,同学们已经了解了程序设计的基本知识,掌握了数组、循环语句等C语言基础知识,具备了一定的编程能力和编程思想。这个阶段的学生,思想活跃,学会了利用自然语言和流程图描述解决问题的算法,对排序中碰到的循环结构的流程图和循环语句以及数组变量的使用方法都已有基础。但由于实践比较少,对以前知识的遗忘率比较高,程序设计思想比较弱。因此由浅入深,逐步引导比较适合学生的学习特征。三.教学目标1.知识目标:(1)掌握冒泡排序的原理,能读懂冒泡排序的算法;(2)掌握冒泡排序法的基本过程,理解冒泡排序法的C语言程序;2.能力目标:(1)学会使用冒泡排序思想设计解决简单排序问题的算法;(2)进一步理解程序设计的基本方法,体会程序设计在现实中的作用;3.情感目标:培养学生分析问题、发现规律、解决问题的能力;培养学生良好的程序书写习惯;四.教学重难点教学重点:冒泡排序法的基本思想和实现过程。教学难点:用C语言编写冒泡排序法的程序、冒泡排序的思想。五.教学方法与策略本节课将采用讲解法、演示法、讨论合作、分析归纳法引导学生参与思考,用逐步求精的方式降低学生的理解难度,化抽象为具体,由特殊到一般,有效地突出重点突破难点。六.教学资源教材、扑克牌、黑板等。七.教学过程22教学环节教师活动学生活动设计意图时间创设情境,导入新课情景案例:扑克,排序教师:拿出五张不同数字的扑克,贴在黑板上,让同学们进行排序;(同学们排序很快,但是当数据多时会很麻烦,效率很低)思考:如何让计算机进行排序?【导入让计算机排序的方法】跟随教师思路,进入情景思考问题导入学习情景1分钟讲授新课1.冒泡排序法教师:它的名字非常生动形象,之所以称为冒泡排序因为它的原理与冒泡过程相似。这里的冒泡是一种排序思想,根据它还能衍生出很多种方法,今天学习一中最简单常用的,从前往后的冒泡排序。2.冒泡排序法原理对原始数据,按从前往后的方向进行多次扫描(每次扫描称为一趟),当发现相邻两个数据的次序与排序要求的大小次序不符合时,就将这两个数据进行互换。这样,较小的数据就会逐个向前移动,好像气泡向上浮起一样。【教师板书原理】3.冒泡排序法算法(1)首先比较第一个和第二个数据,将其中较小的数据放到第一个位置,较大的放到第二个位置;(2)然后比较第二个和第三个数据,仍将较大放到后一个位置。依此类推,直到比较第n-1和第n个数据。(这样,就将待排序序列中的最大的一个放到了第n个数据,这个过程称为第一趟排序)(3)面对前n-1个数据重复(1)(2)过理解思考引导学生认识冒泡排序法3分钟4.5分钟33程(不用考虑第n个数据,因为它已经是最大的了),又将次大的数据放到了第n-1个位置。重复这个过程,直到循环n-1次为止。【教师板书算法,强调重点,引导学生理解冒泡思想】4.演示排序过程(1)以例题为例进行算法演示:例题1:一组学生的成绩存放在数组a[]中,a[5]={96,89,85,64,72},对数据按从小到大的顺序进行排序。排序过程:趟数数据第一趟8985647296第二趟8564728996第三趟6472858996第四趟6472858996(2)提出思考问题,并请同学回答:问题:5个元素,排序进行趟;每趟比较次数?n个元素,排序进行趟;每趟比较次数?5.编写C语言程序思考问题:如何将算法实现为程序?教师:引导学生思考排序过程如何用C语言实现。需要完成的工作:数据存放?——数组inta[5];交换数据?——判断用if语句,设临时中间变量tmp;循环?——两层循环,用for语句,for(inti=0;i4;i++);for(intj=0;j4-i;j++);}思考并回答问题思考问题和教师一起回顾观察排序过程使学生熟悉冒泡排序过程分解问题、逐步写出C语言程序4分钟2分钟3分钟44课堂小结要点总结:1.冒泡排序法原理2.冒泡排序的算法3.冒泡排序法C语言程序思想思考回顾课堂重点内容回顾1分钟布置作业作业:(1)理解冒泡排序程序,尝试独立写出完整程序;(2)做书上5.3课后习题;完成作业扩展思维、巩固提高八.教学评价学生学习效果评价表评价内容完成体现水平不能勉强可以课堂行为表现评价1、是否认真听讲、不溜号?2、是否积极参与课堂发言、讨论?知识掌握水平评价1、是否理解冒泡排序的原理?2、能否读懂冒泡排序的算法?3、能否独立完成对数据的冒泡排序?4、编程思路是否清晰?作业完成情况评价1、是否能在教师提示下完成冒泡排序程序的编写?2、是否能独立完成作业?学习反思九.教学流程图55开始导入新课:扑克排序参与思考思考记录讲解冒泡排序原理,板书原理讲解冒泡排序法算法,板书思考理解思考理解由例题演示冒泡排序过程思考讨论:5个元素及n个是的排序趟数以及每趟的比较次数;提问,总结思考教师辅导引导学生思考如何编写C语言程序总结学习内容布置作业结束66十.板书设计冒泡排序法一、原理【原理】二、算法【算法】例1有一组数据{85,72,96,64,89}.,要求进行冒泡排序第一趟8985647296第二趟8564728996第三趟6472858996第四趟6472858996三、C语言程序数据存放?——数组inta[5]交换数据?——判断用if语句,设临时中间变量tmp循环?——两层循环,for(inti=0;i4;i++);for(intj=0;j4-j;j++){}比较次数4321
本文标题:冒泡排序法教学设计
链接地址:https://www.777doc.com/doc-1729804 .html