高中信息技术_冒泡排序算法教学设计学情分析教材分析课后反思
- 格式:doc
- 大小:107.71 KB
- 文档页数:18
课题排序算法实现——冒泡法排序【教学目标】知识与技能1、掌握冒泡法排序的基本思路。
2、通过程序的实现进一步理解冒泡排序的意义和特点。
3、提高学生综合运用各种基本语句的能力。
过程与方法1、通过实例,体会冒泡法排序的基本过程。
2 、体验探究学习的过程,获得成功学习的快乐。
情感态度与价值观1 、感受利用程序来解决问题的全过程,增强利用程序解决问题的自信心。
2 、激发学生进一步学习算法和VB程序的热情。
【教学重点难点】冒泡过程的数学模型,一轮冒泡的分解,一轮冒泡的程序实现。
【教学方法】提问启发,任务驱动,讨论探究,循序渐进。
【教学思路】教师线索:引入问题——分析冒泡算法数学模型——指导程序实现——总结提升学生线索:获得情感需求——思考实现方法——分解步骤逐步实现程序——总结提高设计思想冒泡程序的实现是本章的一个教学重点和也是教学难点,如何设计好教学过程,使学生通过本堂课的学习掌握其程序的代码实现,并从中领悟出程序设计的基本方法和步骤,是我在教学设计时重点思考的内容。
一个好的教学设计应该遵循建构主义的思想,力主在学生原有知识的基础上,根据学生认知发展的规律,逐步递增新知识内容,使新旧知识相互作用,重组认知结构。
因此在设计时,本着由简入烦,由具体到抽象,由已知到未知的思想,循序渐进,有步骤、有计划地展开教学过程。
导课环节以NBA数据表的处理引入排序在日常生活中的实际应用,激发学生学习的兴趣;整个程序包括程序的输入、冒泡算法的程序实现、输出部分。
激发学生的原有知识,引导学生自主完成输入、输出部分,让学生获得成就感和自信心。
冒泡算法的程序实现是本堂的重点内容,以4个数的排序为例展开教学,使问题尽可能的简单化和具体化,这是为了适应现阶段学生的认识水平,放低难度,使大部分学生都能完成程序的编写,也符合认知的就近原则;在交换代码的实现中,引入第三个杯子实现两个杯子内液体的互换过程为例,以易于学生理解的方式,促进学生的选择性知觉,也体现了由具体到抽象的设计思想;最后,通过拓展提高练习,有效实现分层教学,加深了学生对冒泡实现的理解,并通过它可以抽象出n个数进行冒泡排序的实现,从而达成本节课的教学目的,使学生完全掌握冒泡排序的程序实现。
“用循环的思想解决问题—冒泡排序”教学设计【学习目标】1 熟练掌握for循环嵌套2 理解冒泡排序的思想3 学会用程序实现排序算法【重点】用循环嵌套的思想解决问题【难点】冒泡排序的算法一、回顾上节课所学的循环案例(1)、Sum=1!+2!+3!…+i!…+n!3用递归函数实现For i=1 to ns=s+f(i)Next i递归函数function 函数名(变量as类型)as类型Function f(n As Integer) As Integer If n = 0 Thenf = 1Elsef = n * f(n - 1)End IfEnd Function(2)打印字符图形二、循环思想在冒泡中的应用6.8 89 16.8 72.8 120 17.2 63 9.81在这些数据中,先找出最大值2在剩余的数中,在找出最大值3重复2,一直到剩下一个数,即完成了排序——如何求n个数最大值?a(1) a(2) a(3) a(4) ……a(n)首先a(1) a(2)比较,最大值存放在a(2)中然后a(2)a(3),比较,最大值放在a(3)中以此类推,一直到a(n-1)和a(n)比较,最大值放在a(n)中推论:利用a(i)>a(i+1)为判断条件,当条件成立,两个数交换值,否则进行下一轮比较如下图所示:课堂实践18名学生分别代表a(1)……a(8),分别存储6.8 89 16.8 72.8 120 17.2 63 9.8以其他学生为导演,展示两两相比,交换的过程,如图研究第i轮时:总结冒泡排序的思路:课堂实践2:完善“冒泡”程序,调试并运行附参考代码:Private Sub Command1_Click() '选择排序——从小到大排序Text1.Text = ""Text2.Text = ""Dim i, j As IntegerDim t, a(1 To 100) As Single '定义数组,相当于定义a(1) a(2)……a(10)n = InputBox("请输入n的值", "输入n", "")For i = 1 To n Step 1a(i) = InputBox("请输入第" & i & "个数字", "标题_输入数据", "") '输入数据到数组中Next iFor i = 1 To nText1.Text = Text1.Text & a(i) & " " '把输入的数据串起来,在text1.text输出Next i'冒泡排序For i = 1 To n-1For j = 1 To n - iIf a(j) > a(j + 1) Thent = a(j)a(j) = a(j + 1)a(j + 1) = tEnd IfNext jNext i'输出数据For i = 1 To nText2.Text = Text2.Text & a(i) & " " '把输入的数据串起来,在text1.text输出Next iEnd Sub三、参考资料1.Dim 变量名 as 变量类型(integer、long、single、double、string、boolean、date)如:dim x as ingeger 定义整形的变量xDim x,y,z as double 定义双精度实数变量 x y z2.If 条件 then 语句1 else 语句2If 条件 then语句1语句2……语句nEndif1、 If 条件表达式then 语句1 else语句22、If 条件表达式then语句23例如:求两个数的最大值(设定 a b max 三个single 类型的变量)4★★★ For i=初始值 to 终点值 step 步长黑箱子Next i循环变量i初始值向终点值进军,每一步走一个步长For i=1 to 100 step 1(可以省略)黑箱子Next iFor i=100 to 19 step -10黑箱子Next i5、Do while 条件表达式语句块6.★★★Dim s(1 To 8) As String '定义字符串数组s(1)、s(2)……s(8),8个变量★★★New_password=””new_password = new_password + s(i) '把新字符串到新密码上new_password = new_password + s(i)学情分析学生已经学过循环、选择、顺序结构,能够编写调试简单的vb程序,能够根据生活具体需要,设计简单算法,也初步学会用两重循环、三重循环的思想来解决问题,但学生只是基于半成品的程序近似于填空的方式进行实践,距离独立的完整的用代码实现生活中的问题,还有一段距离,所以课堂上还是设计简单一点的填空似的调试,把算法的各个重要环节跟学生讲清楚效果分析一堂课下来,对于冒泡排序的思想,学生基本上都能掌握,但具体操作实践,还有写欠缺,其中反映在下面几个方面:有一小部分同学课堂上听会了,眼高手低,不能按时完成实践任务;有些学生语法不熟,出现书写语法的错误;还有极个别学生算法未能真正掌握。
高一冒泡排序教学设计基本路线:数组-排序-冒泡排序【冒泡排序原理--流程图-算法优化】-小结一、教材分析:本节内容选自浙江教育出版社《算法与程序设计》第五章第三节。
本节课主要讲解冒泡排序思想。
排序算法是使用频率最高的算法之一,而冒泡排序是其中一种很典型而且相对简单的方法。
它的学习同时为后面的选择排序做了铺垫。
教学目标知识目标:掌握冒泡排序的原理;掌握冒泡排序的流程图;能力目标:学会使用冒泡排序思想设计解决简单排序问题的算法;进一步理解程序设计的基本方法,体会程序设计在现实中的作用;进一步学习流程框图的使用。
情感目标:增强分析问题、发现规律的能力,激发学习热情;学情分析通过前面的学习,学生已经了解vb算法设计的基本知识,学会利用自然语言和流程图描述解决问题的算法,对排序中循环语句以有了一定的基础。
但数组变量的使用方法尚未接触,程序设计思想比较弱,在实际生活中往往忽视运用排序算法来处理实际问题,这就要求学生通过本节课的学习,学会运用冒泡排序算法来处理实际问题,并为以后学习其它排序算法打下基础。
二、重点难点重点:理解冒泡排序原理及它的流程图难点:理解冒泡排序中的遍、次等概念(即对变量使用的理解)以及用流程图描述冒泡排序的过程三、教学策略与手段采用讲解法、演示法、分析归纳法引导学生参与思考,用逐步求精的方式降低学生的理解难度,化抽象为具体,由特殊到一般,有效地突出重点、突破难点。
四、课前准备1.教师的教学准备:冒泡排序的课件、学案、素材2.教学环境的设计与布置:多媒体网络教室、电子白板、多媒体教学平台等五、教学过程课前学习【设计意图】学生能自己学会的不讲。
排序数组知识点相对简单,由学生自学完成,之前的知识点学生可能会有所遗忘,通过这个方式让学生回顾。
冒泡排序算法原理比较容易也由学生自学完成。
已给出的素材,完成学案关于数组、冒泡排序和循环结构的基本模式的相关部分的内容,。
请同学们学习学习网站上的课前学习,并完成学案的相关部分的内容。
高中信息技术教科版选修1第三章第4-1课《冒泡法排序算法》省级名师优质课教案比赛获奖教案示范课教案公开课教
案
【省级名师教案】
1教学目标
1.知识与技能
(1)理解冒泡排序算法的原理和流程图
(2)学会编写程序实现算法
(3)了解自顶向下,逐步求精的程序设计方法
2.过程与方法
(1)通过对算法的分析和细化理解冒泡排序算法的思想,构造程序
(2)通过算法的设计与实现,了解自顶向下、逐步求精的程序设计方法
3.情感态度与价值观目标
(1)通过对问题的层层剖析,理清思路,培养学生严谨缜密的思考习惯
(2)通过问题解决体会由直观到抽象跨越的程序设计过程
2学情分析
(1)有一定的逻辑思维能力,具备一定的提出、思考和解决问题的能力,对于一个问题,能应用学过的知识进行简单分析。
(2)已经学习了程序设计的三种基本结构以及数组变量的使用,但由于实践少,知识连贯和综合应用能力不够。
表现为能理解设计算法的要求,但找不到解决问题的思路,独立编写程序就犯难,除了记忆性地罗列一些语句外,不知从何下手,不能形成明确的编程思路,难以完成直观到抽象的跨越。
3重点难点
1.教学重点
冒泡排序算法的基本思想和实现过程。
2.教学难点
构造程序实现冒泡排序算法。
4教学过程
教学活动
1【导入】引入本节主题。
《冒泡法排序算法》教学设计作者:课时:共2课时,本节为第1课时,理论课【适用年级】高二年级【所用教材】教科版《算法与程序设计》【教学目标】1、知识与技能:让学生了解排序及冒泡法排序的概念;掌握冒泡排序算法思想并学会用冒泡法对数据排序;初步掌握冒泡法排序的程序实现。
2、过程与方法:通过对冒泡排序过程和程序实现过程的分析,初步掌握用冒泡排序法来解决简单的排序问题。
3、情感目标:通过对冒泡排序算法过程的分析,培养学生设计程序解决实际问题的能力,激发学生对程序设计的兴趣,形成积极主动学习信息技术的态度。
【教学重点】1、冒泡法排序原理;2、运用冒泡法排序解决实际问题。
【教学难点】1、理解冒泡法排序中的轮与次等概念;2、如何用程序实现冒泡法排序算法【教学过程】一、创设情境,导入新课体验纸牌排序:先让一位同学上台将给定顺序的几张纸牌从小到大排列,完成后让其说一说进行排列的思路。
象这种解决问题的方法和步骤就是今天我们要学习的内容:冒泡法排序算法,从而引入课题。
设计意图:从生活实际入手,让学生通过体验排序,谈思路,知道冒泡法排序算法离我们并不远,也并不神秘,从而接进与学生的距离。
二、展示学习目标设计意图:让学生做到学习时心中有数。
三、新课开始(一)、剖析课题,初识冒泡法排序算法1、何谓算法?(回顾)设计意图:对前面所学知识回顾,进行情感教育,引导学生学习时只有温故知新,才能不断长进。
2、何谓排序?(自学)设计意图:本知识比较简单,学生一看就懂,让学生共同回答,目的是给学生学习的信心,并让学生知道,排序在计算机编程中使用非常频繁,并且排序算法有多种,为后面学习做准备。
3、何谓冒泡法排序?(自学)设计意图:讲之前先说明冒泡法排序在排序算法中的地位,是一种非常经典的排序算法,本知识也不难,学生一看就懂,也让学生共同回答,接着提出问题“如何将相邻元素进行比较和交换呢?”,让学生思考,从而转入下一个问题的学习。
(二)、冒泡法排序的思想(大声朗读)1、冒泡法排序的思想:从最下面(或最后面)一个元素(数据)开始,依次比较相邻的两个元素,较小的元素像气泡一样上浮,较大的元素下沉,第一轮找出最小值,第二轮找出次小值,依次类推……直接展示给学生,并让学生大声朗读。
冒泡排序教学设计、教材分析本节内容选自浙江教育出版社《算法与程序设计》第二章第三节和第五章第三节。
以第二章内容为主,下节课让学生进行第五章编写程序及上机实践。
《课程标准》指出《算法与程序设计》模块教学主要目的是“使学生进一步体验算法思想,了解算法和程序设计在解决问题过程中的地位和作用;能从简单问题出发,设计解决问题的算法,并能初步使用一种程序设计语言编制程序实现算法解决问题。
”冒泡排序的算法及程序实现就很好地较全面地体现了这点。
排序算法是使用频率最高的算法之一,而冒泡排序是其中一种很典型而且相对简单的方法。
它的学习同时为后面的选择排序做了铺垫。
通过冒泡实例的学习,可以提高学生的程序设计能力,为今后在算法与程序设计方面的进一步研究和学习打下基础。
二、学情分析通过前面的学习,同学们已经初步了解了算法设计的基本知识,学会了利用自然语言和流程图描述解决问题的算法,对排序中碰到的循环结构的流程图和循环语句以及数组变量的使用方法都已有基础。
但由于实践比较少,对以前知识的遗忘率比较高,画流程图还不太熟练,程序设计思想比较弱。
因此由浅入深,逐步引导比较适合学生的口味。
三、教学目标知识目标:掌握冒泡排序的原理;理解冒泡排序的流程图;编写冒泡排序的主要代码;能力目标:学会使用冒泡排序思想设计解决简单排序问题的算法;进一步理解程序设计的基本方法,体会程序设计在现实中的作用;情感目标:培养学生分析问题、发现规律的能力,激发学生学习热情;培养良好的程序书写习惯;四、重点难点重点:理解冒泡排序原理及它的流程图难点:理解冒泡排序中的遍、次等概念(即对变量使用的理解)五、课前准备教师的教学准备:冒泡排序的课件九、知识结构或板书设计用课件显示:1、各个流程图;2、主要参考代码十、教学反思(教学后补充)。
一.教材分析
本节课主要讲冒泡排序思想,冒泡排序是排序算法中一种相对典型、基础的方法。
通过冒泡排序可以提高学生的程序设计能力,为之后程序设计做铺垫。
二.学习者分析
学生已经了解了程序设计的基本知识。
掌握了循环语句、数组等python语言基础知识,有一定编程能力和编程思想。
三.教学目标
1.知识与技能
掌握冒泡排序原理,能读懂冒泡排序
2.过程与方法
利用冒泡排序解决问题
3.情感态度价值观
培养学生的信息素养、问题分析能力
四.教学重难点
重点:理解冒泡排序的过程
难点:理解冒泡排序的两层循环作用
五.教学过程。
算法与算法描述教学设计:一、激趣引入1、出示过河游戏,要求学生给出解决此问题的办法。
2、出示问题2:量水问题。
要求学生积极参与,发表观点,说出解决的办法。
运用学生感兴趣的事物,激发学生的学习兴趣,从而引入新课。
二、新课讲解1、算法的概念通过总结两个实例的解决过程,引入算法的概念。
√ 算法是解决问题的方法和步骤。
√ 算法是在有限步骤内求解某一问题所使用的一组定义明确的规则。
2、算法的特征通过过河问题的算法分析,以及高一数学模块的两个例题,归纳出算法的5个特征:有序性,有穷性,可行性,输入和输出特征。
学生思考和分析范例,领会算法的特征。
巩固学生对算法的理解。
练习:下列关于算法,说法错误的是()A. 做米饭的算法是刷锅,淘米,添水,加热。
B. 审题,解答,检验是解数学题的算法。
C. 算法可以解决s=1+2+3+...... 这一问题。
D. 算法要按步进行,每步的操作都是有意义的回顾实例,寻找规律,共同总结。
调动学生对生活的认识和体会,融入对算法的学习和理解。
3、算法的表示(一)自然语言利用过河问题实例,细致分析算法,介绍自然语言描述算法的优缺点。
自然语言具有符合表达习惯、易于理解,但书写繁琐、不易修改等特点,为后续其他描述方法作铺垫。
(二)流程图总结自然语言的优缺点,引入流程图的表示方法,介绍流程图的基本结构,分析其组成元素及各框图含义。
提出问题:“求任意两个数中较大的数的算法”积极探索、分析,运用流程图描述该问题的算法。
对比学习,加深对各类算法设计描述方法的认识,培养学生设计算法的能力。
流程图如下:(三)伪代码伪代码是介于自然语言和计算机程序语言之间的一种算法描述。
使用伪代码描述算法没有严格的语法控制,书写格式也比较自由,只要把意思表达清楚就可以了。
表示关键词的语句一般用英文单词,其他语句可以用英文语句,也可以用汉语语句。
例:任意两个数中较大的数的算法input a,bmaxif a>=b thenmax=aelsemax=bprint “最大数是”:max三、课堂总结见ppt课件四、随堂练习设计一个算法,求出所有100以内能被3整除的正整数。
教学设计学情分析学习对象是高一的学生,通过初中的学习,具备一定的知识积累,能够对相关的问题进行思索、分析和解决,但在传统的教育影响下,不善于思考、发现问题,缺乏合作协作学习能力,同时对算法的相关概念比较陌生,基础相对欠缺。
在《数学》必修3中“算法”部分的学习更驱使学生有尝试的欲望,同时也对“程序”具有好奇心。
本节课通过程序的演示让学生领悟程序的作用,进而知道算法的设计的重要性,学会分析问题,能自己进行设计算法。
效果分析这节课的教学设计很好的完成了自己的预期目的。
在这节课中我转变以前的教学观念,把课堂还给学生,引导学生自主学习、合作学习、探究学习,引导学生积极参与、独立思考,调动起学生的良好情绪,最大限度激发学生主动性。
如何才能提高课堂教学的有效性,我在本节课中的教学中主要运用了以下几种方法。
一、创设智力动画情境,激发学生的学习兴趣“兴趣是最好的老师”,这句话饱含深刻的道理。
当学生对知识有浓厚兴趣时就会有欲求明白的强烈渴望,就会全身心的投入到所感兴趣的学习中。
在算法的介绍中,我就是以一个智力动画和生活问题为例,让学生感受到算法是无处不在的,而不是多么深奥。
二、鼓励学生主动参与,投身其中要使课堂教学真正成为高效课堂,必须着力唤醒学生的主体意识,让学生主动地参与教学活动。
在出现问题时,我一般都会让学生在小组内探究,通过合作学习,使学生主体性得到发展。
答案的获得都是在学生的回答之上得到。
三、课堂练习穿插其中,提高学生对知识的吸收率要想达到教学目标,必须对教学重难点进行相应的课堂检测练习,没有检测也不会知道学生对知识掌握的程度。
本节课中我对流程图的描述算法,通过一道普通简单的数学题,来让学生用流程图描述算法。
在大部分同学完成后,找一个有代表性的同学上黑板画出,大家一起来分析对错,从而让所有同学都知道了自己的问题所在,达到了进一步巩固的效果。
当然,在本节课中也存在一些问题以后需要改进。
首先,在授课过程中,和学生的互动还是不够从分,学生讨论、练习过程中,没有观察学生的掌握程度。
《冒泡排序》教学案例一、教学设计思想采用“问题解决教学”进行教学设计。
教学设计思路明确,按照“引入--分析--设计--画流程图-实践练习――交流评价--作业”的流程完成教学过程的设计。
二、教材分析本节内容选自浙江教育出版社《算法与程序设计》第二章第三节和第五章第三节。
排序算法是使用频率最高的算法之一,而冒泡排序是其中一种很典型而且相对简单的方法。
它的学习同时为后面的选择排序做了铺垫。
通过冒泡实例的学习,可以提高学生的程序设计能力,为今后在算法与程序设计方面的进一步研究和学习打下基础。
三、学情分析学生已经了解了算法设计的基本知识,已具备了利用二重循环解决问题的能力,学会了用数组处理数据,即使用循环对数组中数据进行输入、输出以及2个变量的值的交换。
四、教学目标知识与技能(1)理解冒泡排序的原理和流程图流程图(2) 初步掌握冒泡排序的主要代码过程与方法(1)学会使用冒泡排序思想设计解决简单排序问题的算法(2)进一步理解程序设计的基本方法,体会程序设计在现实中的作用情感态度价值观(1)培养学生分析问题、发现规律的能力,激发学生学习热情(2)培养良好的程序书写习惯五、教学目标教学重点:理解冒泡排序的流程图及代码实现教学难点:理解冒泡排序中的遍、次等概念(即对变量使用的理解)六、教学准备1.教师的教学准备:扑克牌,冒泡排序的课件,半成品程序2.教学环境的设计与布置:多媒体网络教室、投影机、多媒体教学平台七、教学过程教学阶段教师活动学生活动对学生学习过程的观察和考查课程导入(2分钟)教师:拿出五张不同数字的扑克,贴在黑板上,让同学们进行排序(从小到大)。
通过扑克牌的展示引入排序的概念:通过调整位置,把杂乱无章的数据变为有序的数据。
排序的方法很多,这节课我们来学习其中一种比较典型的排序方法――冒泡排序跟随教师思路,进入情景通过参与游戏,激发学生对本课内容的兴趣。
冒泡排序思想(3分钟)展示小鱼吐泡泡flash,让学生根据字面意思想像一下“冒泡”,并说说“冒泡”是一个怎么样的情景。
《算法和算法的描述》教学设计一、教材分析:本节课是高中信息技术选修模块一《算法与程序设计》第一章第二节的内容,主要是一些概念和理论,而算法的概念和理论都太抽象,讲起来非常的枯燥乏味,那么就要把这些抽象的东西变得通俗易懂,使学生能轻松而又愉快的接受并理解。
二、学生分析:在数学中已学过程序设计模块,对算法有一定的初步基础,学习了结构语言的三种结构,并能编写一些较简单的程序。
但是学生对结构的掌握并不是很熟练,他们对编程存在一定的畏惧情绪。
三、教学目标:1.知识技能:(1)理解算法的概念;(2)能初步利用算法解决简单的问题。
2.情感领域:培养学生的理论联系实际能力和动手操作能力。
3.能力发展:培养学生自我探索信息,高效获取信息、分析评价信息、处理运用信息、表达呈现信息的能力,通过作品的制作、反思和评价,进一步提高其信息素养。
引导学生对编程的兴趣,理解算法的概念和如何科学合理的选择和设计算法,激发学生的编程兴趣,为程序设计打好基础。
四、教学重点:1、算法的概念2、算法的特征五、教学难点:3、算法的描述六、教学手段:与学生进行互动探讨式教学,以趣味问题激发学生探索解决问题的兴趣,以故事事例引导学生一步步的思考,从而总结出算法的概念,以及如何设计和选择算法,充分调动学生的主观能动性和探究学习能力。
七、教学过程:八、教学评价1、贯彻新课标的理念,利用问题导学法教学,整个教学思路清晰,教学设计环环相扣。
2、案例的设计结合教学内容与学生的实际,能够很好地引导学生对学生重点与难点的把握。
3、举例简单明了,容易理解,并能够达到预定的教学效果。
4、算法的描述作为本节课的难点内容,,学生基本能够掌握与消化。
九、教学反思1、本节课的教学设计充分考虑到学生在数学模块中对算法已进行了初步的学习,故对本节课的内容和数学模块中的算法进行了比较详细的研究,确定了本节的教学重点与难点,从这节课的教学过程来看,把握是比较到位的。
对于算法的选择,在数学中并没有过于深入的讲解,本节课通过问题三和问题四的设置,可以让学生对此有较深入的理解,从课堂效果上来看,基本达到预定目标。
《冒泡排序》教学案一、学习任务分析1. 学习内容分析本节内容选自浙教版高中《算法与程序设计》第二章第3节内容。
本节课将理论与实践结合,以加深学生对冒泡排序算法的理解与运用。
主要内容包括冒泡排序算法的原理及其代码实现,了解冒泡排序的变式,并利用冒泡排序方法解决综合性问题。
在之前的学习中,已经学习了数组、选择结构、双重循环结构等基本程序概念,本节内容在此基础上,学习冒泡排序的原理及其代码的实现,了解冒泡排序的不同变式,并能够运用冒泡排序算法解决综合性问题。
而本节内容也为之后选择排序、插入排序、基数排序等排序的学习提供了参考。
由此,本节内容起到了承上启下的作用。
结合学生学情,冒泡排序安排三课时完成,本节内容为第一课时内容。
2. 教学重难点分析教学重点:理解冒泡排序的原理并掌握其基本实现代码。
教学难点:理解双重循环嵌套的运用方式,掌握冒泡排序基本实现代码,并能够进行简单的冒泡排序运算。
二、学习者分析1.学习者已有的知识与技能水平本节内容的学习者是高二年级的学生。
在日常生活中,学生常常会接触到许多排序的例子,例如微信步数排行、做操时身高排序等,并对如何对一群杂乱的数值按规则进行排序有了基本的方法。
因此,对于冒泡排序而言,其排序的原理应该是较容易掌握的。
在代码编写方面,学生已经掌握了变量、数组等基本概念与赋值、选择、循环等基本结构,已经具备了一定的编程能力。
在教学方法设计的过程中,考虑到高二的学生好奇心强,更喜欢自己实践探究来解决问题,因此在教学设计时应给予学生更多的思考及实践的时间。
2.学习者在学习本课中可能遇到的问题虽然学生已经学习了VB编程中的基本概念与结构,但由于实践操作不多,对与程序的整体编写还存在困难。
在教学过程中,需要由浅入深,引导学生通过分析原理、拆分问题、组合架构的方式,循序渐进。
在冒泡排序的学习中,冒泡排序原理相对较为容易理解,但是程序实现中,双重循环的方式及范围对于学生而言仍然具有一定的难度,因此需要着重讲解整体的结构与实现。
《冒泡排序算法思想》教学反思
潘美康本节课的内容是解决VB选考知识点的一道难关:①语句格式稍显复杂;②功能理解有点难度,也就是不能很好地掌握它的执行流程;③解决问题时,不能快速地结合实际情况运用算法思想解决问题”。
为此,本节课主要通过让学生以参与游戏的方式理解冒泡排序的含义。
(1)课程中先让同学们思考,为什么要排序?排序的意义是什么?通过播放几种同学们生活中的照片,引导学生们说出为了更好的管理和查找数据。
进而提高学生对本堂课的学习兴趣。
(2)采用机器人游戏,请同学们计算机的思维方式来给他们进行升序排序。
引入本堂课的主题。
(3)通过观察视频文档展现的冒泡排序的过程,再结合任务自主探究以及教师讲解的方式,让学生明白冒泡排序的含义以及排序的方式,解决本堂课的重难点问题。
(4)课后的作业任务与课程内容相呼应,让学生掌握一类问题的解决方法。
本节课还有很多不足的地方,例如:1.在教学的过程当中,教师的语速较快并且在设置问题后,留给学生思考问题的时间过少,这多少会给学生造成压迫感。
2.分组任务的任务分配不应让每个组单独完成一组任务,这样会导致学生只愿完成本组的任务,而不能有效激励每个学生参与课堂学习。
3.教学时间有限,课堂总结时间较少,应该进一步细化每个步骤,使课堂教学时间更为合理。
以上是我对自己本次赛课的总结与反思,在以后的教学活动过程中,我将继续加油。
高一冒泡排序教学设计
基本路线:数组-排序-冒泡排序【冒泡排序原理--流程图-算法优化】-小结
一、教材分析:本节内容选自浙江教育出版社《算法与程序设计》第五章第三节。
本节课主要讲解冒泡排序思想。
排序算法是使用频率最高的算法之一,而冒泡排序是其中一种很典型而且相对简单的方法。
它的学习同时为后面的选择排序做了铺垫。
教学目标
知识目标:掌握冒泡排序的原理;掌握冒泡排序的流程图;
能力目标:学会使用冒泡排序思想设计解决简单排序问题的算法;进一步理解程序设计的基本方法,体会程序设计在现实中的作用;
进一步学习流程框图的使用。
情感目标:增强分析问题、发现规律的能力,激发学习热情;
学情分析
通过前面的学习,学生已经了解vb算法设计的基本知识,学会
利用自然语言和流程图描述解决问题的算法,对排序中循环语句以有了一定的基础。
但数组变量的使用方法尚未接触,程序设计思想比较弱,在实际生活中往往忽视运用排序算法来处理实际问题,这就要求学生通过本节课的学习,学会运用冒泡排序算法来处理实际问题,并为以后学习其它排序算法打下基础。
二、重点难点
重点:理解冒泡排序原理及它的流程图
难点:理解冒泡排序中的遍、次等概念(即对变量使用的理解)以及用流程图描述冒泡排序的过程
三、教学策略与手段
采用讲解法、演示法、分析归纳法引导学生参与思考,用逐步求精的方式降低学生的理解难度,化抽象为具体,由特殊到一般,有效地突出重点、突破难点。
四、课前准备
1.教师的教学准备:冒泡排序的课件、学案、素材
2.教学环境的设计与布置:多媒体网络教室、电子白板、多媒体教学平台等
五、教学过程
课前学习【设计意图】学生能自己学会的不讲。
排序数组知识点相对简单,由学生自学完成,之前的知识点学生可能会有所遗忘,通过这个方式让学生回顾。
冒泡排序算法原理比较容易也由学生自学完成。
已给出的素材,完成学案关于数组、冒泡排序和循环结构的基本模式的相关部分的内容,。
请同学们学习学习网站上的课前学习,并完成学案的相关部分的内容。
上课!
对答案。
1、之前在巡视过程中拍到的学案内容传到电子白板。
师:同学们,我们刚才完成了学案上的一部内容。
来看一下同学们的成果。
我们给他掌声鼓励
2、排序的定义,请学生复述。
师:如果从已排序的2万个人中,查找一个人,用二分法查找,可以在15步以内完成;如果把地球上
的人排序后,查找一个人,用二分法查找我们可以在35步以内完成。
看起来排序是很重要的算法啊。
我们今天来研究排序算法中很经典、最简单的一种——冒泡排序。
这节课,我们以非递减的排序为例。
2分钟
4、师:现在我们齐声复述冒泡排序算法的思想
一、导入:观看视频
请大家看一段视频:
视频:《我是歌手》第三季第12期中名次揭晓片段。
教师:洪导所提到的算法确实如李健所说,是冒泡排序吗?
哪位同学站起来分析一下。
掌声。
李健,毕业于清华大学电子工程系,他所分析的这个不够准确,让人有点遗憾。
可是,他在毕业二十年后,听到排序后仍能脱口而出“冒泡法”,让我们也不由得感慨清华的教育。
正如爱因斯坦所说:当你把学校给你的东西都忘记以后剩下的就是教育,而我们恰恰是运
用剩下的东西去思考,去战胜困难,去创造我们的幸福。
知识忘记了,能力沉淀下来。
二、新课:
冒泡排序的思想:冒泡排序算法是把待排序的n个元素的数组看成是垂直堆放的一列数据,从最下面的一个元素起,自下而上地比较相邻的两个元素中的数据,将较小的数据换到上面、较大的数据放在下的。
重复这一过程,直到处理完最后两个元素中的数据,称为一遍加工。
1、现在请同学们来演绎一下的冒泡排序。
请同学们完成学案上的男星年龄的非递减排序。
可以参考冒泡排序上的视频或者文字材料。
学生:在纸上完成相关的表格。
师拍摄相关学生的表格,并传至电子白板展示正确结果及学生的完成情况。
4、小结:当一遍加工完成时,最小的数据已经上升到第一个元
素的位置。
由于每一遍加工都是将本遍最小的元素像气泡一样上浮至本遍的顶端位置,故称为冒泡排序。
课程进行到这里,同学们可能会有疑惑,这个冒泡排序笨且繁琐,明明一眼可以看出结果来,那如果我们要给几万个学生的考试成绩排序呢?张艺谋导演策划大型演出的现场要进行排序呢,图片PPT,或
者同学们也会考虑用EXCEL点一下排序就可以完成,那个排序按钮正是由这样的一类法编成计算机程序来实现的。
这就像父母给我们的爱,我们的司空见惯,背后都是父母的良苦用心;哪有什么岁月静好,不过是有人替我们负重前行。
导学案上给出思考题:如果给10个数据排序
需要遍冒泡非递减排序,假定,我
们把这10个数存储在数组a(1)-a(10)中,第一遍
是对哪几个数组元素进行排序?第二遍呢?第三
遍?……最后一遍呢?
第一遍是a(1)-a(10),第二遍是 a(2)-a(10),
第三遍是a (3)-a(10)……第九遍是a(9)-a(10)。
也就是说,我们要对10个数据进行冒泡非递减排序,可以用规模为10的数组来存储数据,需进行9遍的冒泡排序。
9遍是同样的工作,我可以用哪种算法结构来实现?循环结构。
可以用一个几遍的循环结构?9遍。
我们设循环变
量为i,那么从循环变量的初值开始,i=1,循环变量的
终值是i<=9,下面必然有一个i的自变语句i=i+1,返回
线,当循环次数超过9遍后退出循环,这就是一个9次
循环的框架。
I每取到一个值就是进行一遍从底部开始的冒泡非
递减排序,在每一遍的冒泡排序中,最核心的部分是相邻两个元素的比较,从底部起任意两相邻的元素都要比较,我们可以设一个通用表达式a(j-1)、a(j)之间的比较,所以放在流程图中应该是比较他们的大小。
如果,a(j-1)>a(j)就需要交换,否则,不需要交换,那么就应该是一个分支结构,a(j-1)>a(j)?如果大于就互相交换,否则不做任何处理。
这里实现一次的两两比较。
在每一遍的冒泡排序中这样的比较要进行很多次,比如a(9)、a(10)之间……等等很多次,所以这样的分支结构要加循环结构来实现,多次的两两比较我们用红色来标识,把这个分支结构套在另外一个循环结构中,让她能够实现多次两两比较,(画出)同样,她也有初值、终值和步长的自变。
红色的循环结构就是为了使里面的两两比
较能多次执行。
所以红色所包括循环结构实现的是每一遍的排序,这样的排序要进行9遍,所以又套了一个9遍的循环结构。
这样一个9遍的冒泡排序的框架就出来了。
这是一个两重循环。
下面,请同学们在《学习任务单》上完成整个流程图。
展示学生的成果(希沃)
展示学生的成果,
研究一下内循环的循环变量,看他是怎样
变化的。
内循环是随j的取值变化而循环,所以我
们研究一下j的初值、终值及步长变化。
从三遍的列举我们可以发现,j的整个的
变化规律是什么呢?初值每一遍都是从10开始,而他的终值是什么变化规律呢?2,3,4,
好像是没有什么规律,但是我们把他和i的进
行比较,i为1时,j的终值是2,i为2时,j的终值是3,i为3时,j的终值为4,所以我
们知道j的终值和i有关,也就是j的终值是
i+1,他的步长永远都是 -1,递减。
……
由此我们可以在流程图上进行完善,j的初值是10,终值是j>i+1,步长为j=j-1 。
至此我们完的冒泡非递减排序的流程图就完成了。
请同学们完成流程图。
然后,两两讨论完成思考一、思考二的内容。
展示学生成果。
赞美的掌声送给这位同学。
本节课我们学习了哪些内容?
总结:
本节课我们学习了
数组及数组的使用。
掌握了冒泡排序算法的思想,会使用冒泡法进行排序。
会使用流程图描述冒泡排序算法。
反思:在准备课的过程中,我意识到两个问题,这十几年的不进步取,我终归要为此付出代价;二我所选课的难度太高,一度我都想放弃,学生的知识储备不足,我为自己挖了个大坑,建议如果再有出课的老师,尽可能选择对学生必修模块的内容,这样相对来说,准备课的难度只放在备课本身上,会好很多。