《选择排序》教学设计.docx

上传人:b****6 文档编号:5837668 上传时间:2023-01-01 格式:DOCX 页数:16 大小:52.42KB
下载 相关 举报
《选择排序》教学设计.docx_第1页
第1页 / 共16页
《选择排序》教学设计.docx_第2页
第2页 / 共16页
《选择排序》教学设计.docx_第3页
第3页 / 共16页
《选择排序》教学设计.docx_第4页
第4页 / 共16页
《选择排序》教学设计.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

《选择排序》教学设计.docx

《《选择排序》教学设计.docx》由会员分享,可在线阅读,更多相关《《选择排序》教学设计.docx(16页珍藏版)》请在冰豆网上搜索。

《选择排序》教学设计.docx

《选择排序》教学设计

《选择排序》教学设计

一、学习任务分析

许多问题的处理过程依赖于数据的有序性。

排序在生活中的应用也极为广泛,如购物网站的价格、销量排序等。

而排序算法是程序设计中的重要算法,对它的学习既是对已经学过的三种程序设计结构的综合运用,又能为后续对分查找的学习作好铺垫。

本节内容便是选自华东师大新版高中信息科技教材(第二册)《算法与程序设计》第二章第3节排序及第四章第3节排序实现等内容。

对教材的两节内容进行重组合并,将理论与实践结合,以加深学生对选择排序算法的理解与运用。

选择排序是一种简单直观的排序算法,选择排序的过程是不断的在待排元素中选择最大值或最小值,然后交换位置的过程,其算法是结合了双重循环和擂台法找最值的知识,因此选择排序的程序代码实现,同时巩固了这两部分内容。

如何让学生从具体每一趟排序中观察、分析、归纳出一般的规律,是本节课的难点。

在此基础上,一步一步引导学生开展算法设计、编写、调试和完善程序,从而揭开排序算法程序实现的神秘面纱。

在之前的学习中,学生已经学习了数组、分支结构、双重循环结构等基本程序概念,本节内容在此基础上,学习选择排序的原理及其代码的实现,了解选择排序的不同变式,并能够运用选择排序算法解决综合性问题。

本节内容也为之后其他排序方法的学习提供了参考,为后续对分查找奠定了基础。

由此,本节内容起到了承上启下的作用。

结合学生学情,选择排序安排两课时完成,本节内容为第一课时内容。

二、学情分析

本节内容的学习者是高一年级理科班的学生。

在日常生活中,学生常常会接触到许多排序的例子,例如微信步数排行、游戏排行榜等,并对如何对一群杂乱的数值按规则进行排序有了基本的方法。

因此,对于选择排序而言,其排序的原理相对较容易掌握。

在代码编写方面,学生已经学习数组变量和擂台法的相关知识,有利用分支、循环语句编写程序解决问题的经验和一定的编程能力。

在教学方法设计的过程中,考虑到该班级学生思维活跃、学习能力较强,喜欢自己实践探究来解决问题,因此在教学设计时应给予学生更多的思考及实践的机会。

尽管该班学生有一定的编程经验和能力,但由于实践操作不多,对与程序的整体编写还存在困难,对现实问题转换为计算机程序解决的能力需要进一步提升。

具体来说,在程序实现过程中,双重循环的方式及范围对于学生而言仍然具有一定的难度,需要着重讲解整体的结构与实现,由浅入深,引导学生通过分析原理、拆分问题、组合架构的方式,循序渐进。

此外,在用数组变量解决具体问题时,还存在理解上的偏差,不太理解数组的特点、作用及适用情况。

因此,需要借助具体排序问题,在体验、讨论的过程中,让学生经历选择排序解决实际问题的过程,体会选择排序的价值,体会人解决问题与利用计算机解决问题的差异。

三、教学目标

●知识与技能

1.能描述选择排序的基本原理。

2.能根据选择排序的原理,推测计算机执行过程,描述解决实际排序问题的过程。

3.能解释和识读选择排序算法的流程图,并用VB进行编程验证。

●过程与方法

1.通过“位置重排”游戏的排序过程,提炼、总结选择排序的原理。

2.通过实例分析,由易到难,层层剖析的方法掌握选择排序的原理,并学会用选择排序基本思想对数据进行排序,记录每一趟排序后数组中数据的变化。

3.归纳选择排序的规律,迁移到流程图的识读,学会从具体到一般的归纳方法。

4.对照每一轮的找最值的方法总结归纳找到其内在的规律,从而掌握选择排序的程序实现。

●情感态度价值观

1.通过对排序原理的探究,提升对算法来源于生活的认同感,初步养成善于对生活实例进行观察和归纳的思维习惯。

2.通过VB程序编写和验证,理解计算机高效准确的特性是人脑的补充和延伸,体会计算思维和逻辑思维的魅力。

四、教学重难点分析

教学重点:

选择排序算法的基本原理、过程及流程图。

教学难点:

选择排序的实现代码中双重循环嵌套的应用和用擂台法找最值位置。

五、教学方法

在教法方面,主要采用讲授法、演示法和任务驱动法进行教学。

按照明确选择排序原理、分解选择排序实现步骤、步骤组合归纳、过程转换代码的流程,层层递进,一步一步推导出选择排序的实现程序。

首先通过“位置重排”游戏过程,归纳、总结选择排序的原理。

其次,对于选择排序的流程图描述拆分为三个探究任务,驱动学生按照步骤一步步进行知识的自主建构,提升学生的自主探究能力和小组合作能力。

最后,整合探究任务,梳理排序算法流程图,对照流程图实现程序转换!

在学法方面,主要采用观察思考法、练习法、小组交流法进行学习。

学生通过观察第一遍选择排序的游戏过程进行思考探究,实践探究选择排序的原理。

通过小组合作探究的方式,拆分问题,形成代码碎片并重组。

新知学习完毕后,通过练习进行及时反馈,检验所学,促进提升。

五、教学环境设计

教学环境:

装有VisualBasic6.0的笔记本电脑20台,并能够与内外网相连;平板电脑20台,装载移动端课堂互动平台。

教学准备:

算法教学网站、学案、辅助教学的PPT、课堂练习、基本程序等。

六、教学过程

教学环节

教师活动

学生活动

设计意图

新课导入

【游戏导入】课前发给第一排五个学生1人一张纸,里面分别写上5个大小各异,顺序打乱的10—100之间的数。

请五位同学协助配合老师完成一个简单的游戏,大家需要根据这五个学生拿到的数字大小,按小到大的顺序重新排位。

【提问】那么,你会用怎样的方式让他们有序呢?

学生一般会提出:

找到5个人里拿到最小数的那个同学,请他和第一个位置上的同学交换一下位置;剩下的4个同学里再找到拿到最小值的同学,请他和第二个位置上的同学交换位置;以此类推,完成从小到大的排序。

过渡:

根据学生的回答,指出其中蕴含了选择法排序算法的思想。

这就是今天我们要来学习的一种排序方法,叫做选择排序。

 

学生参与游戏,思考日常生活中的排序方式并回答。

注意:

学生需要一个步骤一个步骤描述清晰,如:

第一步做什么,第二步做什么……

通过简单的游戏导入课程,开门见山。

请学生说一说有哪些排序方法,发散性思考,更有助于之后各类排序算法的学习。

 

【环节一】选择排序的原理

过渡:

选择排序,顾名思义,是需要在待排数组中不断选择最值。

接下来继续启发:

前面这种方法中,你是如何找到最小数的?

在只有5个数值时是可以实现的,但是如果现在有100个数值,你能不能一眼看出哪个最大哪个最小?

如果不能,我们看能不能从这5个数值的排序中寻找一下规律,让计算机程序来解决?

一眼看出,其实在我们大脑了进行了快速的比较,也就是这样的:

选择排序游戏演示

第一趟的时候,明确第一个位置应该站的是拿最小数的同学,让第1个位置的同学和第2个位置的同学将手中的纸举高让后面同学看,让拿较大数的同学坐下,拿较小数的同学站着,然后较小数的同学再与第3位同学比较,继续留下较小数的同学与第4位同学比较,全部比较完,留下拿最小数的同学与第一位同学交换位置。

【提问】第一个位置排好即第一趟排序是从哪里开始进行比较的?

到哪里为止?

是按照什么方式进行比较的?

在第一遍排序结束后,实现了怎样的效果?

【小结】第一遍的排序是从第一个位置开始比较的,到最后一个为止。

在比较过程中,固定第一个位置,以其元素为最小值标准,后面的元素与其进行比较,如果后面的比较小,就将小的更新为新标准,继续向后比较,重复上述过程,直到最后一个元素,找出最小的与固定的第一个位置的元素进行交换。

在第一遍排序后,第一个元素是最小的。

过渡:

那么,按照这样的方式进行比较并排序,接下来的第二遍、第三遍排序后的结果又是怎样的呢?

归纳:

选择排序的原理:

每一次从待排序的数组中找出最小(或最大)的数,使它与第一个数相互交换。

然后再在余下的数中找出最小(或最大)的数,与第二个数相互交换。

以此类推,直到所有的数成为一个有序的序列。

 

让学生体会大脑思考和计算机思考的差异,然后观察位置重排的情景演示,并回答教师的问题。

 

学生根据游戏演示的排序方式以及教师的讲解,学生自动完成后面4轮的排序,并完成表格,记录数据。

 

 

学生观察第一遍选择排序的过程演示,明确选择排序基本的效果与方法,教师加以引导。

 

通过简单的游戏演示一遍选择排序的过程,学生通过模仿、思考等方式,完成后几遍的排序,并归纳总结选择排序的原理和过程。

 

让学生意识到选择排序就是求最值问题,需要知道最值在数组中的位置,再进行交换;一轮比较下来需要位置交换一次。

 

【环节二】选择排序的原理深化和流程图描述

过渡:

概况起来(就是重复做“定(位置)”“找(最值)”“换(元素)”),将选择排序的思想用流程图表示,出示最简单选择排序流程图,分三步解析流程图。

【实践探究一】如何定位置?

1.思考:

上述位置重排游戏中的5个数据在计算机中如何存储?

2.位置重排时,一共有几个位置需要安排合适的数字?

3.如果是10个数有多少个位置需安排,100个数哪?

归纳规模为n的数组的排序规律。

归纳:

1.明确流程图的主结构是以需要排序的位置为循环变量的循环结构。

循环体是找最小数和交换数组元素。

2.指出“在数组中寻找最小值”和“交换最小值”需要进一步求精。

注意:

排序趟数是指固定位置的次数,也就是寻找最值的轮数,即将最大/最小的数放到固定位置处。

 

根据选择排序的原理进行思考,并和同伴进行交流讨论,每个小组派出一名代表发言。

 

在问题的探索中,尝试使用流程图描述选择排序算法步骤

在学习了选择排序原理的基础上,提出了三个问题,层层递进。

学生通过小组探究的方式思考并探讨,集合集体的智慧解决问题。

体现了教师引导、层层递进、学生自主建构知识体系的效果。

 

从整体上把握选择排序算法结构

 

明确排序趟数与位置的关系

过渡:

在每轮定好位置后,如何找到合适的数字放在该位置?

【实践探究二】如何找到最小值

1.思考:

如何找到最小值?

2.打擂台找到最小值后,最小值在哪里?

是找到最值好,还是找到最值所在的位置好?

3.明确找最小值时,需要记录最小值的位置。

向学生演示并解析,位置重排游戏中第一遍找最小数时,首先固定首位,让计算机认为d

(1)是最小的,因此把最小数的下标k赋值1,接着让后面的d

(2)到d(6)的数与d(k)进行比较,找到一个比d(k)小的数,就执行k=j。

其余4遍引导学生观察思考,归纳找出规律。

引导学生梳理以下过程:

(1)固定一个位置i后,首先认为该位置的元素最小,从该位置后一个元素到最后一个元素打擂台

(2)定义两个变量:

最小值元素的下标k,来标记最小值的位置;固定位置i处数据的下一个元素下标j

(3)解析k=i的含义,i是每趟排序是固定位置的,k是标记最值的位置,固定i时认为该位置的元素最小,所以k=i

(4)明确这一部分的结构是循环结构+分支结构

接着出示找最小数的流程图,引导学生掌握寻找最小数的流程图。

注意:

比较次数是指每一次判断两个数大小的次数

 

学生思考并回答教师的问题,观察归纳,通过比较4遍的情况,找到4遍比较的“通项公式”。

 

观察:

k和j变量的变化情况

在数组中寻找最小值的求精和细化

 

从k和j的变化中引导学生写出相应的指令。

过渡:

在每轮找到最小值后,如何将最小值放在合适位置?

【实践探究三】何时交换数据

1.思考:

寻找最小值的目的什么?

2.观看动画梳理每次最小值应该放的位置和实际放的位置有何关系?

3.引导学生思考利用分支结构实现数据交换

注意:

交换次数则是指满足条件后交换的次数,该次数最小为0。

 

思考问题,观察位置重排动画,填写表格,找出交换数据的条件,完善流程图中数据交换部分

交换数据的求精和细化

 

通过留白来培养学生的读图与归纳能力。

【整体再感知】

引导学生对定位置、找最值、换元素三部分细化的流程图整合,让其从整体上再次感受选择排序的双重循环结构。

听课、思考从整体上把握

梳理知识点,将已有的流程图进行拼合,形成基本

的选择排序架构。

 

【环节三】选择排序程序初体验

过渡:

在经过了定、找、换之后,我们了解了选择排序的原理,并学会了流程图描述,那么,怎样用VB编写出选择排序的代码呢?

【自主探究】

对照流程图和算法网站的动画演示思考并小组探讨以下问题:

(1)5个数组元素一共要进行固定4个位置进行重排,也就是4遍排序,那么应该用什么语句体现?

(2)在第i遍排序中,也要经过很多次的查找,那么此时又应该怎样实现不断查找?

(提示:

从哪一个元素开始比较,到哪一个元素停止比较)

(3)用什么语句实现数组元素的大小比较?

(4)何时及怎样实现元素的交换?

然后根据所给的代码框架自主实践,打开“工程1.vbp”工程文件,将选择排序代码补充完整,使其能够正常运行。

【小结】选择排序的格式

Fori=______to_________

‘选择排序定位置的实现(外循环)

_________‘默认i处为最值

Forj=_____to_____

‘在每一遍的排序中,都要从i后的元素一一比较(内循环)

Ifa(j)

_______‘更新最值下标

EndIf

Nextj

If_______Then

_______‘交换i和k处元素

EndIf

Nexti

【教师巡查指导】

【小结】排序代码如下

Fori=1to4

k=i

Forj=i+1to5

Ifa(j)

k=j

EndIf

Nextj

Ifk<>iThen

t=a(i):

a(i)=a(k):

a(k)=t

EndIf

Nexti

再次解释内外循环变量的值的变化规律,及如何使用数组下标来进行求最值位置的想法。

让学生拓展思考解决三个问题:

1、对100个数据进行排序,程序怎么改?

2、如何让数据从大到小排序?

3、n个数据通过选择排序变为有序,这中间一共要比较几次数据?

【归纳小结】

强调选择排序是分为非递增序和非递减,选择排序程序是用双重For循环来实现,外层For循环控制是第几趟排序,也就是有几个位置需要重排,内层For循环控制找最值的范围。

由于程序默认待排序位置处为最小值,进行找最值的范围会发生变化(每趟从待排处下一个开始),故内层For循环变量的下界由外层循环变量决定。

 

思考问题,对照流程图,自主完成流程图向程序语言的转换

 

根据所给程序进行思考实践,将选择排序代码补充完整。

上机运行

 

结合具体的动画演示选择排序的过程,利用动画可反复查看和交互的特点帮助不同需需求的学生学习。

 

在基本架构的基础上,将VB代码融入其中,完成选择排序的基本程序,并对知识点进行总结归纳,使学生对于选择排序的程序实现有更清晰明确的理解。

 

鼓励学生试着上机调试,不要怕出错。

【环节四】选择排序的练习应用(备用)

过渡:

在学习了选择排序原理及其基本代码之后,如果将其运用到具体问题中,又是怎样体现的呢?

【课堂练习】

完成问卷星平台上的练习题。

【教师巡查指导】

【简要评价反馈】

根据学生在练习中遇到的问题进行简单讲解。

完成问卷星平台上的练习并提交。

在学习了原理与基本代码的基础上,用练习题目进行简单的程序运算,进一步巩固提升。

学生在提交作业后能够看到自己的分数以及题目解析。

教师也能通过平台查看学生的分数,实现了学生知识点掌握情况的实时反馈

课堂总结

【师生共同小结】

本节课我们学习了选择排序的原理及其简单程序实现。

选择排序的原理就是固定每一个位置,通过与其之后的元素逐一比较,找到合适的数据交换,不断重复直至有序,也就是定、找、换三步。

定位置决定了找的起点,所以是外层循环,找最小值是逐一比较,因此也需要循环,找好之后,才能决定是否交换。

通过一步步的分析,我们也实现了双层循环嵌套的选择排序基本程序。

当我们掌握了选择排序的程序之后,改变一个符号,改变一个数字,就可以让结果产新的变化,这就是程序和算法带给我们的全新体验。

希望同学们能感受到程序的灵活性,愿意用程序去解决生活中的问题。

课后请学生思考一个问题,n个数据通过选择排序而变得有序,需要交换几次数据?

和教师一起整理总结选择排序的知识点:

选择法排序通过遍历记录下最值的位置,将最值位置处元素和待排元素进行交换。

和学生一起梳理总结本节课的知识点,并展望之后要学习的内容,使得课堂更加完整。

七、板书设计

选择排序

1.选择排序的原理

定位置、找最值、换元素

排序趟数;n-1

比较次数:

n(n-1)/2

2.选择排序的程序

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1