C语言《排序算法》教学设计课题 - 图文

更新时间:2023-10-11 02:49:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实用文案

江苏省职业学校专业技能课程 “优秀教学设计”评比

标准文档参评参评教案填 报

教 案

组别 信息技术类 科目 C语言 主题 《排序算法》 日 期 2014年05月28日

镇江分院 欧阳丽娜

实用文案

《C语言——排序算法》教案(2课时)

一、教材分析

《C语言教程》是计算机专业的专业必修课,也是计算机专业中一门理论性和逻辑性很强的课程。由于C语言要求表达整密且与其他计算机语言相比更加抽象,所以在所有计算机专业课程中被公认为“最难学的一种计算机语言”

本节内容选自普通高等教育“十一五”国家级规划教材,21世纪高职高专系列规划教材中的《C语言教程》。课程的总体目标是通过C语言的学习,培养学生综合运用知识分析、分解问题,并用合适的算法语言表达、处理问题的能力,学会一种严密的思维方式和表达方式,领会程序设计的精髓,从而培养较强逻辑思维、变通思维和创新思维能力。通过团队合作、交流等方法,使综合素质得到提升。从而达到专业学习的基本要求和人才培养目标。

《排序算法》是教材中第7章《数组》中的内容。因为数组是C语言中重要的数据类型,通过数组可以使排序问题的表达过程大大简化,所以掌握几种常用又容易理解的排序算法还是很必要的。本节通过对冒泡排序和选择排序两种算法的讨论、分析和理解,在更加熟悉数组表达方式的基础上,对算法的进一步了解,有助于培养学生的逻辑思维和变通思维能力。

二、学情分析

教学对象为五年制高职计算机软件专业二年级学生,他们具有一定的计算机操作能力,但是在程序设计方面是零基础,并且他们的数学理论基础比较薄弱。同时,他们正处于17,18岁的年纪,思维活跃、意识超前,具有极强的好奇心与求知欲。但由于学生的抽象思维和自主学习能力较薄弱,又厌烦枯燥的文字说教,在教学过程中要尽量使用简单直观的演示和表演方式, 使枯燥乏味的理论知识能够生动起来,从而突破零起点、高台阶的瓶颈。

在完成本节的学习后,学生可以具有一定的结合数组和算法处理数据的能力。

三、教学目标:

1、学会冒泡排序和选择排序的思维方法。

2、能够熟练应用冒泡排序算法进行排序运算,在讨论的基础上学会使用选择排序算法解决同样的问题。

3、在理解程序设计基本方法的基础上,拓展其在现实中的作用。

4、通过程序设计和表演互动的过程,激发学生在预测的基础上追求结果的的成就感。

标准文档

实用文案

四、教学重、难点

项 目 教学重点 内 容 解 决 措 施 通过表演设疑,展示结果,分析程序结构,探究动作与程序关系,结合动画演示使抽象的原理变得具体形象以帮助学生掌握学习内容 。 冒泡排序的基本原理 教学难点 五、教法、学法

教法设计:情境导入法、对比教学法、讨论式教学法、分层教学法 学法指导:合作探究、自主学习、实践操作

六、教学准备

1、教学环境:多媒体网络机房。

2、教学准备:调试机房,制作课件,制作演示动画,程序调试,指导学生演练。 3、学生分组:按照一贯的分组方式,组内预习本节内容。

标准文档

实用文案

七、教学过程 教学 环节 (一) 排序规则: 主要教学活动及过程 教师活动 学生活动 设计意图 参与表演的学生快速比较、移动,完成表演过程。其他学生观察并思考会产生什么结果。 激发学生兴趣与求知欲,在学生疑问中导入本节教学内容。 宣布表演情景 6名学生从左至右相邻两个学生比较手中牌的大规则。 导入 小,如果前一个学生的牌比后一个学生的大,则 5分钟 两人交换位置,直至不需要再移动,排好所有牌。 排序表演: 将 6张扑克牌随机发给6名学生,他们先向台下 的学生展示一下自己手中的牌,然后转过来背对 学生。接到开始信号后,按规则排序。排好后, 再次面向全体学生,此时,学生手中的牌从左至 右已按升序排好。 设疑。 思考: 如何用程序表达排序过程? 本节课任务:编写程序完成排序过程。 (二) 交待:表演所遵循的排序规则,就是排序算法中 新知 冒泡排序的过程。 新授 通过讨论,分解冒泡排序过程。 15 分钟 1、如何存储6个数; int a[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() { int a[6]={7,10,6,5,9,8}; int i,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(\ for(i=0;i<6;i++) printf(\} (三) 1. 设置疑问——递进思考 认 知 (1)位置 提 升 a.每次比较的两数位置上有什么关系? 15 (2)变化 (3)关系 c.内外循环的次数有什么关系? 2.分层教学——动画助学 观察动画演示冒泡排序对数列进行升序排序的过程 标准文档

给出完整 学生调试行。 让学生体会代码运行的过程及结果。 。 程序代码。 代码并运给出思考问题,并利用电子教室将演示动画发送给每个学生。 学生在观察动画演示同时讨论老师给出的思考问题。 由结果的表象进一步向原理探索。 分 钟 b.每趟排序后数列发生什么变化?

本文来源:https://www.bwwdw.com/article/b0kf.html

Top