《C语言程序设计》课程教学改革探讨
2018-12-20台海江许鑫郑光
台海江,许鑫,郑光
(河南农业大学信息与管理科学学院,郑州 450046)
0 引言
《C语言程序设计》是一门实践性很强的课程,通过C语言的学习可以培养学生编写程序解决实际问题的能力。对于高校来说,C语言是学生学习编程语言的入门课程,通过理论教学和上机实践,使学生掌握程序设计语言的基本知识和程序调试能力,为后续学习计算机相关课程奠定基础。但由于C语言语法规则繁多,使用灵活,学生虽然能听懂教师讲的程序,到自己独立编程时却无从下手,学生缺乏基本的计算机编程思想和技能,编程能力的欠缺是目前学生无法学好该课程的主要原因。
1 《C语言程序设计》课程教学中存在的问题
1.1 教师教学方法单一
目前很多高校的《C语言程序设计》课程在教学过程中仍然采用填鸭式教学,教师围绕C语言教材自身的内容逐一地进行讲解,在课堂上花费大量时间讲解语句结构和语法知识,所举例题也往往是一些简单的数值计算题,而学生则是被动式接受知识,课堂上很少提问,教师和学生之间缺少互动,这样的教学方法忽略了对学生编程思想和学习主动性的培养,大大降低了学生的学习兴趣,自然达不到理想的教学效果。
1.2 实践能力培养缺失
传统的C语言教学通常以教材中的基本语法知识和经典算法为中心展开,重点放在了基本概念和语法规则的讲解上而忽略了对学生实践能力的培养。教师往往花费大量时间讲解语法细节,而对学生的编程思想和技能的培养存在不足,导致学生普遍反映,理解语法知识并不困难,教师讲解的程序也能明白,而到自己独立编程时却无从下手。
1.3 学生学习兴趣不足
《C语言程序设计》通常是学生进入高校后接触的第一门编程语言,由于学生在高中时接触计算机编程较少,缺乏相应的基础知识,在学习C语言过程中,学生普遍认为课程难度较大,概念过于抽象而难以理解。而且C语言语法规则繁多、逻辑思维严密、实践性强、使用灵活,学生在进行编程实践时,常常出错却不知错在哪里,使很多学生学习时感到困难。其次,传统的教学方式重理论轻实践,教师在教授过程中过多地强调基础语法规则,很少能结合实际案例进行讲解,学生无法理解学习C语言的意义,觉得和现实脱节,能否学好对自己并无太大影响,使学生对C语言逐渐失去学习兴趣和动力。
1.4 上机实践效果不佳
《C语言程序设计》是一门实践性很强的课程,不仅要求学生掌握基本的语法知识,还应具备一定的编程能力和上机调试能力,但学生在上机实践过程中却存在着诸多问题。实验课上,很多学生只是将教材或实验指导书上的程序机械式地输入到计算机中进行验证,验证通过后便认为实验结束,对于实验原理以及程序语句的含义不求甚解;有些学生在课堂上上网聊天、玩游戏,对于实验题目胡乱应付,甚至抄袭他人的实验结果;另外,由于学生上机实践时人数较多,而教师只有一人,无法及时解答学生在上机调试过程中遇见的各种问题,致使一部分学生浪费了很多时间在等待上。这样的实践环节很难达到理想的效果。
2 教学改革措施
2.1 多样化教学方法,激发学习兴趣
传统的C语言教学采用的是“教师讲学生听”的灌输式教学[1],学生学习十分被动,很难激发学生的学习兴趣。因此,教师应注重教学方法的变换运用,开展多样化教学,根据教学目标、教学内容和学生的特点灵活采用多种教学方法。
(1)现场演示法
教师在讲授完一个新的知识点后可在课堂上布置一些简单的练习题,先由学生进行思考、讨论,然后挑选一名学生在课堂上现场编写程序,所编写程序经由投影大屏展现给全班学生,由全班学生一起来检查被挑选学生的程序是否有问题,有哪些问题,例如输入错误、缺少分号、括号不匹配、变量使用前未初始化以及逻辑错误等[2]。通过这一过程,学生可以清楚地认识到程序编写时有可能出现的问题,到自己编程时就可以有意识地避免这些错误,提高程序编写的成功率。
(2)案例教学法
由教师精选一些与实际生活相关的案例作为学生的课后作业,先由学生在课下进行练习,到下次上课时,教师根据学生的完成情况和出现的具体问题在课堂上对案例进行详细讲解。通过对实际案例的不断练习和讲解,不仅能使学生明白C语言的现实意义,还能增强学生的学习兴趣,激发学生的学习热情,提高学生编写程序解决实际问题的能力。
(3)分组讨论法
教师在每讲完一个新的知识点后,针对该知识点布置若干个专题,组织学生在课堂上进行分组讨论,学生通过讨论不仅加深了对新知识点的理解,还可以联想起已学过的知识点,在经过激烈的讨论后,学生往往可以采用不同的语句或算法写出好几种程序。在这个过程中,学生通过不断地互相提问和解答,互相启发和协作去共同分析问题、解决问题,不仅锻炼了学生的逻辑思维能力,也提高了学生的程序编写能力。
2.2 利用项目驱动法,培养实践能力
项目驱动教学法以实践教学为主,在教学过程中不仅可以传授新知识,还可以培养学生的实践能力,它能够极大地调动学生的学习积极性,培养学生分析、解决实际问题的能力,锻炼学生的团队合作精神。
在项目设计之初,先由教师对项目的各项功能进行分析,同时讲解所用到的新的知识点,并对项目所要实现的功能提出基本要求,然后由学生自行组织完成项目的设计和开发。在项目实施过程中,由教师根据学生的能力和特点将学生按照每组3~4人进行分组,由组员推荐或教师指定其中一人担任组长,组长负责对项目进行分工,并协调组员之间的工作。在这一过程中,教师主要起到辅助的作用,根据学生遇到的问题和学生一起分析探讨。同时为了培养学生的创新意识和探究精神,锻炼学生分析和解决实际问题的能力,允许学生在完成项目的基本要求的基础上进行自主创新,展现自己的编程思想。项目完成后,学生进行现场演示答辩,教师当场测试验收,做出评价和总结,并对学生的创新部分予以肯定和鼓励。
2.3 重视上机调试,提升调试技能
C语言是一门实践性很强的课程,目的就是培养学生编写程序解决实际问题的能力。其中,程序调试的能力就是程序设计者所必备的。学生通过不断地修改调试自己出错的程序,并最终成功,这将会给学生带来极大的成就感,进而提高学生的学习积极性。
学生编写程序时常见的错误包括编译错误和逻辑错误。其中,编译错误修改比较容易,而逻辑错误修改则相对困难,程序虽然可以通过编译,但运行结果却与预期不符,甚至出现程序崩溃或停止运行等问题,修改此类错误则需要通过程序调试来解决。学生利用基本的调试方法对程序进行运行调试,在这个过程中,教师要向学生演示调试的方法,学生通过调试自己的程序来掌握基本的调试技能。在上机实践时,教师要有意识地培养学生自己调试程序、解决问题的能力,也可以设计一些典型的案例,让学生做调试练习,从而提高学生的调试技能。
2.4 加强上机管理,提高实践效果
《C语言程序设计》是一门实践性、工程性很强的课程,学生只有通过不断的上机实践才能提高自己的编程能力。然而不少学生不遵守课堂纪律,胡乱应付实验,上机实践效果非常不好,因此,必须加强对上机实验的管理,以期提高上机实践的效果。在上机实践中,为了避免学生利用电脑进行学习以外的行为,教师可以通过机房电脑上安装的电子教室系统对学生的电脑进行严格的监控,也可以通过该系统检查学生的出勤情况。对违反课堂纪律的学生要及时制止,不听劝阻者可由教师远程控制其电脑,禁止一切与上机实践无关的行为。
2.5 优化考核方式,完善评价体系
科学合理的考核方式可以激发学生的学习动力和潜能。目前学生的成绩主要基于期末考核,而《C语言程序设计》的考试多以笔试的形式为主[3],对于实践能力考核不足,结果造成很多学生考试成绩很高,但编程能力却一般,因此,必须加以改革。对于学生成绩的考核应综合考虑,不仅包括期末考试,还应加大平时成绩的考核,平时成绩包括考勤、作业和上机实践等,有条件的情况下可采用无纸化上机考试。无纸化的上机考试能够有效地对客观题目以及学生现场程序设计和调试等实践能力进行考核,这是笔试所无法实现的[4]。这样的考核方式将重点放在程序编制和调试上,注重学生平时的上机实践,可有效提高学生编写程序解决实际问题的能力。
3 结语
《C语言程序设计》是一门实践性很强的课程,也是计算机专业和相关专业的一门重要的基础课程。教师在教学过程中要提高教学质量,就必须在实际教学中不断地探索总结经验,改进教学方法和教学手段,激发学生的学习兴趣,有意识地培养学生的计算机编程思想和程序调试技能,提高学生编写程序解决实际问题的能力,从而提高教学效果和教学质量。