“C语言程序设计”课程教学改革与实践
2009-10-20刘红敏赵山林
刘红敏 赵山林
(中北大学 电子与计算机科学技术学院,山西 太原 030051)
摘要:本文从教学实践出发,分析了当前非计算机专业“C语言程序设计”教学中存在的问题。提出了在课程教学中如何采用案例教学法、基于认知主义的内容设计优化以及以行动导向学习为指导原则来设计和组织课堂和实验教学的改革措施,并应用于教学实践。实践证明改革措施是非常有效的。
关键词:教学改革;教学模式;案例教学;认知主义;行动导向学习
中图分类号:G642 文献标识码:A
1前言
“C语言程序设计”作为全国大部分高校非计算机专业的一门公共基础课,在课程教学中,许多学生都认为该课程涉及的概念比较复杂、规则繁多、使用灵活、容易出错,学习起来普遍感到困难。特别是大多数高校将C语言作为非计算机专业学生进校后首先接触的第一门公共基础课,这种现象尤为明显。为此作者从自身多年教学实践出发,以培养学生用计算机解决问题的思维能力为基本点,对该课程的教学过程进行了大胆的改革尝试。
2传统教学中存在的问题
笔者从事了多年的“C语言程序设计”教学,发现传统教学中教学效果总是不理想,因此对此进行了深入分析,发现在传统的“C语言程序设计”教学中存在以下几个主要问题。
首先,教师将教学目标主要放在了让学生掌握语法规则上,而问题分析和算法思想等程序设计能力和素质的培养不够,导致学生学习积极性不高和缺乏对实际问题进行分析、编程和处理的能力。
其次,传统的教学过程与学生认知过程存在偏差。目前,国内的大多数C语言教材都考虑到知识结构的系统性和全面性,大致按“算法-数据类型-基本结构-数组-函数-指针-文件”的顺序来组织教材。教师按照教材编排的内容和顺序,按部就班地进行教学工作。这种组织方式虽然依逻辑思维方式进行了归类,但难点还是较为集中,跨度大,学生一下子很难接受。由于学生没有编程基础,讲授算法和数据类型时只能讲的多,分析的少,“填鸭”式的将概念灌输给学生,致使学生觉得C语言很难。随后章节的讲授也是先介绍C语言语法规则,然后再针对所学的语法规则讲授例子,例子以语法应用为重点,较少涉及具体的C语言编程应用。这种从理论到实践、理论和实践脱节的教学过程不仅难以激发学生的学习兴趣,导致课程知识很难被学生全面掌握和灵活运用。
最后,传统实验教学效果有待提高。C 语言的传统实验教学以语法为主线,实验课多数是强调语法语句练习,由于语法的单调枯燥容易使学生陷入到冗繁的语法规则之中而逐渐失去学习兴趣。我们应该认识到学习语法不是我们学习程序设计语言的真正目的。程序设计教学的目的是培养学生分析问题和解决问题的能力,是在掌握语法的基础上,通过上机实践,真正地学会使用计算机语言来解决实际问题,培养学生的程序设计思想。
3C语言教学改革的探索
3.1改革教学模式,推行案例教学法等启发式教学方法
针对传统课堂教学中存在的问题,我们决心跳出以语法教学为主线的教学模式,吸收国外计算机课程教学的优点,积极准备推行个案分析,将复杂枯燥的语法知识分解到一个个生动实用的程序实例中。在教学过程中以程序设计为主线进行教学,有意识地淡化计算机语言本身语法规则的介绍,而重点介绍程序设计方法,在分析程序和程序设计中熟悉语法、应用语句,并把软件工程学的思想贯穿于算法分析和程序设计的过程中。例如课程开始先提出温度转换和两个瓶中的油水交换等现实中的问题并以程序来解决,程序中涉及到的整形和字符型等数据类型和赋值和算术等表达式做一讲解,经过多个程序的示例,学生对C程序的基本结构和其中的语法知识有了一个了解,三种基本结构都介绍以后,再将语法知识做一个总结,学生很容易接受。
3.2基于认知主义的内容设计优化
认知主义强调人的认知不是由外界刺激直接给予的,而是由外界刺激和认知主体内部心理过程相互作用的结果(内部心理过程包括态度、需要、兴趣和爱好以及原有的认知结构即过去的知识经验)。学习过程是每个人根据自己的态度、需要和兴趣爱好并利用过去的知识经验对当前的外界刺激(如教学内容)主动做出的有选择的信息加工过程。学生不再是外界刺激的被动“接收器”,而是主动地对外界刺激所提供信息进行选择性加工的主体。认知主义强调教学设计首先要充分考虑学习者的认知特征,并把重点放在教学组织策略上。强调教学内容的组织和传递策略必须充分考虑学生原有的认知结构。
在课堂教学过程中,遵循学生认知过程,对教学内容重新进行归纳,将难点再次分散,以缩小台阶,达到循序渐进。例如,C语言数据类型、运算符、表达式种类繁多,放在一起讲授,学生学习起来难度较大,我们将改变以往教学内容讲授顺序,首先介绍程序结构,使学生对C语言程序结构有个大致了解,然后通过一个简单的求两个数的和的例子介绍常用的常量形式和算术运算符以及相关的表达式,通过求绝对值的例子介绍关系运算等,使学生学习起来没有想象中的那么难。紧接着再教学生编写简单的、实用的C程序设计,然后趁机引入基本输入、输出函数就顺理成章了。这样一来台阶小了,学生的信心也增加许多,学习积极性很快就被提高起来。对于生硬的语言叙述,课堂上改用生动的比喻,进行详尽引导。
程序设计方法的传授是C 语言程序设计课程的另一重点。在教学中,不仅要贯彻自顶向下逐步求精的面向过程的程序设计思想,还要尽可能采用程序框图等程序设计工具,来说明程序设计的过程和算法,来培养学生程序设计的能力和素质。
3.3教学手段改革
传统教学手段中,用粉笔书写板书的时候,教师可能会根据学生的随堂反应,有机而又灵活地掌握分寸,并且可能以恰如其分的比喻,幽默风趣的语言,以姿势助说话等多种形式把对课程的理解表达得淋漓尽致,抓住学生跟随自己一步一步领会教材。但是,程序设计课程中问题分析、算法设计及程序都要在黑板上书写,很难展现题目直接的衔接,并且课程进度受到很大影响。
使用多媒体教室,省去了粉笔在黑板上的书写时间,以计算机技术为核心的现代化教学手段至少比板书教学节省总学时的三分之一,但是现代化的CAI教学在很多情况下只能播放事先辑录好了的讲稿、教案或课件,在一个光线黑暗的教室里,教师无法看到学生的表情。CAI教学不足之处就是容易把板书教学可能实现的双向交流变成单向传递。
基于上述分析,我们在教学过程中充分发挥两种教学手段的优势,采用多媒体与黑板结合的教学方式,对理论知识利用幻灯片给出,例题讲解只要由教师利用黑板对问题进行分析,引导学生写出算法,在语言编译环境下直接进行编程调试,使学生能直观地看到编程的方法与效果,极大地提高了学生的学习兴趣。
3.4以行动导向学习为原则设计和组织实验课程教学活动
所谓行动导向学习就是有目的地、系统地组织学生在实际或模拟的专业情境中,让学生参与设计、实施、检查和评价职业活动的经历来发现、探讨和解决职业活动中的问题,在体验与反思学习行动的过程中,获得完成职业活动所必需的知识与能力。
上机实践是“C语言程序设计”教学中不可缺少的教学环节。充分有效的上机实践不仅能纠正学习中的理解偏差、加深知识要点的理解,还能增强学生的上机实践的积极性和问题处理能力,切实提高编程能力与编程水平。
在进行实验课程教学设计和组织时,我们以行动-学习-行动这条主线来组织教学。具体过程如下:
(1) 编写一些趣味性较高的程序,演示给学生看,通过例子告诉学生我们所需要学习的知识要点;
(2) 在介绍了C语言程序编辑器的使用方法后,带领学生走进实验室,依照例题,进行简单的程序设计,对出程序中的错误,教师现场辅导给予解决;
(3) 授课教师总结实验中的共性问题,课堂上讲解此类问题的解决方法,再讲解所涉及的语法点,这样学生由于一开始已经有了感性认识,就比较容易理解和记住语法规则;
(4) 在理解和记住语法规则的基础上,教师再设计一些简单的题目,让学生走入实验室,经过这样循环往复,对于简单的程序设计,学生很快就可以掌握了;
(5) 随着学习的深入,当接触到较复杂的程序设计时,可以由教师策划一些案例,具体行动由学生自己计划、实施、检查以及修正和评价。对于一个较为复杂的程序,过去教师往往是给学生提示设计思路,这就会局限学生的思维和行动。在教学中我们可以分小组进行讨论,让学生自己拿出程序设计思路和程序设计的算法,画出流程图,然后教师给予指导和点评。
4结论
上述教学内容、教学手段与教学方法的改革,是根据实际教学过程中学生存在的问题提出的,并在“C语言程序设计”课程教学实践中运用。实践证明,这些教学改革效果良好,提高学生的学习热情,让学生从枯燥无味的语言学习中解放出来,既让学生能深刻理解课程的理论知识,又培养学生的创新思维,提高了实验技能,培养了自学能力和创新能力,并锻炼了毅力,从而从被动学习走上主动学习。我们将继续努力探索,使“C语言程序设计”课程教学日趋完善,使C语言课程的教学效果再上一个台阶。
参考文献:
[1] 张锦祥. 高级程序设计语言课程教学改革与实践[J]. 浙江教育学院学报,2007(4):71-76.
[2] 赵山林,高媛.C语言程序设计[M]. 北京:人民邮电出版社,2004.
[3] 王冬. 高职C语言程序设计教学改革探索[J]. 计算机教育,2007(9):94-96.
[4] 万蓉. 基于行动导向《C语言程序设计》的教学实践[J]. 成都航空职业技术学院学报,2008(2):17-22.
The Reform and Practice of C Language Programming
LIU Hong-min, ZHAO Shan-lin
(School of Electronics and Computer Science and Technology,North University of China,Taiyuan 030051,China)
Abstract: Analyzed the problems existing in the teaching of C language programming teaching on non-computer major from the teaching practice. proposed the reform of the content is designed and optimized based on case teaching and knowledgetarism, design and organize teaching of experiment and classroom ground on action guide study, applied to teaching practice. It is very effectual by practice.
Key words: teaching reform; teaching mode; case study; knowledgetarism; action guide study