浅析非计算机专业《C语言》课程教学改革
2017-05-30庞晓凤骆无穷刘贤峰
庞晓凤 骆无穷 刘贤峰
摘 要:C语言是目前国内高校理工科专业开设的计算机基础课程,目的是培养学生用计算机解决问题的能力,为后续专业课程的学习及其它计算机语言的学习打下基础。为了有效提高该课程的教学质量,本文针对《C语言》课程传统教学存在的问题,提出了以学生为主,以案例、任务驱动为导向的教学方法。
关键词:基础课程;传统教学;计算机语言;学生为主
中图分类号:G642 文献标志码:A 文章编号:2096-000X(2017)07-0118-02
Abstract: As one of the core curriculums in Computation Science, C Language aims to help students in solving problems with computer as well as the way of studying other programming languages. In this paper, "student-center" and project-driven tuition models were proposed according to the lacks of traditional tuition model.
Keywords: core curriculums; traditional tuition model; programming languages; student-center
一、概述
C语言是一种结构化的程序设计语言,具有运算符丰富、使用简单灵活、目标代码执行效率高、可移植性好、能针对硬件编程等特点,在国内外得到广泛应用。目前各高校理工科专业都将该课程作为一门面向大一新生的通识课程,在专业建设和课程体系中具有重要的地位和作用。通过该课程的学习,训练学生程序设计的基本技能,使学生养成良好的程序设计风格,培养学生的逻辑思维和创新实践的能力,为后续专业课程的学习奠定良好的基础。
由于大一新生习惯了中学的强化应试模式的教学,大多数学生学习缺乏自主性,应变能力较差。绝大部分学生中学阶段没有学习过计算机相关知识,C语言作为计算机语言的入门课,学生感到难度较大。加之该课程授课老师的教学多数采取以讲语法和程序结构为主,通过实例讲解算法和程序设计方法。使学生在学习的过程中感到该课程知识点繁杂、难记,动手写程序困难,学习积极性不高,很难达到预期目标。
本文针对目前该课程教学存在的问题,本着以学生为本的原则,根据学生的实际情况对课程的课堂教学、实验教学及考核方式提出了改进方法,以提升学生的学习兴趣,提高学生分析问题和解决问题的能力。并结合目前先进的教学理念和教学模式对该课程教学提出了新的教学方式。
二、改革传统教学模式,提倡“学生为中心”的学习模式
目前大多数高校在C语言教学中仍是以教师课堂上讲授为主,学生被动接受。教师按教材介绍基本语法规则,通过教材上的例子讲语法的应用。教材上的例题多数是数学方面的问题,学生听不懂,感觉课程很难、很抽象、很枯燥,难以按计算机思维方式去解决问题,造成学生的学习积极性不高[1]。
我校C语言课程教材选用清华大学《C程序设计》[2],课程学时数少(理论20学时、实验12学时)、内容多,为保证能保质保量顺利完成教学任务,我们采用课堂教学+自学+工程实践的方式。
由于课时数限制,教材内容不可能在课堂全部讲解,我们选择了部分内容让学生自学。为了检测自学效果,要求学生写自学报告。例如,开课前(我校新生入学前两周军训,第三周开始行课),要求新生先查询有关资料,了解C语言的特点、作用及应用领域,了解课程的目的及重要性,写一份学习报告。预习教材前两章,完成自学学习报告。通过这种方式的实践,可以培养学生的自学能力,使学生能尽快适应大学的学习方式。
第一次课的引导教学非常重要,通过PPT或视频演示的方式向学生展示计算机的工作原理及软件开发的过程,让学生明白软件开发过程中,算法和程序设计是软件开发人员的基本功,只有掌握了算法的设计并学会某种程序设计语言,才能进行程序设计[3]。非计算机专业的学生必须要掌握一种计算机语言作为今后专业应用的工具。我们选择学习C语言,是由于C作为面向过程的程序设计语言,适合于解决小型程序的编程及底层的设备驱动程序和内嵌应用程序设计,其应用面很广。
在课堂教学中将传统板书与多媒体课件相结合,课程中涉及的基本概念及各章的知识要点采用多媒体课件教学,课堂上要使学生理解各知识要点及基本概念,可通过传统板书举例说明。教学中关于知识点的应用,采取案例分析及任务驱动的方式组织教学,由浅入深,逐步深入[4]。
例如,讲循环结构的应用时,先提出求1~5累加的问题,告诉学生计算机做重复性的工作效率最高,引导学生分析如何让计算机反复执行某些操作步骤来模拟人工进行累加运算,要求学生先理清计算机处理该问题需要执行的步骤,即计算机算法,再考虑如何用C的三種不同的循环控制语句去实现,并对这三种循环控制语句进行比较。如此,采用先提出问题,再引入解决问题的语句,讲语句的语法规则和应用,学生更容易理解和掌握相关的语法知识。
在这个过程中,老师的主要作用是引导和解惑,鼓励学生积极思考,尝试各种不同的编程思路。并对学生的主动性、积极性及创新思维即时地给予反馈及肯定[5],在此问题基础上,再进一步提出求键盘输入的N个数累加的问题,求N个数中最大值的问题等等。
老师提出问题,让学生主动参与课堂讨论,使学生由被动听课变为主动参与,活跃了课堂气氛,让学生在做中学、快乐学习。经过实践,采取这种教学方式,能学生能尽快地掌握各知识点,有效地提高学生对该课程的学习兴趣,增强学生学习的自信心。
三、改革教学模式,以工程实践为主
C语言是一门实践性很强的课程,需要学生有足够的时间上机练习。但由于现在的教学学时分配通常是理论2/3,实验1/3,实验环节分配的学时数不多。实验课主要是在教师指导下学生自已上机练习,多数学生在遇到问题时(很多是语法上的问题),没有想自已通过查书本上的知识解决,而是急于询求老师的帮助,没有认真对待上机实习,只求程序通过而不思考和分析出错的原因。上机实习内容大多是验证性实验和简单的编程。
为解决传统实验教学所存在的问题,帮助学生将课堂上所学的知识学以致用,能自已独立分析问题、编写并调试程序,提高学生的编程和创新能力。我们将实验课内容规划为:验证型实验、设计型实验及课程设计三部分。
验证型实验,通常是给出程序,让学生运行程序,观察程序运行结果。实验过程中对程序结果进行分析,主要目的是让学生通过实验掌握编译软件的基用使用方法及对输入/输出函数格式的理解。
设计型实验,一般是针对某个版块的内容(如:分支与循环、数组、函数等)布置一些题目,让学生先将程序写在作业本上交任课教师查阅,然后再上机调试。学生通过设计型实验,掌握各控制语句的用法,学会分析程序和调试程序,提高编程能力。验证型和设计型实验在课程计划的实验学时内完成,实验完后要有书面的实验报告。
为提高学生综合应用所学知识的能力,在课外安排了课程设计任务。给学生布置几个应用课题,让学生分组(一般是3-5人)选题合作完成,要求学生按软件开发的步骤完成课题设计工作,最后提交课程设计报告及调试通过的程序清单。通过课程设计培养学生综合应用语言的能力和综合分析能力,提高编程水平。让学生分组设计,目的是培养学生相互合作、协同工作的团队合作意识。
经过实践证明,采用以工程实践为主的实验教学模式,能够使学生理论与实践相结合,更深入地理解理论课所学的各知识点,有效地提高了学生编程能力及综合分析问题和解决问题的能力。
四、改革考核模式,进行多样化、多角度考核
由于绝大部分学生以前未接触过计算机语言,感觉这门课很抽象、难以理解。刚开始还感兴趣,随着课程内容的深入,部分学生跟不上教学进度,对该课程的学习产生畏难情绪。也有学生对C语言课程有误解,认为C语言是面向过程的程序设计语言,已不适应现在社会的需要,是非主流的程序设计语言。由于认识上的误区,使得学生在心理上抗拒该课程的学习,缺乏学习主动力[6]。
课程考核,以前是平时成绩+实验成绩+期末考试成绩决定课程成绩,这种考核方式使许多同学不注重学习过程,不认真阅读教材,考试前临时报佛脚,刷几套往几届的考题,就能应付期末考试。而平时学习很认真的学生因为期末考试的粗心而不能取得好的成绩。很显然,这种考核方式不能全面真实地考评学生的学习效果。
为了全面真实地反映学生的学习情况,帮助学生扎实掌握课程内容、注重课程学习的过程。将课程考核方式改为平时成绩(10%)+平时测验(20%)+实验成绩(10%)+课程设计(10%)+期末成绩(50%)。平时成绩由学生平时作业完成的情况和自学报告质量评定;平时测验分两个阶段进行,由课程组统一安排出题,每次测验占10%;实验成绩根据学生实验过程及实验报告质量评定;期末考试主要考查学生分析程序和编写程序的能力。
五、结束语
C语言课程是一门理论与实践相合的课程,如何更有效地将两者融合,进一步提高教学质量。需要我们在教学的过程中严格合理地组织好教与学,以学生为主体,让学生参与教学,提高学生的学习兴趣。
本文在该课程的教学改革方面只是做了部分改进,在践行的过程中取得了一些成效。对于该课程的改革,还需要我们不断地努力和探索。今后我们打算为该课程引入MOOC平台,进一步做到因材施教,为每个学生打造量身定做的学习计划,以达到理想的教学效果和教学目标。
参考文献
[1]张续亮.C语言程序设计教学方法研究[J].中国科技期刊教育数据库教育,2015,46.
[2]谭浩强.C程序设计(第四版)[M].
[3]張子振,毕殿杰.C语言程序设计课程教学方法研究[J].福建电脑,2015,12.
[4]庞润芳,郑坤灿.高等院校C语言课程教学改革探析[J].中国轻工教育,2015,6.
[5]朱思瑾,徐军.试探C语言程序设计课程教学优化[J].电脑编程技巧与维护,2015,20.
[6]李顺勤,何骄.基于“C语言程序设计”课程“三改”的探讨[J].高教学刊,2015,24.
[7]唐晓,李强.基于MOOC平台的C语言教学模式研究[J].空军预警学院学报,2015,6.