高等院校C语言课程教学改革探析
2015-09-01庞润芳郑坤灿张焕香胡晓燕内蒙古科技大学包头014010
庞润芳 郑坤灿 张焕香 胡晓燕(内蒙古科技大学,包头 014010)
高等院校C语言课程教学改革探析
庞润芳郑坤灿张焕香胡晓燕
(内蒙古科技大学,包头014010)
目前我国部分高校C语言教学普遍存在重理论轻实践的教学现状,导致课堂枯燥乏味,学生积极性、主动性不足。本文结合我校近年来C语言程序设计课程教学实践经验,从程序设计课程本身的趣味性、实用性、实践性、挑战性和创新性的特点出发,提出了“以学生为主体,教师为引导,案例为驱动,实践为主线,应用为目标”的教学体系和具体措施。
高等院校;C语言;教学改革
C语言对高校理工科的学生来说不失为一种最佳的编程入门语言,C语言程序设计的教学对信息技术能力的培养起到了至关重要的作用[1]。C语言程序设计经过多年的探索和教学改革,已经积累了丰富的教学经验,在软件和硬件方面都有了较大的发展。然而随着社会发展对计算机人才需求的进一步提高,C语言程序设计教学仍然存在很多问题,比如大多高校仍采用理论教学与实验分离的传统教学模式,重理论轻实验,实验时数安排不足,课堂教学模式单一僵化,学生积极性和主动性差,学生动手能力不足等等。
许多高校开始引入西方先进教育理念,基于建构主义和CDIO工程教育理念的项目法教学方式,采用案例任务驱动的教学改革,对学生积极性、主动性和综合应用能力都有所提高。部分高校开始对西方教育理论消化吸收,并结合我国及自己院校特点,甚至利用微课堂,提出以学生为主体、教师为导向、应用为目标、培养学生的实践动手能力为着力点的教学理念和教学体系,消化CDIO工程教育理念构建“粗、精、仿、练、操”五步教学法具有很强的可操作性,使学生既掌握基本的知识点,又掌握学习方法。这些新的教改成果与传统的教学法相比有很大的区别,主要表现在改变了传统的三个中心——由以教师为中心转变为以学生为中心,由以课本为中心转变为以“项目”为中心,由以零散知识点的学习为中心转变为以实际任务目标完成为中心。
个人认为三个中心中尤其以学生中心的转变为根本,但如何体现,应该以学生主动学习的程度或占有的时间来考量。最初由于计算机资源短缺,理论课和上机是分离的,连上课演示都难以做到,因而学生计算机知识基本停留在书本上。后来上机学时逐年增加,目前上课学生可以人手一机了,所以完全可以实现以学生为中心的教学转变,而且计算机本身就是实践性极强的课程,所有程序可以直接在电脑上调试、运行并看到结果。许多学生可以在电脑上自学完成,甚至不需要老师,况且计算机语言本身提供了各种尝试的可能,这样既能激发学生的好奇心,又能调动学生积极性和主动性。基于此,钟美[4]提出“精讲多练”,鲁红英[9]等在国家级精品课程“C/C++语言程序设计”建设过程中,将教师讲课课时调整为课堂学时的1/3,其余2/3用于学生实践操作。
我们在近几年的C语言教学探索发现,教师讲课学时还可以继续缩短,对语法少讲和精讲,甚至许多语法不用讲,学生自己在编程时通过尝试即能学明白,主讲编程思想和方法即可。这样,学生主动性和积极性明显增强。本文根据我们近年来的C语言教学改革经验,设计了一套“以学生为主体,教师为引导,案例为驱动,实践为主线,应用为目标”C语言教学模式。
一、C语言程序设计课程教学的现状
C语言程序设计教学主要存在以下三个方面的突出问题。根据与相关院校的交流和查阅大量文献调研,发现这些问题在许多高校C语言程序设计教学中也同样存在。
第一,教学方法没有创新。目前在C语言程序设计课程的教学中主要仍以讲授为主,练习为辅。这种传统的教学方式会导致教师与学生之间的教学互动性不足;学生的学习主动性不够;动手能力差;个性难以发挥;更难激发学生的创新性。
第二,C语言概念抽象,知识点多,学生在学习中对一些复杂、灵活、综合性的算法难以理解,独立编程时不知从何入手,渐渐失去学习的兴趣。
第三,对学习重视程度不够。由于和专业脱节,很多学生认为,这只是一门基础课,在以后的学习和实际工作中作用不大,在程序设计工作岗位中很少会使用到C语言,因此从心理上抗拒这门课程的学习。
二、C语言课程的教学改革
为了提高学生的学习兴趣,增强学习自主性,最终达到提高教学质量的目的,内蒙古科技大学工程训练中心近年来推行了“以学生为主体,教师为引导,案例为驱动,实践为主线,应用为目标”的课程教学改革研究。其中“以学生为主体”的思想主要体现学生学习的中心地位和主体地位,学习是学习者本人的事,应让他积极主动地进行,亲自实践,有问题去请教老师,而不是老师去告之,不能沦为听课的机器。教学方法上要体现因材施教,对优等生和基础差的学生均要重点关注,前者以启发和鼓励为主,后者还要结合引导和督促。具体教改思路是把C语言程序设计课程的教学分为两个阶段:基础内容教学和综合实训。基础内容即传统教学内容,包括数据类型、表达式、顺序结构、选择结构、循环结构、函数、数组、指针、结构体、共用体和文件等。在完成基础内容教学后,为了加强教学内容的实用性、适用性及趣味性,结合学生的专业,设置相应的综合实训项目,进一步巩固所学的知识,提高学生编程能力。
1.C语言课程基础教学内容和方法设计
(1)教学内容设计:知识结构—知识点—经典案例—小练习
根据C语言程序设计课程知识结构的内在联系和教学目标,依次安排基础教学内容,提炼知识点,对主要知识点进行分类和有机重组,每组知识点设计一个相应的经典小案例,同时配一个有趣或有用的练习题目,如表1所示。
(2)C语言课程基础教学方法设计
我们知道,传统教学模式一般都以教师讲授为主,学生被动的听课,这种填鸭式的教学方式问题越来越突出,在程序设计教学中尤甚。课堂沉闷、乏味和无趣,学生昏昏欲睡,味同嚼蜡,缺乏活力,更谈不上积极性、主动性和创新思想。程序设计本身是实践性很强的课程,很多知识都能直接在计算机上测试验证,很多结果都能直接在计算机上展示和完成,知识学过后立刻就能迁移到相关的生活和工程应用中。所以程序设计课程本身就极具趣味性、实用性、实践性、挑战性和创新性。因此,我们抓住这一特点,进行了教学方法的重新设计,让学生从幕后走向前台,从被动听讲变为主动实践,从实践中学习。而老师从台前到了幕后,当然不是变为被动,而是更加主动,重在引导、管理、解答和评判。具体的教学过程和方法设计如图1所示。首先,教师分配1/4学时精讲,围绕案例展开,讲主要知识点、算法及实现,然后把3/4学时用于学生动手测试、验证、展示程序结果和尝试新的应用。教师在此期间进行引导和解决疑惑,鼓励学生进行各种编程尝试,对学生的积极性、主动性和创新行为给予及时的反馈。不过该方法用于一个教师带1到2个班是可以的,1个班最好,我们目前调整到1个自然班大概40人,但对于3个班(100人)及以上的大班授课效果不好,答疑辅导不能及时解决,不适宜采用这样的方法。
表1 基础教学内容设计
图1 基础内容教学过程和方法设计
2.C语言课程综合训练内容和方法设计
综合实训是在基础内容教学结束后,利用部分课内时间,一般课内4学时,持续时间在1-2周(因为C语言课程安排每周2学时),在此期间,学生要根据所选题目的难度额外安排10-15小时的课外时间,计算机使用情况是上课在机房,一人一台电脑,课后可以使用自己的电脑,也可以在中心提供的开放机房进行。综合实训的目的是通过一个综合的专业应用题目,培养学生综合运用知识的能力、综合程序设计能力、分析问题和解决问题能力,以及团队合作能力。具体实施方法是:首先,教师结合学生的专业背景给出4-6个与自身专业有关的应用题目;然后,学生5-6人为一组,在给定的题目中选择一项,也可以自行拟定其他的题目;最后,当学生完成题目后由任课教师验收,给出实训成绩。在教学方法上,教师指导学生分析问题,查阅文献,引导学生组内讨论确定算法,协助学生完成程序编写和调试,同时对学生进行评价判断。
3.考核方式
内蒙古科技大学工程训练中心“C语言程序设计”课程考核体系是过程考核和期末考试相结合,过程考核和期末考试各占总成绩的50%,在过程式考核中,出勤和课堂表现占20%,课外实践(自主学习园地)占10%,实训项目占20%,对实训项目和课外实践中表现特别突出的,可看出其已经掌握基本知识和编程方法同时能够很好的应用于具体问题解决的学生,可以直接免试并给予优以上的成绩。期末考试的形式为机试,考察基础知识和编程能力。
4.教学效果分析
我们至今已进行了三个学年的改革实践,通过对2014-2015年第二学期的C语言课程综合成绩分析可以看到如下教学成果。
本学期选修C语言课程的学生共2501人,其中847人参与了教学改革,我们选取了平均分、不及格率、重点难点掌握程度作为评价指标,详细结果见表2。从表中可以看出,参与改革的学生平均成绩提高了近7个百分点,不及格率降低了约5个百分点,重难点理解掌握程度有了较大幅度提高。成绩只是学生学习效果的一方面的反映,参与改革的学生更多的是表现在学习方法、学习积极性主动性和动手实践能力方面的提高,这对学生是受益匪浅的。
表2 参与教改和未参与教改班级考试成绩分析表
三、结束语
通过一段时间的实践,学生积极性和主动性增强了,编程能力、综合实践能力和创新能力有了明显提高。但问题还有不少,比如教师精讲学时的控制,综合实训中学生课后学时的保证,实训题目的难易程度等。鉴于此,我中心会在以后的教学实践中继续总结经验、不断完善和探索新的方法,以提高学生用C语言解决实际问题的综合能力。
[1]国家教委高教司.加强工科非计算机专业计算机基础教学工作的几点意见教育司 ([1997]155号)[EB/OL]http://dean.lzptc.edu.cn/news/news_view.asp?newsid=47.
[2]吴敏,俞琼,许棣华,等.基于建构主义的独立学院C语言课程教学改革实践[J].计算机教育,2012(22).
[3]项响琴.德国理念指导下的教学方法改革——以C语言课程为例[J].计算机教育,2013(21).
[4]钟美.培养应用型人才为目标的C语言教学改革[J].计算机教育,2013(16).
[5]张蕾.基于项目化教学的“C语言程序设计”课程改革[J].计算机教育,2013(2).
[6]李文娟.项目驱动模式在高职《C语言程序设计》课程教学中的应用[J].软件导刊,2014(12).
[7]胡枫.《C语言程序设计》的案例式教学的设计[J].青海师范大学学报(自然科学版),2010(4).
[8]林志阳,王兆晖,张莉.浅谈《C语言程序设计》教学与实践[J].计算机光盘软件与应用,2014(21).
[9]鲁红英,肖思和,孙淑霞.“C/C++语言程序设计”课程教学改革与实践[J].计算机教育,2013(7).
[10]方红琴.立体式C语言程序设计教学改革探讨[J].计算机教育,2012(12).
[11]张丽华,叶利华.基于微课程的C语言程序设计教学改革探索[J].计算机教育,2014(6).
[12]吴永芬,陈卫卫,李志刚,等.面向创新实践能力培养的C语言程序设计实践教学改革[J].计算机教育,2014(3).
Teaching Reform in C Language Course
PANG Runfang,ZHENG Kuncan,ZHANG Huanxiang,HU Xiaoyan
(Inner Mongolia University of Science and Technology,Baotou 014010,China)
There is a common phenomenon in C language teaching among some of our universities and colleges:theory is emphasized,while practice is neglected.As a result,the course is not interesting and the students are not motivated.Based on our teaching experience in the past few years,we have developed a series of new teaching principles and activities,aimed to make the course more interesting,practical,challenging and innovative.The new way of teaching is students centered,while teachers serve as facilitator and collaborator.The new way of teaching is case driven,practice focused and targeted on application.
university and college;C language;teaching reform
G642.0
庞润芳(1973—),女,副教授,研究方向:数字图像处理。
2014年内蒙古科技大学教学(教改)研究项目(JY2014123);内蒙古科技大学精品课程支持项目(JP2015009)。