曹 阳
(陕西理工学院 数学与计算机科学学院,陕西 汉中 723000)
探索高校专科C语言教学模式
曹 阳
(陕西理工学院 数学与计算机科学学院,陕西 汉中 723000)
基于教学实践,分析了当前高校计算机专业“C语言程序设计”专科教育中存在的问题,从激发学生自信心、教材选择、现有教学模式、现代教学手段应用和实践教学等方面进行探讨,进而加强学生程序设计能力的培养,提高教学效果.
C语言程序设计;教学现状;教学改革
C语言[1,2]是最简单、最基础的一门结构化编程语言,是数据结构、操作系统等计算机课程的先行课,是应用最广泛的计算机程序设计语言之一.学好C语言已成为高校学生普遍需求.由于专科学生自身基础薄弱加之C语言自身的特点,学生普遍存在“听得懂,不会编”的现象,教学效果不理想.如何使学生既掌握基础知识又能对所学的知识加以灵活应用解决相关的实际问题,已成为该门课程教学的难点.笔者结合自身从事多年的实践教学体会,对C语言教学改革提出一些看法和建议.
C语言是学生在高校学习中的学习的第一门计算机语言,是人与计算机交流的语言之一.如何将自然语言描述的问题用C语言描述并让计算机解决,为什么必须遵循“所谓的”语法规则等问题成为学生在学习中的障碍,从而影响学生对该门课程的学习兴趣.
C语言具有运算符丰富、语法限制不严格、用户自定义数据类型、程序设计自由度大等特点.然而,这些特点既是C语言的优点,也是初学者学习的难点、绊脚石.例如:自加(++)和自减(--)运算符,虽然能简化程序和提高运算速度,但++/--运算符只能对变量进行运算,运算符前置和后置的效果不同,一个表达式中出现连续的++/--运算符时结果也不同,例设变量i=3,表达式(++i)+(++i)+(++i)运算结果为什么不是4+5+6=15,而是18,这也造成了学生学习的困惑.
从实际教学经历来看,学生学习主要受计算机基础差、逻辑思维能力差、数学基础差、英语能力差四个因素的制约.计算机基础差受环境和条件的限制,逻辑思维能力差影响学生分析、设计、调试程序的能力,加之高级语言普遍用英文,所以要学好C语言必须克服以上四个制约因素.
教学大纲是教师教学必须遵守的守则,然而很多高校并不重视专科教育的培养,只制订了培养计划,没有为各门课制定专门的教学大纲,教师上课时通常根据本科教学大纲给专科学生上课,因而它又成为教师教学的绊脚石.由于教学课时的减少(以前72学时变成今天的36学时),教学的内容没有减少,教师在教学中为了完成教学任务,利用课件进行教学,知识点太多,学生在有限时间难以接受,一堂课下来学生感觉好像“看电影”,从而影响教学的质量.
语言学习必须理论与实践相结合,只有在上机实践中学生才能真正学会如何编写和调试程序,才能更好地掌握理论知识及其应用.然而在C语言实验教学中普遍存在实验时间安排不合理,实验内容针对性不强,不能理论联系实际,不能把编程思路和程序测试放在首位,致使学生分析和解决问题的能力不能达到很好的训练.
C语言程序设计考核方式主要以笔试考核为主,上机考核为辅甚至完全不作考核,形成了一种片面的应试教育,忽视了学生实验能力、动手能力和创新能力的培养.从而不能激发学生学习的积极性,考试及格就行,也就失去了学习C语言的本意.
许多高校并没有为专科教育预订专门的教材及制定专门的教学大纲,而是采用的大学本科教材及教学大纲,只是教学过程中降低难度而已.目前很多院校都采用清华大学出版社出版的谭浩强《C程序设计》,该书内容较多,有些知识点过于细致,学生在自学过程中容易混淆.因此,学校首先应组织教师结合实际为专科学生制订相应的教学大纲,其次教师要认真钻研教材,研究教学内容,结合学生实际情况对教材进行整合、优化设计.授课时注意突出解题思路,突出课程重点和难点,强化在实际软件开发中经常使用的结构体、函数等重点知识,以增强学生求职时的竞争力,实现课程的“程序设计”的目的.
多媒体辅助教学,改变传统的教学方法,抛弃单一的“教师—黑板—教材”的教学方式,将课堂学习与多媒体教学、网络教学、实践教学、个性的学习有机的结合起来,形成“课堂—网络—实践”的教学模式.在教学中可以通过案例教学法、问题引入法、任务驱动法等方法来吸引学生学习的兴趣.例在案例选择时应该与实际相结合,具有趣味性.如在讲分枝结构时,先提出出租车如何根据里数计费,也就引出了起步价内及外的问题,自然也就引出了选择结构的相关知识,当学习完选择结构的知识时,还可以引入“奖学金发放问题”、“综合测评问题”对所学的知识进行巩固,进而改善教学效果.
“精讲”不等于讲得越少越好.教师要讲到要点上,充分体现典型例题的编程思路、算法,将严谨、富有逻辑性的编程规范思想清晰地展现在学生面前.学习C语言必须“手“和”脑“结合起来.多练是学习编程的关键,是检验所学知识的重要途径.在练习的过程中,不仅要注意习题的针对性、典型性和灵活性,还应该提倡一题多解,培养学生从多种角度对问题进行思考的能力,拓宽解题思路,训练学生发散性思维.例如在求n=5的阶乘时,可以用递归,如果求n=100的阶乘,怎么求?应该采用什么样的数据结构?
算法是计算机解决问题的方法和步骤,是程序设计的灵魂,而语言只是算法的表现形式.因此在理论教学中,应注重算法,培养学生以算法为中心的思维模式.将语法知识与实例相结合进行实例教学,使学生互动参与教学过程,解决实际问题.学生程序设计题中必须做到先分析题目,做什么,完成功能是什么,如何做,即给出算法,然后用语言表示,解决问题,最后拓展问题,这样有助于形成学生创造性思维.
实践是检验理论教学的真理.只有通过上机实践,学生才能真正掌握如何编写和调试程序.然而上机实践中存在问题较多,导致学生上机兴趣并不浓厚,主要原因是实验内容针对性不强,实验项目不能激发学生的兴趣,缺乏创新性.很多学生在上机时只是验证程序,没有思考,感觉上机很无聊.因此在教学中首先必须与实际相结合引入教学案例;其次在制订实训内容时可由必做和选做两部分构成,必做是每个学生必须完成的部分,选做部分是供接受能力强、有余力、有兴趣的学生选做;再次采用分组参加项目设计,每组中必须有一个动手能力强的同学和一个动力能力弱的同学,通过编写扫雷、贪吃蛇、五子棋等游戏项目让学生体会实际编程中学与用结合的乐趣,从而提高学生实际编程能力.
期末考试不能作为判断学生成绩好坏,更不能作为判断学生是否优秀的“铁尺”,现代教育中判断学生成绩采取多样化的考核形式.C语言是理论与实践紧密结合的课程,更不能采用传统的考核方式来评价学生,应该将实验教学与平时学习也作为评价学生的依据,也就是说学生的成绩应该由上机操作、卷面及平时成绩构成,具体分布详见表1.
表1 C语言课程考核标准
本文对高校专科C语言教学现状进行了分析、研究并结合实际的教学经历,从教学方法、教材选择、教学内容、学生学习积极性、实践教学等方面提出了自己的教学建议.在今后的教学中仍将不断探索,积极改进教学方法,激发和培养学生学习的积极及创造性,为后继课程及实际应用打下坚实的基础.
〔1〕谭浩强.C语言程序设计(第三版)[M].清华大学出版社.2010.
〔2〕罗建军,等.C++程序设计教程(第二版)[M].高等教育出版社,2010.
〔3〕许晶.论实训在高职C语言教学中的重要性[J].计算机教育,2007(9).
〔4〕丁辉.高职C语言教学改革探索的思路[J].常州轻工职业技术学院学报,2006(3):23-27.
G642
A
1673-260X(2012)03-0225-02
陕西理工学院科研基金(SLGKY10-09)