APP下载

应用型本科院校的C语言教学探讨

2009-02-24黄宝贞

计算机教育 2009年2期
关键词:教学经验应用型本科院校C语言

黄宝贞 张 琦 冯 瑶

文章编号:1672-5913(2009)02-0130-02

摘要:本文从C语言程序设计这门课程的特点出发,结合应用型本科院校的特点以及笔者的教学经验,对如何提高C程序设计课程教学效果给出几点体会。

关键词:应用型本科院校;C语言;程序设计;教学经验;教学效果

中图分类号:G642

文献标识码:B

C语言程序设计是计算机、通信、信计等相关专业的专业基础课程,同时也是数据结构、操作系统、嵌入式系统等计算机专业课程的前导课程。通过这门课程的学习,可使学生获得程序设计语言的知识,培养一定的软件开发能力,还可锻炼学生的逻辑思维能力,对学生综合素质的提高也具有一定的促进作用。但是由于C语言牵涉到的概念比较复杂,规则繁多,使用灵活,容易出错,不少初学者感到学习困难。如何提高此课程的教学效果呢?笔者经过不懈的探索,结合笔者的教学经验,总结了如下体会。

1 注意方式方法,培养学生对程序设计语言的兴趣

对于刚开始接触C语言的同学,一定要把C语言的用途讲清楚。例如可用C语言编写各种系统软件(如Windows)和应用软件;还可以编写一些小游戏;C语言是数据结构等专业课的基础等;使学生明白学习C语言的目的和目标。

C语言的教材很多都是一开始就介绍一些程序代码和函数使用规则,而学生对语法、函数一无所知。如果按照书本顺序进行讲解,学生一开始理解起来很吃力,就失去了对C语言的学习兴趣。为了使初学者能尽快地掌握,培养学生的学习兴趣就成为关键。在课程讲授过程中,不先讲授比较烦人的定义和规则,而是从具体问题入手,努力把枯燥无味的“语言”讲得生动、活泼。因此,笔者给学生找一些比较有意思的问题,如“水仙花数”、“兔子问题”、“哥德巴赫猜想”等,用算法语言来求解,培养学生的学习兴趣,使学生体会程序设计的用途和一种全新的解决问题的方法。

在上机课时,可以给出几个简单并有输出结果的程序源代码,让学生编辑并上机调试。当他们自己从键盘输入的程序输出结果的时候,学生对程序设计的兴趣自然就产生了。在同学们自己输入程序的过程中,肯定会出现这样或那样的错误,比如没有在行的末尾输入分号;函数名字输错了;括号少输入半边等错误。针对这些错误,再去讲授语法,告诉学生在C语言中是有规定和规则去约束的。错误的地方在C语言中是如何规定的,应该如何去做。这样子,学生们接受起来比较容易,记忆也比较深刻。

其次,还要借助于多媒体教学。多媒体辅助教学能够化静为动,寓教于乐,培养和激发学生的学习兴趣,能将抽象的问题形象化,便于学生对知识点的理解和运用,还能节约传统的板书时间,使课堂讲解时间相对增加,大课堂信息量。

2完善课堂教学

针对应用型本科院校培养应用型人才的特点,必须调整新的教学思路。初步设计分三步走,首先要学好C语言的语法、规则这些基础知识;其次,培养学生具有好的编程思想和方法;最后,通过安排课程设计,学生可以独立编写一个软件。

2.1学好基础知识

讲授C语言的基础知识,最好是结合一些简单小程序来逐一介绍C语言成分及语法使用规则。因为一些生硬的知识点会使学生感到厌烦,一旦失去学习的兴趣,就没有学习的动力了,也就学习不好了。在教学过程中,针对C语言的特点,要举一反三,要有计算机的最终运行结果。也就是说在上课的过程中,不要单纯讲授理论,要将程序引入到课堂上。比如讲++i 和i++的区别:++i是先执行i=i+1后,再使用i的值;而i++ 是先使用i 的值后,再执行i=i+1。如:i=3,printf("%d",++i)输出值为4;若用printf("%d”,i++),则输出值为3。这个可以编写一个程序,将运行结果呈现给学生。在讲解了这个例子后,再在这个基础上适当的作一下修改,先让同学们回答应该是一个什么样的结果,最后运行程序把正确的结果呈现给大家。

2.2学好算法

语言只是程序设计的形式,而算法才是灵魂。没有正确的算法,计算机解决不了任何问题,因此,要将分析算法作为教学重点。要引导学生实现从编写简单的小程序到灵活运用C语言编程解决具有一定难度的实际问题的转变。在教学过程中,结合实例由浅入深地介绍了一些典型的算法,如迭代、递归、贪心、回溯等方法,逐步提高学生良好的编程能力,培养学生良好的编程思想和编程风格。有一些学生对C语言的语法和句式掌握得很好,但一面对具体问题就一片空白,不知如何运用所学知识来解决,这就要求教师在讲程序设计前要先介绍如何分析问题、设计算法并将算法正确表示出来。

例如利用函数调用来解决问题时,很多学生不知怎样来设计形式参数。教师在讲解这部分的例题或习题时应先引导学生回顾形式参数的作用——用于接收被调函数需要主调函数传给它的数据。然后分析被调函数需要主调函数传给它什么类型的数据有几个。有的可通过全局变量传递,有的就需要通过实际参数传给形式参数,这样就设计出了形式参数的数目和类型。

在讲解解决某一个问题的算法时,可将多种算法联系起来分析,通过对一个问题提出多种解决方案,来开阔学生的思维,培养他们的编程技巧和方法。

兔子问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

首先,这个问题可以使用循环结构来完成:

#include

Void main( )

{

long f1,f2;

int i;

f1=f2=1;

for(i=1;i<=10;i++)

{

printf("%12ld %12ld",f1,f2);

if(i%2==0) printf(" ");/*控制输出,每行四个*/

f1=f1+f2; /*前两个月加起来赋值给第三个月*/

f2=f1+f2; /*前两个月加起来赋值给第三个月*/

}

}

当然,也可以使用递归算法来实现:

#include

long fun(int n)

{

if (n==1) return 1;

if (n==2) return 1;

if (n>2)return fun(n-1)+fun(n-2);

}

void main( )

{ int i;

for(i=0;i<9;i++)

{

printf("%12ld",fun(i));

}

}

2.3课程设计

课程结束后,会安排C语言的课程设计。笔者会精心设计一些课题,题目均具有较强的应用背景,如成绩管理系统、商品管理系统、工资管理系统等,使学生能迅速适应从开发小程序到开发大程序的转变。要求学生经过需求分析、软件设计、编码、测试等软件开发的各阶段,最后提交源代码及有关文档。实践证明,在软件开发的过程中,C语言的基础知识更扎实了,同时提高学生的软件开发水平。

3重视语言实践环节,注重上机实验指导

对一个年级的学生问卷调查显示,在学程序设计和算法分析时,学生的普遍反映就是看得清楚,听得明白,遇到实际问题就无从下手,显得很被动。究其原因,主要是没对实验引起足够的重视,导致动手能力差。在国外计算机课程中,实验占学生成绩相当大的比重,而在国内除了极少数重点大学外,这方面做得非常差。

实验是C语言课堂教学的必要补充,课堂上难于理解的以及模糊的概念可以通过上机实验解决,因此应该有针对性地布置一些实验练习。C语言程序设计上课与上机的学时安排比例应该为1:1。在教学中,我们非常重视实验这一环节,及时解答在实验中碰到的问题。

4结束语

针对当前应用型本科院校的教学特点,并从教学实践出发,提出了一个新的教学思路供大家探讨,使得理论与实践相结合,再配以课程设计,实践证明,教学效果显著。

参考文献

[1] 彭秀芬,吴璞. 浅论C语言教学方法[J]. 计算机教育.

[2] 成红胜. 应用型本科院校C语言教学初探[J]. 林区教学,2007,(2).

[3] 刘达明. 如何提高计算机专业的C语言教学质量[J]. 计算机教育,2005,(8).

猜你喜欢

教学经验应用型本科院校C语言
“C语言程序设计”课程混合教学探索
基于C语言的计算机软件编程技术探究
中职C语言单片机课堂教学中的趣味性探讨
计算机原理中C语言的应用价值
善用习题,丰富数学活动经验
双钢琴演奏与教学初步探索经验谈
构建桥梁,走进高
高职与应用型本科院校协同开展技术应用型本科教育课程衔接的探析
社会参与美国社区学院治理及对中国应用型本科高校治理的启示
新建应用型本科院校教学管理队伍建设研究