崔晗,彭文娟
(惠州学院电子信息与电气工程学院,惠州516007)
浅谈C语言理论教学与实验教学相结合方法
崔晗,彭文娟
(惠州学院电子信息与电气工程学院,惠州516007)
针对《C语言程序设计》理论教学枯燥,语法复杂,内容抽象等问题,分析如何提高课堂理论教学效率,提高学生课堂学习兴趣方法,提出理论教学与实验教学相结合观点,做到学以致用,从而提高课堂教学质量。
C语言作为一种计算机语言以功能强,应用广,目标程序效率高,可移植性好等特点被国内外广泛使用,因此成为高校理工科常用的一门教学语言。通过对C语言程序设计的学习,可以培养学生应用高级程序语言分析、解决和处理实际问题的思维方法和基本能力。学习C语言已经成为广大计算机应用人员的迫切要求,对后续程序开发,例如单片机嵌入式开发至关重要。惠州学院学生在后续毕业设计、课程设计和电子设计大赛中都要用到C语言作为程序控制语言,所以学好C语言对学生后续发展影响很大。然而在C语言程序设计的学习过程中,从设计算法到编写程序,显得抽象、复杂,再加上C语言课程作为基础课程通常开设在第一学年,新生们刚刚接触计算机编程,难免会抱怨程序设计太难、太深奥、不好学。对于初学者来说,独立完成编程实验的能力欠缺,程序编辑过程中频频出错,这样会大大打击学生的学习积极性。久而久之,学生的学习热情和兴趣大大降低,跟不上教学进度,也使得C语言成为一种比较难学、难以掌握的语言。
目前《C语言程序设计》教学中,分为理论课和实验课,其中理论课所占比例较大,约75%左右。理论课学习基础知识,实验课提高学生动手编程能力,两者相互结合,相得益彰才能学好C语言,掌握到课程精髓。笔者结合自己对C语言课程的教学经验,将C语言教学中存在问题总结如下:
(1)理论课教学过于应试
在传统的理论教学过程中,教师需要在规定的课时内讲解C语言的语法、语义以及相关细节。为了提高考试通过率,往往在讲课时过分注意语句和语法细节,大量举例讲解教材上或事先准备好的简短程序代码,讲解侧重于语法细节,与程序设计的实用性偏离甚远。受此影响,学生在考试压力下,更多注意的是教材中的典型例题与教师指定的重点内容,结果使学生在学习时一切围绕任课教师的讲授内容死记硬背,却没有真正学会程序设计的基本思想和方法,无法用所学理论知识解决具体的实际问题,更无法形成良好的编程思想[1]。
(2)理论教学与实验脱节
在C语言教学过程中,往往都是先进行理论教学,后期进行上机实验,这将导致在理论教学过程中学生刚刚学习到的理论知识不能及时得到实践操作。而在实验教学时,由于理论知识点讲授的时间与实验课程的时间间隔比较长,学生对理论知识渐渐淡忘,理论讲授没有和实验操作紧密连接起来,使学生在实验课程中不能理解实验内容,对程序语句生搬硬套。对于独立的编程题更不知道如何动手,不能灵活运用所学知识,对需掌握的知识点印象模糊。实验操作和理论知识脱节,不能及时巩固所学理论知识、上机实验难以达到效果[2]。
(3)学生学习主动性不强
《C语言程序设计》是一门需要学生多动手实践的课程,因此,培养学生动手编程能力,是提高C语言课程教学质量的关键[3]。然而,对于大多数第一次接触到程序设计语言的学生来说,还没有形成程序设计的思维,再加上C语言语法繁杂,语句变化多样,所以大多数同学都觉得C语言难学,学习的积极性不是很高。实验时有学生只是玩游戏、看视频,对教师布置的实验题目只是敷衍了事。另外由于实验课都是由一个教师同时来指导几十个学生,教师的主要任务是及时发现问题,回答学生的疑难问题。但由于各个学生编写程序过程中出现的问题有共性的也有个性的,而教师不可能及时解答每个学生的问题,而且有些不愿意寻求帮助的学生会因为一道题目的某些小问题不能解决就会长时间停留在某一题目上,这些问题都会导致部分学生不能继续往下调试,从而影响实验教学进度。
(4)考试方式不合理
目前,C语言的考试方式普遍采用单一、封闭的笔试形式,笔试成绩占70%,而实验成绩只单纯地占很少的比例,因此考试的主要内容是C语言的理论知识。这样很容易导致学生更多地关注C语言的理论知识,而对编写程序、调试程序能力的提高不够重视[4]。另外,因为考试是传统的笔试,所以很多学生平时不怎么学习,只是考试前对重点考试内容尽心死记硬背,并不能真正理解C语言程序内容。
C语言课程理论基础知识多,内容抽象,而本课程又是后续多门课程的基础,例如单片机应用。因此,需要结合后续课程对C语言的教学内容进行优化。笔者根据多年教学及编程经验,教材选用谭浩强教授编写的《C语言程序设计》一书,教学内容重点考虑与单片机应用紧密相关内容,以适度、够用为原则,提炼C语言重点讲授内容,帮助学生从宏观上掌握C语言精髓,不必太较真细节,例如不常用内容不再细讲,只给学生以概括,要求学生课后自学掌握。下面将重点讲授内容及结构列于表1。
表1 各章节教学内容及基本要求
理论课上单纯按照书本来讲语法,语句知识,学生不能直观感受到C语言的应用效果,就会逐渐失去学习兴趣。通常理论课堂上前半个小时学生还基本能集中精力学习知识,后面就出现走神,睡觉,聊天现象。为了解决这一问题,提交课堂教学效率,授课教师需要改进讲授方法,充分利用多媒体,不时插入一些程序片段来提高学生兴趣,例如现场编程,这就对教师的课前准备有了很高的要求。同时教师可以选择一些简单有趣的单片机程序进行演示,例如LED流水灯程序设计,这样就把程序和实际执行过程联系起来,便于学生对C语言程序语法、语句的掌握,有助于学生对程序设计思想的理解,使学生对C语言如何控制硬件有了感官认识,为学生对后续C语言的实际应用打下基础。
这里以部分LED流水灯C语言程序为例
这段程序里有几个重点及常用知识:1."文件包含",学生经常在C程序里看到文件包含#include,根据不同的目的包含不同的文件,这段程序中包含REG51.h文件的目的是为了通知C编译器,程序中所写的P1是指80C51单片机的P1端口而不是其他变量。这样学生们会进一步了解到文件包含的意义,了解到C语言对单片机硬件的控制思路,而不是仅仅局限于书本上的几个常用包含。2.for()和while()循环语句的具体应用及功能。3.函数调用,这段程序里不仅包含主函数,还有用户自定义函数delay02s以及函数调用。总之,通过这样一小段程序加上对程序的实物演示可以让学生们更加直观地了解到C语言程序的实际应用。
C语言实验课对于C语言教学质量提高是非常重要的环节,可以从实验内容,教学方法,考核方式三方面来对实验课进行改革。
首先对实验内容进行改进,实验内容的安排遵从由浅入深,从易到难,循序渐进的原则。刚开始可以布置一些基础性实验,例如验证性实验,让刚接触C语言的学生熟悉环境,学会调试程序,修改程序。然后布置一些编程题,在学生实验前,教师先对实验用到的知识点进行讲解,对难点进行说明,学生通过自己独立编程,逐步形成程序设计思想,提高独立设计程序的能力。最后布置一些学生感兴趣的综合性实验项目,培养学生综合运用所学知识点的能力,提高学生实际分析问题的能力及编程能力,并养成良好的编程习惯。
其次在教学方法上需要教师与学生有更多互动。教师通过对学生编程过程的观察,可以对理论课教学效果得到反馈,从而为后续的教学方法的调整提供方向。为了解决教师少学生多这一问题,考虑将学生进行分组,3-4人为一组,每组至少需要有1个编程能力较高的学生作为组长,组员在编程中出现的问题,由组长负责帮助解决,组长解决不了的问题在统一报告教师解决。这样不但解决了教师资源有限问题,还能提高组长解决问题和处理问题的能力,最后由组长负责向教师反馈编程中常出现的问题。
最后改革考核方式,把传统的以期末考试为重点改为以实验操作过程为重点,考核内容包括实验内容、实验表现、实验报告等多方面。每次实验课,以小组为单位,对组员进行随机抽查,根据组员的编程思路和过程进行打分,这样教师就可以对每个学生的编程能力有个全面了解,从而提高学生上机过程的积极性。实践证明,重在过程的考核可以让学生主动在实验课前准备好实验内容,实验过程中积极编程和调试,实验课后总结经验。这种考试方式把考查重心放在了平时过程的积累,改变了期末考试前死记硬背的应试型学习方式,让学生把功夫用在平时,重视实验课,真正理解和掌握程序设计的思想。
C语言程序设计是计算机相关专业学生的核心专业课,在很多后续课程,例如单片机,毕业设计,课程设计以及在毕业后的实际工作中都会用到。为了能够让学生持续对C语言进行学习,可以用参加各种比赛来进一步提高学生的实践应用能力,从而适应将来工作要求,例如:教师指导学生参加各种电子设计大赛,让学生参与进来做,在比赛中让学生的能力得到更好的提升。
从实际教学效果来看,通过从课程内容的优化、加强理论课上实验操作和重视实验教学效果这几个方面对《C语言程序设计》课程进行改革后,学生学习的积极主动性有了明显提高。对相关后续课程的跟踪调查也表明,学生普遍提高了程序设计思维和编程能力。
[1]谢竞博.C语言程序设计教学中的问题及改革建议[J].重庆邮电大学学报(社会科学版),2008,20(2):137-140.
[2]张乐.C语言程序设计教学中存在的问题及改革措施[J].运城学院学报,2015,33(3):10-12.
[3]钱言玉,谢超.《C语言程序设计》课程实验教学研究[J].合肥师范学院学报,2014,32(3):86-87.
[4]何雪英.基于计算思维的C语言实验教学改革探索[J].电脑知识与技术,2016,12(27):97-98.
A Brief Talk on the Combination of C Language Theoretical Teaching and Experimental Teaching
CUI Han,PENG Wen-juan
(Department of Electronic Science,Huizhou University,Huizhou 516007)
In view of the boring theory teaching,complex grammars and abstract content of C language programming,analyzes a method about how to improve the efficiency of classroom theory teaching and students'interest in classroom learning.The viewpoint of the combination of theo⁃retical teaching and experimental teaching is proved to improve the quality of classroom teaching.
1007-1423(2017)27-0016-04
10.3969/j.issn.1007-1423.2017.27.004
C语言;教学方法;实验教学;教学改革
惠州学院教研教改项目(No.JG2015051)
崔晗(1984-),女,吉林舒兰人,博士研究生,讲师,研究方向为阵列信号处理
彭文娟(1982-),女,湖南衡阳人,硕士研究生,讲师,研究方向为无线网络
2017-05-22
2017-08-15
C Language;Teaching Method;Experiment Teaching;Education Reform