C语言课程的教与学改革初探

2014-03-29 19:45裴霞
赤峰学院学报·自然科学版 2014年13期
关键词:C语言程序设计语句

裴霞

(枣庄学院 信息科学与工程学院, 山东 枣庄277160)

C语言课程的教与学改革初探

裴霞

(枣庄学院 信息科学与工程学院, 山东 枣庄277160)

本文将从如何提高C语言课程教学质量、增强教学效果,培养和提高学生分析问题、解决问题的能力和创新能力等方面,进行课程教与学改革上的一些探究.

C语言教学;程序设计;教学方法;考核

C语言是一门高级程序设计语言,学会运用C语言编写程序解决实际问题,既有利于提高学生的思维能力,也有利于相关后续课程的学习.C语言课程教学的方法对提高学生的学习兴趣,使学生扎实地掌握C语言的内容,并能运用自如的进行程序设计有很重要的作用.

1 C语言课程教与学的现状

1.1 学生的学习兴趣缺乏

在C语言学习过程中学生学习兴趣不浓,处于被动的接受知识的地位,主动性没有得到很好地调动,使学习停留在表面,对所学知识一知半解,导致动手能力差、应用能力差,不能把自己所学的知识应用到实践中去.这样培养出来的学生不能满足社会的需要,也没有达到教学的目的.

1.2 理论课与实践课分离,不能相互促进

理论课为主但只注重对教材知识的分析和灌输.而在实践课上学生对讲过的知识一知半解,无法独立完成程序的设计、编写.造成了理论课没有为实践课打好基础,实践课也没有很好的应用理论知识的局面.

1.3 教学环节单一

C语言课程的教学环节主要是上课-上机-做作业-考试.这种单一的教学环节设置,从教学的实际效果来看有严重缺陷,由于缺乏程序设计的实战经验,学生在面对实际应用中的程序设计时,往往老虎吃刺猬-不知从何下手,难以实现从掌握语言到应用语言这一高度的提升.

1.4 教学方式方法不灵活

目前C语言教学一般采用传统的“满堂灌”教学方法,教师处于主导地位,注重教师的讲授,师生互动性差,学生学习的主动性和积极性未调动起来,影响学生的接受效果,不利于培养学生的创造性.教师对该门课程的教学内容和教学重点的理解和把握不够准确,往往把重点放在枯燥难懂的语句、语法规则方面,没有把编程解题思路放在首位,学生很难看到该课程的全貌,只会感到内容学习起来比较困难,无法提高学习兴趣,使得教学质量不高.

1.5 考核方式不合理

现在对C语言课程的考核大多采用笔试、闭卷的形式.这种考核方式容易让学生养成重视知识的记忆,忽视知识的应用和能力的培养.考试的内容基本上是课本和笔记本上的简单重复,容易导致学生平时上课不注意听讲甚至逃课,放松平时的学习,考试前临时突击,死记硬背,不可能真实全面地考核出学生掌握和综合运用所学知识解决问题的能力.

2 探索C语言课程教与学的新思路

启蒙教育家卢梭说过“教育的根本是使学生喜欢你所教的东西.”从一定意义上说,学生对课程学习是否有浓厚的兴趣,是否能发挥学习的积极性、主动性,主要取决于教师的教学方法.教师在教学中能否运用恰当的教学方法是培养和激发学生学习兴趣的关键和重要手段.

2.1 简单趣味案例入门,培养学生对C语言的兴趣及正确的思维模式

C语言注重由设计算法到书写程序并进行调试的整个过程,显得抽象、复杂,这是大多数学生抱怨C语言太难不好学的主要原因.如果第一节课改变以前给学生讲解理论概念的授课模式,直接给出几个简单有趣的案例的程序源代码,让学生体会由枯燥的程序代码编译并调试运行最后得到有趣的输出结果,此时学生对程序设计的兴趣自然就产生了,跃跃欲试想要自己来编写程序.在此基础上,再对程序进行简单的修改,运行得到不同的结果,并解释原因,然后提出新的问题,让学生思考如何修改程序以解决新的问题.整节课中把解题思路、方法和步骤当作授课的重点,让学生明白如何分析并解决实际问题,逐渐培养学生进行程序设计的正确思维模式.

2.2 理论与实践合二为一,以讲带练,以练促讲

C语言是一门重在实践的课程,需要改变传统的授课方式.如果授课地点改在有黑板、多媒体设备的机房,教师通过多媒体给学生讲解关键知识点,对于抽象的算法案例可以通过动画来帮助学生理解,加深印象.而对于程序的设计分析过程则可以在黑板上详细的分解思路,使学生学会程序的分析设计方法.案例讲解完,学生可以及时在电脑上的编译环境中进行程序的调试,发现知识的盲点以便教师进一步讲解,帮助学生进步,从而使学生在一堂课结束后不留夹生饭,更深入、完善的学习.

2.3 开展多种课外活动,丰富学生学习途径

除课堂教学外,还可以组织学生开展各种关于C语言学习实战的课外活动.比如,创建C语言学习交流的论坛和网站,举办C语言程序设计竞赛,组织学生参加各种关于C语言程序设计的活动等.通过多种形式的课外教学演练来调动学生学习的积极性,扩大学生的知识范围,促进学生在C语言实战应用领域的提高.

2.4 灵活运用多种教学方法

在教学中综合运用多种教学方法可以使学生整个学习过程始终处于积极地状态下,有利于学习的进步与提高.

分组教学法对于C语言教学效果还是比较好的.在本课程开始学习两周后根据学生的学习情况将学生分成若干个小组,每组由程度较好的学生担任组长.教学过程中根据学习内容设置多个任务,由组长带领组员进行讨论学习,在限定时间内给出问题的答案,在小组讨论学习的过程中教师对学生的学习情况进行观察和协助.得到学生提交的问题答案后教师对学生的解答进行评价,讲解由任务引出的理论知识,并通过多媒体演示C语言环境中解决该问题的步骤,指出学生应该注意的问题.

比喻教学法对于C语言的教学也有不可忽视的作用.在C语言中,有些内容比较抽象,不容易被学生接受和理解,这时就需要教师在教学中巧用生活中的实例,用形象的比喻将深奥的理论讲得通俗易懂.

演示教学法在C语言教学中适用于像循环结构执行过程等比较复杂的程序运行,使用简单的Flash动画演示程序运行的过程,使学生有兴趣去学习.

任务驱动案例教学法要贯穿整个教学过程始终.在教学中通过不同的案例入手进行概念解释与规则阐述,用任务驱动学生带着问题去学习可以使学生的学习更有目的性,学习的积极性更高.

2.5 抓住关键知识点,学习事半功倍

在C语言的学习过程中,不能详略不分芝麻西瓜一起抓,要善于找出C语言的特色、关键知识点,使学习得到事半功倍的效果.在C语言中作为程序设计的基础,首先要记住32个关键字,掌握32个关键字不同的含义及用途.才能顺利迈过C语言学习的第一道坎.C语言是一种高级语言,其中任何一个以分号为结束标志的表达式都可以被当作是表达式语句,而表达式语句中又以各种运算符号的计算居多.因此,熟练掌握各类运算符的优先级及结合性,准确地得到表达式的最终值,是保证所设计的程序能正确实现预期结果的前提.

C语言程序是由函数构成的,不管整个程序有多么复杂,程序的运行都是从主函数main()函数开始,在main()函数中结束.当然在main()内还会引用一个或多个其它的子函数来辅助实现相关功能,通过参数连接主函数与子函数进而满足程序设计的需要.如果这个特色的关键知识点不能抓住掌握,是无法设计一个完整的C语言程序的.

C语言中特色最鲜明的数据类型就是指针,而且也是学生在学习过程中公认的一个难点.想要掌握这个知识点,首先要理解指针的含义就是一个地址,在学习指针的时候要养成画内存图的习惯.

其次要区分清楚不同类型的指针指向的不同类型的对象,最后要掌握指向数组的指针的应用.只要指针能够熟练运用,可以说C语言的学习及应用已经不在话下了.

基本上每一个C程序中都至少要用到C语言程序设计的三种基本结构之一:顺序、选择、循环.其中选择和循环结构的应用又是C语言学习中的关键知识点.选择结构分为二分支选择和多分支选择.二分支是if--else结构的应用,需要注意两个关键字的配对使用及嵌套的路径选择.如以下程序举例:

#include

void main()

{int x,y;

scanf(“%d”,&x);

if(x<0)y=-1;

else

if(x==0)y=0;

else y=1;printf(“%d,%d”,x,y);}如果将if-else的书写按照配对关系用锯齿形状格式表示,可以很容易的看出if-else的配对关系,而如果将程序用不规范的格式表示就很难分清if和else的配对关系了.

多分支是switch结构与break相结合来判断在什么时候断点.对于循环结构则是典型的三种while结构,do--while结构,for结构的使用,其中的关键是循环何时开始,何时结束.而对学生来说更难以把握的就是何时使用三种循环结构中的while结构,do-while结构或for结构.对于同一个问题可以用三种结构中的任一种来解决,如果预先知道循环次数的一般用for结构,如果预先不知道循环次数用while和do-while结构.而且for结构也可以代替while结构编写不知道循环次数的循环程序.当三种循环结构需要结束循环时,可以用break语句跳出整个循环体,用continue语句结束本次循环.

除了以上几个关键知识点,C语言中还有几种语句是不能忽视的.1)空语句.如下简单程序举例:#include

void main()

{;}

函数体中的含有一个分号的语句就是空语句.虽然空语句什么也不做,只是作为一个程序中流程的转向点或循环语句中的循环体,但在较为复杂的程序中使用空语句可以控制程序的间断执行,达到调试程序的目的.2)复合语句.如果用{}把一些语句括起来就构成复合语句.

如果对程序中的某些语句有特殊要求,可以使用复合语句表示,这在大型的程序设计中是必不可少的.

2.6 多动脑、勤动手,提高实践能力

当遇到一个C语言的程序设计题时,要多动脑思考解决问题的多种方法.C语言是一种很灵活的程序设计语言,对于同一个问题会有多种途径得到最后的结果,如果仅满足于一条道路到达终点,是不能拓展自己的解题思路的.通过动脑写出了多种不同的程序实现同一个题目,还要动手进行上机调试.有的学生想法很正确,但编的程序上机调试时,问题却很多,通过上机调试可以找到自己知识的缺陷和问题所在并改正,提高自己的编成能力.

2.7 考核方式的改革

C语言是实践性较强的课程,应采用上机考试+理论笔试+课程设计的考核方式,考核的目的应由重点检查学生掌握知识的多少转变为考核学生运用所掌握的知识解决实际问题的能力.也有人认为C语言这门课程的理论考试可以完全放弃,但笔者认为理论考试必不可少.上机考试过程中学生可以用各种不同的方法解决同一个问题,但是有些重要的基础知识点可能因为在程序设计过程中用不到就规避掉了.

在考核中要重视课程设计环节.C语言的课程设计环节应该是最重要的.学习C语言不是为了学会简单的程序设计与调试,而是为了进行实际应用开发,这一点在课程设计环节会得到实现.学生需要在课程设计环节独自或者合作完成一个具有实际应用价值的完整的程序设计.需要分析问题,提出解决问题的算法,将算法编成代码,之后通过多次的调试、修改的过程最后将代码变成一个可以实际应用的系统.这个过程对于学生C语言应用能力的提高来说是至关重要的.

3 结束语

以上是笔者在C语言课程教与学方法改革与创新过程中的一点想法,希望将以上几种教与学方法实施之后,能有效地提高教学质量,改善教学效果,使学生主动学习C语言的积极性明显提高,养成爱动脑、勤动手、独立解决问题,主动总结调试经验的好习惯.

〔1〕谭浩强.C程序设计[M].北京:清华大学出版社,2002.

〔2〕张向阳,王颖.C语言教学过程中学生学习兴趣的培养和激发[J].福建电脑,2009(7):199-201.

〔3〕李毅,廖军,王岳斌.C特色知识点的教学方法探索与实践[J].湖南理工学院学报(自然科学版),2011,24(4):81-84.

〔4〕程一飞,程玉胜.C语言程序设计教学探讨[J].安庆师范学院学报(自然科学版),2011,17(4):114-117.

〔5〕黎未然.高校计算机本科专业C语言课程教改探析[J].广西民族师范学院学报,2011,28(3):103-105.

〔6〕张琴.C语言实验教学改革的探讨[J].科技视界,2012,3(9): 83-84.

〔7〕郭建军.C语言教学中应重视的两种语句[J].电脑学习,2010,12(6):82-83.

G642

A

1673-260X(2014)07-0263-02

猜你喜欢
C语言程序设计语句
重点:语句衔接
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧
基于C语言的计算机软件编程
高职高专院校C语言程序设计教学改革探索
PLC梯形图程序设计技巧及应用
论子函数在C语言数据格式输出中的应用
如何搞定语句衔接题
作文语句实录