C语言《排序算法》教学设计课题.docx
- 文档编号:29659099
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:17
- 大小:95.58KB
C语言《排序算法》教学设计课题.docx
《C语言《排序算法》教学设计课题.docx》由会员分享,可在线阅读,更多相关《C语言《排序算法》教学设计课题.docx(17页珍藏版)》请在冰豆网上搜索。
C语言《排序算法》教学设计课题
江苏省职业学校专业技能课程
“优秀教学设计”评比
教案
参评组别
信息技术类
参评科目
C语言
教案主题
《排序算法》
填报日期
2014年05月28日
镇江分院欧阳丽娜
《C语言——排序算法》教案(2课时)
一、教材分析
《C语言教程》是计算机专业的专业必修课,也是计算机专业中一门理论性和逻辑性很强的课程。
由于C语言要求表达整密且与其他计算机语言相比更加抽象,所以在所有计算机专业课程中被公认为“最难学的一种计算机语言”
本节内容选自普通高等教育“十一五”国家级规划教材,21世纪高职高专系列规划教材中的《C语言教程》。
课程的总体目标是通过C语言的学习,培养学生综合运用知识分析、分解问题,并用合适的算法语言表达、处理问题的能力,学会一种严密的思维方式和表达方式,领会程序设计的精髓,从而培养较强逻辑思维、变通思维和创新思维能力。
通过团队合作、交流等方法,使综合素质得到提升。
从而达到专业学习的基本要求和人才培养目标。
《排序算法》是教材中第7章《数组》中的内容。
因为数组是C语言中重要的数据类型,通过数组可以使排序问题的表达过程大大简化,所以掌握几种常用又容易理解的排序算法还是很必要的。
本节通过对冒泡排序和选择排序两种算法的讨论、分析和理解,在更加熟悉数组表达方式的基础上,对算法的进一步了解,有助于培养学生的逻辑思维和变通思维能力。
二、学情分析
教学对象为五年制高职计算机软件专业二年级学生,他们具有一定的计算机操作能力,但是在程序设计方面是零基础,并且他们的数学理论基础比较薄弱。
同时,他们正处于17,18岁的年纪,思维活跃、意识超前,具有极强的好奇心与求知欲。
但由于学生的抽象思维和自主学习能力较薄弱,又厌烦枯燥的文字说教,在教学过程中要尽量使用简单直观的演示和表演方式,使枯燥乏味的理论知识能够生动起来,从而突破零起点、高台阶的瓶颈。
在完成本节的学习后,学生可以具有一定的结合数组和算法处理数据的能力。
三、教学目标:
1、学会冒泡排序和选择排序的思维方法。
2、能够熟练应用冒泡排序算法进行排序运算,在讨论的基础上学会使用选择排序算法解决同样的问题。
3、在理解程序设计基本方法的基础上,拓展其在现实中的作用。
4、通过程序设计和表演互动的过程,激发学生在预测的基础上追求结果的的成就感。
四、教学重、难点
项目
内容
解决措施
教学重点
冒泡排序的基本原理
通过表演设疑,展示结果,分析程序结构,探究动作与程序关系,结合动画演示使抽象的原理变得具体形象以帮助学生掌握学习内容。
教学难点
五、教法、学法
教法设计:
情境导入法、对比教学法、讨论式教学法、分层教学法
学法指导:
合作探究、自主学习、实践操作
六、教学准备
1、教学环境:
多媒体网络机房。
2、教学准备:
调试机房,制作课件,制作演示动画,程序调试,指导学生演练。
3、学生分组:
按照一贯的分组方式,组内预习本节内容。
七、教学过程
教学
环节
主要教学活动及过程
教师活动
学生活动
设计意图
(一)
情景
导入
5分钟
排序规则:
6名学生从左至右相邻两个学生比较手中牌的大小,如果前一个学生的牌比后一个学生的大,则两人交换位置,直至不需要再移动,排好所有牌。
排序表演:
将6张扑克牌随机发给6名学生,他们先向台下的学生展示一下自己手中的牌,然后转过来背对学生。
接到开始信号后,按规则排序。
排好后,再次面向全体学生,此时,学生手中的牌从左至右已按升序排好。
思考:
如何用程序表达排序过程?
本节课任务:
编写程序完成排序过程。
宣布表演规则。
设疑。
参与表演的学生快速比较、移动,完成表演过程。
其他学生观察并思考会产生什么结果。
激发学生兴趣与求知欲,在学生疑问中导入本节教学内容。
(二)
新知
新授
15
分钟
交待:
表演所遵循的排序规则,就是排序算法中冒泡排序的过程。
通过讨论,分解冒泡排序过程。
1、如何存储6个数;
inta[6]={7,10,6,5,9,8};
创建一个数组用于存放六个操作数。
2、如何实现两个数互换;
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
i代表数组元素位置;t是两数交换所借助的第
三变量。
3、如何表达比较的趟数和每趟比较的次数?
在每趟比较中,还会进行N次两数的比较,可以使用循环嵌套的方法。
外循环代表比较趟数,内循环表示每趟比较的次数。
首先确定外循环次数,通过观察刚才学生表演过程可知在整个过程中进行了5趟排序,即外循环为5次。
然后确定内循环次数,仍然通过观察表演过程可知:
第1趟比较,两两比较,4次;
第2趟比较,两两比较,3次;
第3趟比较,两两比较,2次;
第4趟比较,两两比较,1次;
第5趟比较,两两比较,0次。
因此,内循环次数随外循环次数增多而减少,整理成代码为:
for(j=0;j<5;j++)
{
for(i=0;i<5-j;i++)
{……}
}
4.整理完整代码
#include
main()
{
inta[6]={7,10,6,5,9,8};
inti,j,t;
for(j=0;j<5;j++)
for(i=0;i<5-j;i++)
if(a[i]>a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
printf("sortednumbers:
\n");
for(i=0;i<6;i++)
printf("%d",a[i]);
}
与学生讨论,分析冒泡排序过程,将其分解为三个主要步骤,给出三个步骤解决方法。
给出完整程序代码。
学生与教师共同讨论,分析排序过程。
学生调试代码并运行。
通过观察得出结果。
熟悉冒泡排序过程。
同时锻炼学生归纳总结能力。
让学生体会代码运行的过程及结果。
。
(三)
认知
提升
15
分钟
1.设置疑问——递进思考
(1)位置
a.每次比较的两数位置上有什么关系?
(2)变化
b.每趟排序后数列发生什么变化?
(3)关系
c.内外循环的次数有什么关系?
2.分层教学——动画助学
观察动画演示冒泡排序对数列进行升序排序的过程
3.要点总结——拎清特点
(1)6个数进行5趟加工,n个数要进行n-1趟加工
(2)每一趟比较次数越来越少
(3)n个数第j趟加工时,比较次数是(n-1)-1
4.填流程图——理清思路
5.探究实质——深入挖掘
(1)内循环次数不断变少的原因?
(2)为什么内循环结束条件变化,开始条件不变?
(3)你能为冒泡法起个新名字吗?
并说明起这个名字的理由。
6.程序动作——预测结果
截取程序片段,学生演示该片段所对应动
作,预测这段代码会产生怎样效果。
冒泡排序中是相邻两数比较,如果比较的不是相邻两数,排序过程会怎样呢?
给出思考问题,并利用电子教室将演示动画发送给每个学生。
教师对原理特点进行总结。
给出冒泡排序流程图,让学生补充完整。
提出深入问题。
在此过程中,巡查学生讨论情况,捕捉学生中存在的共性问题及时解决。
选择代码片段。
给出新规则,在学生指导下完成排序过程。
学生在观察动画演示同时讨论老师给出的思考问题。
学生对比自己总结的答案。
学生组内合作讨论,完成流程图填空。
组内讨论教师提出的问题
学生演示动作。
讨论,指导教师完成排序过程。
由结果的表象进一步向原理探索。
动画演示使抽象过程变得生动形象,有助于学生理解。
帮助学生拎清程序结构,为整合代码做准备。
深度探究原理细节。
用程序指导动作。
拓展学生发散思维的能力。
(四)
发散
思维
15
分钟
同样6个数,同样按升序排列,不同排序规则,中间会发生什么样的变化?
1、新排序规则(选择排序):
比较完所有的数,将最小的数与第一个数调换位置,直到所有数排完。
学生按照新规则指导教师进行操作,完成6个数的排序过程
2、用动画分析原理过程
动画演示选择排序对这6个数整个排序过程。
3、讨论分析
<1>进行几趟排序,每趟排序中的比较次数
5趟排序完成整个过程,每趟比较次数递减。
<2>每趟排序后数列有什么变化
每趟排序后都有一个数的位置确定下来。
<3>每次比较的两数位置的关系
两数位置没有固定关系。
4、总结过程
<1>从n个数中选出最小数,然后将最小数与第一个数交换位置;
<2>除第一个数外,其余n-1个数再按步骤1的方法选出次小的数,与第2个数交换位置;
<3>重复步骤1(n-1)遍,最后形成递增数列
5、编写关键语句
1>如何存储6个同数;
参考答案:
inta[6]={7,10,6,5,9,8};
2>如何确定最小值并与“第一个”数交换;
参考答案:
if(a[min]>a[j])min=j;(确定最小值位置)
temp=a[i];
a[i]=a[min];
a[min]=temp;
3>如何表达比较的趟数和每趟比较的次数?
参考答案:
for(i=0;i<=4;i++)
{
for(j=i+1;j<=5;j++)
{……}
}
给出思考问题,并利用电子教室将演示动画发送给每个学生。
总结选择排序执行过程。
与学生讨论分析,找出过程中的关键步骤。
让学生合作编写关键步骤的语句。
学生在观察动画演示同时讨论老师给出的思考问题。
学生与教师讨论分析关键步骤,并合作完成关键步骤的语句。
动画演示使抽象过程变得生动形象,有助于学生理解。
培养学生活学活用,变通思维能力
(五)
对比
讨论
10
分钟
对比讨论:
让学生分别观察用两种排序方法的排序过程,在此过程中进行组内讨论两种方法的区别。
然后完成表格。
将表格发给学生,组织学生讨论完成表格的填写。
学生讨论并填写表格。
整理算法思路,比较算法区别。
提升学生理论高度。
(六)
拓展
升华
20
分钟
习题一、
有10个地区的面积,要求对它们按由大到小降序排列。
1、在Excel中写出外循环次数,及内循环交换次数。
并得出结论,排序后,两两之间的交换共进行几次。
2、利用冒泡排序对上述数列进行降序排列。
习题二、
有10个重量不等的苹果和一台电子秤,每个苹果重量未知,现在需要按重量从小到大排列这10个苹果。
说出你的方法,并尝试完成这个过程。
给出基础习题和拓展创新习题。
完成习题一,对习题二进行研究讨论,给出具体解决方案。
基础练习。
为学生提供创新思维平台。
(六)
评价
总结
15
分钟
针对学生上传的习题一答案,采取匿名的方式,将错误的答案拿出来共同探讨。
对于习题二小组间交流互换解决方案,取长补短。
最后完成小组合作学习材料,给出评价成绩。
学生总结本节课内容,教师补充,并对各组表现给予评价。
作业布置
小组合作,寻找新的排序方式
组织讨论,把控全局。
教师布置作业
探讨错误答案,并交流习题二解决方案
学生课后完成作业
发现别人问题同时提醒自己。
锻炼学生交流表达能力。
让小组合作课后也发挥作用。
八、教学反思
成功之处
1、利用排序表演导入激发学生学习兴趣,通过动画演示使理论知识变得生动形象,易于理解。
2、遵循学生由具体——抽象——具体的认知活动顺序,使学生能够主动接受知识。
3、通过习题形式为学生提供拓展创新思维的平台,培养学生思维的创造性和广阔性。
4、布置开发式作业,让小组合作的优势在课下也发挥作用
不足之处
在对比讨论的过程中,少部分学生没有很好的参与到组内的讨论中去。
改进措施
在今后的教学中,要注意增强学生的主动参与意识。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 排序算法 语言 排序 算法 教学 设计 课题
![提示](https://static.bdocx.com/images/bang_tan.gif)