宋卫华,华婷婷
(黄山学院,安徽 黄山 245041)
C语言课程教学研究与探讨
宋卫华,华婷婷
(黄山学院,安徽 黄山 245041)
针对目前高校非计算机专业学生C语言教学过程中存在的问题,研究和探讨了案例与任务驱动在教学实践中的应用,对提高C语言教学质量和培养学生程序设计能力具有重要的实际意义和参考价值。
C语言教学;案例驱动;任务驱动
针对高等院校非计算机专业学生的计算机教育,教育部提出了三层教学课程体系,即:“计算机文化基础”、“计算机技术基础”和“计算机应用基础”。[1]目前,在 “计算机技术基础”这一层次教学中,C语言作为首选成为我校为非计算机专业开设的一门基础课程。通过该课程的学习,不仅要求学生掌握基本的编程技巧和结构化的程序设计等基础知识,而且要具有独立的编程操作能力,并要求学生通过C语言二级考试,方可拿到学分,这也是给教和学提出的硬性要求。然而在教学过程中,由于学生计算机水平良莠不齐,知识较为抽象,学生接受有一定难度等种种原因,教师在教学工作中遇到很多困难。为此研究和探索新的教学方法和教学手段,提高C语言教学效果尤为重要。
1.课堂教学中的问题。
由于学校对C语言理论课时安排的缩减,教师在规定的课时内必须完成教学任务及等级考试的压力,传统“黑板式”教学方式速度慢,无法按时按量完成教学任务,目前课堂教学大多采用多媒体授课方式,虽具有生动形象、一目了然、图文并茂等优点,然而也存在弊端:如传递知识量大,放映过程导致教师讲课在不知不觉中速度加快,若学生课前或课后对该课程不做预习和复习,则预期的授课效果不佳,容易走入“满堂灌”和“填鸭式”教学的误区,[2]一堂课下来,教师灌输的知识与学生真正接受的知识成反比,很多学生反映: C语言语法繁琐复杂,语句枯燥难记、界面单一、乏味,不能引起学生们的学习兴趣,上课就像在听“天书”。随着课程进度的逐渐深入,容易造成恶性循环,加上自主探究意识薄弱,缺乏主动性,长此以往丧失了学习下去的信心,产生厌倦心理。
2.实验教学中的问题。
随着近几年高校的扩招,学生人数急剧上升,鉴于此,目前我校C语言教学不再是以原始的自然班为授课单位,主要由学生选课方式来组合成公选班级(班级人数为大班,一般在90人左右)。由于现代教育中心机房设备有限,在选课的过程中,又要兼顾教师、学生、机房三者的空闲时间,最终理论班级和上机实验班级并不是同一个老师讲授和指导,虽然教研室采用集中备课,统一安排上课进度,但仍然无法避免理论与实践的偏差与脱节问题:即学生上课时的理论进度和实验进度不一致,给上机实验的进度安排带来了一定的难度,不好统一管理和安排实验。由于教学时一个班级学生人数较多,学生与辅导教师比例失调,一堂课下来,教师忙得应接不暇,在教学上却仍旧无法实现一对一实时的辅导工作,导致实验环节的教学质量大大下降。
1.案例与任务驱动教学为主,灵活采用多媒体辅助教学,充分调动学生兴趣。
(1)激发学生的学习兴趣,上好第一堂课。
良好的开端是成功的一半,教师尤其要上好第一堂课,力求第一堂课授课内容生动、富有吸引力,因为这直接关系到学生对该课程的兴趣。比如,可引入一些用C语言编写的趣味性的游戏实例,并且在讲解的过程中,适时穿插对C语言的发展做出突出贡献的一些科学家的生平趣事等,这样在课程伊始便吸引学生关注,调动了学生的积极性,为后续知识的学习埋下良好的伏笔。
(2)采用案例与任务驱动教学,灵活运用多媒体辅助教学。
C语言教材一般先从理论知识入手,然后逐步引入程序的编程,这就导致在讲解纯理论知识的时候,比较抽象,学生一头雾水,不知所云。因此,应尝试从典型案例入手,对书本章节内容顺序适当重组,[3]边学习理论边实践,加深学生对知识的理解和领悟,这样才能做到一箭双雕,理论实践双管齐下,学生对知识的掌握才能扎实。由于课时缩减及现代多媒体教学的应运而生,教师在课堂教学中,应灵活运用多媒体辅助教学,尤其是在调试程序时,边讲解边调试,对那些易犯错误的知识点,给予强调、启发,学生才能一目了然,印象深刻,达到事半功倍的效果,但另一方面也要注意讲课步调和速度,防止多媒体教学变成“填鸭式”教学,过犹不及。案例教学法本身就是一种综合性的教学方法,[4]其主要思想是案例引入的主题式和程序设计为主线的贯穿式,二者有机结合,相互补充。特别地对选择、循环、数组、函数等有一定难度的章节的讲授,尤其要采用案例教学法,引入实际中的一些例子,让学生从计算机程序设计角度出发用自然语言进行思考,然后将自然语言转化为我们的计算机语言即C语言进行问题的解决,这样就可以把抽象的理论知识具体化,复杂问题简单化,达到化整为零的目的,学生接受起来也比较容易,学习起来积极性也更高。另外,多媒体教学中还可在上课的过程中配以动画,并边调试程序边讲解,使学生跟着老师的思路进行同步思考。如循环程序设计的讲解,教学中可利用如下案例:我们班有90人,假如毕业五年后大家回母校相聚,为了大家沟通和交流,要求每两人之间握一次手,并且仅一次,多握就是非礼,少握就是不够友好,假如你是节目策划人,请给出握手方案,最后编程计算总共的握手次数。学生对此案例很感兴趣,都踊跃发言,然后教师对编程过程加以引导。这种在实例程序中讲解编程的思想,进行基于实例的教学策略,调动了学生对编程的兴趣。课后要安排与上课知识点相关的作业,利用任务驱动的方法,督促学生课后思考,温故而知新,提高学生的悟性和解决实际问题的编程能力。
(3)因材施教,反馈教学。
由于学生计算机水平良莠不齐,所以C语言的教学必须注重因材施教。一方面在采用案例与任务驱动教学法进行C语言教学时,教材的选取也是关键,为此我们选用周鸣争主编的《C语言程序设计教程》[5]作为主讲教材,该教材以程序设计为主线,从应用出发,通过案例和问题引入内容,并提供了多种形式的习题;另一方面,对于那些编程悟性较高,自学能力较强的学生,教师应给予方向性的指导,对于能力一般的同学,则引导他们把重点放在掌握基础知识、常用算法、上机基本操作等内容上,为计算机等级考试做好准备工作。除此之外,课下还要与学生多沟通交流,利用反馈教学法及时掌握他们的学习情况,然后有针对性地进行知识讲解、总结,不让问题累积,造成恶性循环。
2.实践与理论有效结合,切实培养学生的编程能力。
C语言作为一门实践性较强的课程,课程中的算法、有关的程序的操作、调试、运行都需要在计算机上操作实时演示,实验课至关重要,与课堂理论相辅相成,二者是一个有机的整体。[6]
(1)精心设计实验案例,提高学生上机成就感。
由于我校C语言采用学生自主选课组班,理论课和实验课不是同一教师,所以保证实验教学质量的一个必要前提就是实验课老师要和理论课老师及时沟通交流,以便统一安排进度。实验课教学尤其要注意循序渐进,一般教材都以算法、程序为主线贯穿始终,内容枯燥不易理解,学生在学习的过程中理不清头绪,个别学生反应太难。所以教师要精心设计实验内容,可先把实验中涉及到的主要知识点,先提前布置,让学生做好预习工作,然后设计一些有趣味的小例子,可让学生“照葫芦画瓢”先模仿,这样,在调试的过程中,学生慢慢有了成就感,对知识点的掌握和储备工作也就完成了。继而在做有一定难度的实验时,学生不会觉得无从下手,而是能融会贯通,举一反三了,同时对以前的知识又能做到温故而知新。另外,对于学习能力较强的同学,在完成实验规定的内容后,还可增加一些有难度的选作题,以便拓展其思维空间,使其在学习的深度和广度上进一步提升。
(2)提倡百家争鸣,百花齐放,灵活编程启发创新。
一个问题是可以用多种编程方法来解答的,所谓“条条大路通罗马” 。老师不能只讲授一个所谓的“标准答案”,这种教学方式,禁锢了学生的思维。“授之以鱼不如授之以渔“,事实上,对同一个题目,教师应启发引导学生思考、讨论,不同的学生能用多种不同的方法编写出来。如求1+2+3+…+n!,有些学生能够用累加的方法,而有些学生就会用等差数列的求和公式。老师批阅作业后,应将所有正确答案公布出来,并对其进行编程思想和思路的详细解析,让学生相互学习,提高学生编程的悟性和编程技巧,从而学会从不同的角度入手看待问题、解决问题,有利于学生解决实际问题时编程思想的培养,提高学生的创新能力,并督促他们从传统的学习方法向创新学习方法的转变。
(3)提倡互帮互学,选择优秀学生助手。
由于我校C语言实验教学不再是以原始的自然班(一般60人)为授课单位,主要由学生选课方式来组合成公选班级(一般在90人左右),导致上机时学生问题很多,解答起来目不暇接,一堂课下来教师尽职尽责,忙忙碌碌,学生还是有问题没解决,有时上机时间要延长半个小时左右,导致网上提交作业延迟。为此,教师应加强对学生的了解,发现并鼓励几名编程能力较强的学生作为助手,使之成为学生中的小老师,营造一种互帮互学、共同进步的学习气氛,对那些基础差些的学生起到激励的作用,同时也可行之有效地提高上机的教学效果和效率。
(4)利用网络平台,进行交流和资源共享。
充分发挥校园网的优势,利用网络辅助教学手段,强化教学内容,培养学生自主学习的能力。随着网络的逐步深入,我校现代教育中心建立了计算机公共教学平台,以促进现代化教学的需要。运用该平台,教师可以发布课件、教学(考核)大纲、实验作业、模拟考试题库及真题库等软资源供学生使用,同时学生都使用网络提交作业,并对作业的完成时间进行了课堂限制,以督促学生在规定的时间内完成任务,此外,教学论坛模块提供了师生交流的平台,网络答疑促进了教和学的双方进步,有利于二者之间信息的反馈,提高教学质量。总之,校园网络公共教学平台的建立,拓展了教学的手段和空间,丰富了教学内容,可为学生提供更为广泛的沟通渠道与环境。
本文分析了目前高校非计算机专业学生C语言教学过程中存在的问题,并研究和探讨了在教学实践中如何提高 C语言教学质量,达到 C语言教学在程序设计能力培养中的目标。然而教学是一门艺术,教学方法探讨永无止境。计算机技术发展迅速,C语言教学方法在教学实践中更需要不断的改进和创新。任何教学方法只有在一定的条件下才会显示出优势及其使用的范围,所以我们也要紧跟时代的发展,对教学进行实时的知识更新,并不断地进行深入研究和探讨,才能适应目前应用性人才培养的需要。
[1]中国高等院校计算机基础教育改革课题研究组.中国高等院校计算机基础教育课程体系 [M].北京:清华大学出版社,2004.
[2]杨其宇,张霞.“C 语言程序设计”课程教学探讨[J].广东工业大学学报,2006(6).
[3]何元惠,高占国,杨静.C程序设计语言教学方法探讨[J].中国科技信息,2007(3).
[4]胡枫.lt;C语言程序设计gt;的案例式教学的设计[J].青海师范大学学报,2010(4):48-51.
[5]周鸣争.C语言程序设计教程[M].成都:电子科技大学出版社,2005.
[6]惠燕,潘煜.“C语言”实践课程的设计与研究[J].科技信息,2011(6).
ClassNo.:G642.0DocumentMark:A
(责任编辑:郑英玲)
DiscussionofCLanguageCourseTeaching
Song Weihua,Hua Tingting
With regard to the problems of C language course teaching for non-computer majoring students, the paper studied the application of case-driven and the task-driven teaching in details through teaching practice. And it is of a practical significance to improve the teaching quality of C language course and to cultivate the program design ability of students.
C Language teaching;case-driven;task-driven
宋卫华,硕士,助教,黄山学院。研究方向:数据库、软件工程。
华婷婷,硕士,助教,黄山学院。研究方向:模式识别。
黄山学院科研项目(校科2008xkjq014)
1672-6758(2012)07-0022-2
G642.0
A