C语言程序设计课程教学探析

2012-04-29 17:27:44王国伟
教育教学论坛 2012年7期
关键词:理论教学C语言实践教学

王国伟

摘要:针对C语言程序设计课程难学和难教的问题,在学生学习目的不明确和学习内容不合理以及教学方式不完善三个方面存在问题的分析基础上,对C语言教学活动中的学习动机、理论和实践内容安排以及教学方式进行了分析,提出了激发学生学习兴趣、调动学生学习主动性和培养学生解决实际问题能力三个解决方法,在教学和实践中取得了良好的效果。

关键词:C语言;理论教学;实践教学

中图分类号:G642.0 文献标识码:A 文章编号:1674-9324(2012)07-0079-02

随着计算机学科和其他学科交叉应用的不断深入,高校都开设了程序设计课程,培养学生掌握和利用计算机分析解决问题的能力,同时提高学生的逻辑思维能力。要进行程序设计,必须掌握一门计算机语言作为编程工具,由于C语言功能丰富,表达能力强,使用灵活方便,应用面广,目标程序效率高,可移植性好,它既有高级语言的优点,又有低级语言的许多特点,通过该课程可以很好地提高学生的编程能力,进一步为学习其他涉及到计算机知识的专业课程或者从事编程开发工作打下良好的基础,因此很多高校都把C语言程序设计作为一门基础的必修课进行开设[1]。然而通过调查发现,在教学过程学生普遍反应C语言难学而老师感觉难教,课程结束后很多学生对程序设计没有清醒的认识,更谈不上进行实际的应用开发[2]。如何解决C语言程序设计课程教学中普遍存在的问题,让学生对程序设计有一个完整的认识,进而培养和提高学生的综合素质,是值得每一位从事程序设计语言教学的教师去认真研究的课题。

一、存在的问题

高校C语言课程大都在一年级开设,由于大多数学生在高中时接触计算机编程较少,这就导致了学生在学习C语言的过程中,感觉其枯燥、抽象、难以掌握;对基本概念尚能理解,但当实际编程时,又感觉无从下手。这些问题跟教师讲课过程中过多注重语法等理论知识,对学生学习兴趣和解决实际问题的能力培养不够有很大关系,主要原因体现在以下几个方面。

(1)学习目的不明确。一些学生不清楚程序课程的学习目的和意义,认为就是学习语法规则,学习内容抽象并且晦涩难懂,没有实用价值,学习只是为了考试及格,认为大一开设的课程是基础课,和专业课联系不大,对自己的就业没有影响。一些非计算机专业学生学习该课程目的甚至只是为能通过计算机等级考试拿到证书。

(2)学习内容不合理。许多老师在讲授课程內容时往往都是先给出一般的语法格式,然后介绍语句的语法规则,最后讲解语法要点和例题,没有易于理解和能够提高学习的案例,由于书本内容死板枯燥且和实际问题脱节,无法满足学生的认识水平,也不能调动学生学习的兴趣。在进行上机实验时,试验内容往往是书本上的或是老师上课时所讲的案例,由于内容的选择不恰当,上机实践很大一部分情况下都变成了打字练习,或者只会验证性地做一些修改对错、得出程序运行结果的实验,一旦要求功能改进,不能进行算法和语法结构的调整,最后学生总会觉得出C语言难学的结论[3]。

(3)教学方式不完善。部分老师的教学仍然采用理论讲授在先、上机实验验证、最后布置作业巩固的传统教学模式,在教学过程中过多强调学习语法格式等理论知识,重点分析程序和算法的运行过程,而不是讲解根据问题如何分析和设计算法和程序,从而致使学生的程序设计能力不强。这种教学模式培养出的学生虽然理论知识学得很好,考试的时候也可以拿到高分,但在真正要求解决实际问题的时候,往往没有编写程序的思路,不知如何下手。由于经常解决不了问题,不能体会到计算机编程在解决实际问题时带来的便捷以及没有编程的成就感,久而久之,学生也就失去了学习计算机编程的动力。

二、解决方法

(1)激发学生学习兴趣。兴趣是最好的老师,能够使人产生愉快的心理状态,并对学习过程产生积极的影响。研究证明学习者只要对学习有兴趣,就可使人脑处于开放状态,学习者对于学习的兴趣越浓,信息在传输过程中受到的干扰就越小,信息接受量就越大。从教育心理学的角度来说,兴趣是一个人倾向于认识研究获得某种知识的心理特征,是推动人们求知的一种内在力量。人的注意力、观察力、思维能力、记忆力乃至想象力都和兴趣紧密相连,兴趣能使人的认识理解记忆处于最佳状态,思维能力最为主动和活跃[4]。有了学习兴趣,学生才有可能有意识地去思考和解决问题,因此在C语言教学的过程中要注重激发学生的学习兴趣。

比如,在讲解变量值交换时,有位老师就问一个比较调皮的学生,如何把桌上的两瓶水互换,这个学生不假思索地说,把一瓶水喝了,再把另一瓶水倒进来,这时老师就问那个空瓶子的水呢,学生很不好意思,就说再吐出来,全班大笑。这时,老师就因势利导地说,对了,在变量值交换的时候,一定要记得找一个人来喝水,然后再吐出来,然后就讲解变量值交换的过程。由于学生觉得当时的情况十分有趣,因此对交换变量值的过程就记忆深刻。再比如,C语言中指针是非常抽象的概念,老师在讲解的时候就问学生,如何让某一个同学起立来回答问题,学生往往就会回答,叫他名字,老师又问如果不知道那个学生的名字呢?学生就会回答叫第几排的第几个同学。这时,老师就讲解假如学生的名字相当于变量名,如果我要让某个学生回答问题,叫名字就是通过变量名来访问,叫第几排的第几个就是通过指针来访问,这只是方式不一样,但都是同一个人,教室有多少个座位相当于计算机内存有多大,第几排第几个相当于座位编号就是指针变量的地址,这时学生就会很容易地理解变量、指针及其地址。

(2)调动学生学习主动性。人有一个特点就是希望做事情有成就感,能够体现自我价值并受人尊重,当其有成就感时,往往能够以更大的精力和主观能动性投入到工作中去。成就感是一种主观感受,有两方面的来源,一是自身的价值观念,二是他人给予的肯定评价。一个人如果自身有一个价值判断,而且能够不管别人的看法,坚持这个判断,那么只要他自己认为自己所做的事情是有价值的。当他尽自己的努力,哪怕有一些错误,却有人关注,能够对他进行好的评价,他就能感受到成就感[5]。因此在C语言的教学过程中应及时鼓励学生表扬其优点,使其有学习C语言的成就感,从而调动学生的学习积极性。

比如在学习过程中对学生中出现的与众不同的新颖的程序设计方法和思路要及时宣讲并公开表扬,以鼓励这种有创意的学风[6];对编寫的程序不符合规范的学生,也要从中找出值得肯定的地方,不能因程序编写中存在的问题而一概否定。在讲授循环的教学环节中,有一个题目叫求水仙花数,大部分同学根据教材思想从100开始到999单循环,分别求出变量的个位数、十位数和百位数,三次方后相加,如果求和与变量本身相等就输出。有一个同学则是使用三重循环,对三个循环变量进行三次方后相加,如果求得的和与三个变量按顺序组成的三位数相等则输出。由于该同学使用了不同的算法思想,老师对其大加赞扬,结果该同学的学习主动性空前提高,后来参加全国数学建模大赛并取得了很好的成绩。

(3)培养学生解决实际问题能力。在理论与实践的辩证关系中,实践是理论的基础,又是理论的出发点和归宿,实践对理论起决定作用;理论必须与实践紧密结合,接受实践的检验,为实践服务,并随着实践的发展而发展。高等教育培养的人才,既要有用社会实践指导的理论功底,又要有在实践中运用和发展理论知识的能力[7]。C语言课程的教学目的是要求学生熟练掌握程序设计的知识,为以后结合专业学习计算机技术以及进行相关的专业“课程设计”和“毕业设计”打下良好的基础。掌握基本语法和程序设计的基本思想、熟悉常用的算法与编程技巧,具备初步的编程解决实际问题的能力[8]。学生如果只会纸上谈兵,没有解决实际问题能力,也就失去了开设该课程的意义。因此在C语言的教学过程中,除了对基本的语法和语句等理论知识进行传授外,还应该注重对算法的教学,培养学生利用编程解决实际问题的能力。

比如,在讲解输入一个成绩输出其等级的问题时应该有效性判断,如果输入的成绩大于100或者小于0则为无效成绩。教师在讲授该环节时一般都会告诉学生,有效性判断是为了防止输入误操作,在实际编程中要加上条件判断语句,不满足时要重新输入。但是在实际应用时,却并非如此,因为在输入的操作过程中,很有可能第一次输入错误,第二次还是错误,以此类推,因此采用条件判断的分支语句在第二次输入错误时程序已不能运行,根本不能解决实际问题。

三、结语

对于大学生来说,学习C语言程序设计的目的是在掌握理论的基础上,通过实践,培养使用计算机编程来解决各种实际问题的能力,达到学以致用。对教师而言则应改进教学方式,使学生在学习过程中体验快乐,提高学习的积极性和主动性。课堂教学是一门艺术,教学方法探讨永无止境,只要能够符合教学内容,激发学生的学习热情和兴趣,就可以实现教学目标。文中所述的问题以及解决方法是根据实际教学情况分析得出,并已在C语言课程教学和实践中运用,并取得了良好的教学效果。当然,在具体的教学环节中,新问题层出不穷,需要我们不断探索和改进,努力使C语言课程教学日趋完善,让C语言程序设计真正成为学生喜欢的课程。

参考文献:

[1]陈一昌.C语言程序教学新探[J].科技经济市场,2011,(9):107.

[2]刘志宏,刘舟荷,张雯晖,等.项目教学法在C语言教学中的实践与研究[J].中国成人教育,2010,(4):139.

[3]万丽华,夏侯贇.C语言项目教学法在非计算机专业学生中的教学体会[J].电脑知识与技术,2011,(7):5968-5969.

[4]常丁.程序设计教学中如何提问题[J].山西师大学报(社会科学版)研究生论文专刊,2010,(37):197.

[5]赖小科.关于“成就感”的思考[J].体验,2010,(7):52.

[6]徐晓伟.《C语言程序设计》教学方法改革探析[J].软件导刊,2008,(7):207-208.

[7]甄阜铭.理论教学与实践教学的同构关系[J].现代教育科学,2011,(5):79.

[8]贾宗璞,许合利.C语言程序设计[M].北京:人民邮电出版社,2010.

猜你喜欢
理论教学C语言实践教学
基于Visual Studio Code的C语言程序设计实践教学探索
计算机教育(2020年5期)2020-07-24 08:52:56
基于C语言的计算机软件编程
电子制作(2018年16期)2018-09-26 03:27:08
谈外科学教学的几点体会
考试周刊(2016年94期)2016-12-12 13:54:57
初中信息技术理论课教学的创新探究
青年时代(2016年28期)2016-12-08 19:04:32
高职高专院校C语言程序设计教学改革探索
嵌入式系统课程“中断、异常与事件”教学实践及启示
计算机教育(2016年7期)2016-11-10 08:31:34
茶学专业校企合作实践教学探索
考试周刊(2016年79期)2016-10-13 23:35:16
《电气工程毕业设计》 课程的教学设计
考试周刊(2016年79期)2016-10-13 23:26:02
高职院校商务礼仪课程教学改革探索刍议
大学教育(2016年9期)2016-10-09 08:12:01
《数据库高级应用》教学创新方法研究
科技视界(2016年20期)2016-09-29 11:25:15