基于应用型本科《C语言程序设计》教学研究与实践
2012-02-18邓永江
邓永江
【摘 要】C语言涉及的概念复杂,灵活性大,是一门教师难教,学生难学的课程。本文围绕铜陵学院近3年的基于应用型本科《C语言程序设计》教学改革,针对C语言教学中存在的问题,介绍了课程改革中的一些措施,并取得较好的教学效果。并给出了下一步改革的一些设想和努力方向。
【关键词】C语言程序设计;教学改革;应用型人才
Based on the Application-oriented College “language C program design” teaching research and practice
DENG Yong-jiang
(Department of Mathematics and Computer Science of Tongling College,Tongling Anhui,244000)
【Abstract】The concept of C language involves complex, flexibility, hard to teach, and students difficult to learn. This paper focus on Tongling University nearly 3 years based on the applied “language C program design” teaching reform, According to the C language problems in the teaching, this paper introduces some measures in the reform of the course, and obtain a better teaching effect. And give the next reform ideas and direction.
【Key words】C program design; Teaching reform; Practical talents
0 引言
《C語言程序设计》是我校为非计算机专业理工类学生开设的一门程序设计课程,它在《计算机文化基础》课程的基础上,向学生传授程序设计的原理、方法、操作等,学生通过本课程的学习,可以掌握计算机程序设计的基本方法,理解程序设计的基本思路,锻炼学生的逻辑思维能力,培养学生的创新精神,提高学生的综合素质。
但是C语言涉及的概念复杂,灵活性大,初学者较难掌握,许多学生甚至课程学完还概念不清。如何搞好C语言教与学?如何提高计算机程序设计的能力,是一个值得研究的课题,我校2009年10月被批准为安徽省省级示范应用型本科院校建设单位,应用型本科院校教学内容应更多的关注市场的需求,更加重视实践的教学环节。下面,从教学方法、教学手段、实践课程建设等方面进行了一系列的探讨,以期能进一步提高该课程的教学效果。
1 教学现状及存在的问题
1.1 学习动力和兴趣低
大多数C语言教材通常先给出一般的语法格式,然后逐步讲解语法要点。教师也习惯于根据课本中的章节重点讲解语法知识,而忽视对算法的教学,这导致了学生学习有误区,花大量的精力做诸如等级考试的选择题,而对编程的真正目的是什么没有明白,从而降低了学习动力和兴趣,甚至导致厌学的情绪。
1.2 缺乏有效的辅助教学手段
传统的教师口述加板书、学生听的灌输式教学方法其效果并不理想,因为它偏重传授知识、忽视培养能力。学生的基础知识存在很大差异,这使得《C语言程序设计》的教学很难兼顾到每位学生的发展需要,教学中往往照顾到一些学习成绩中等及以上的学生,课后师生见面的次数少,这间接的影响学生的学习积极性。
1.3 与实践结合不紧密,解决实际问题的能力较差[1]
《C语言程序设计》是一门理论性很强的课程,学生要掌握C语言的概念、规则,但如果不加强实验教学的训练,则不利于培养学生解决实际问题的能力,不利于学生创新能力的锻炼。而目前,学生只是仿照书上的例题验证性实验,根本没有认真、系统分析开发过程。在实践教学中普遍表现出学生动手能力较差,综合应用理论知识解决问题的自觉性和主动性较差。
2 基于应用型的教学改革
2.1 激发学生的学习兴趣的教学方法
在C语言的教学过程中,教师应该激发学生的学习兴趣。教师在讲授每一节课以前,必须清楚、明白这节课的目的要求,通过形象生动地操作或有目的的激趣提问,诱发学生的求知欲;也可根据内容讲明在程序设计当中的作用和意义,以及它在知识体系中的地位,引起学生对知识的重视,并形成掌握的动机。
在备课时精心设计教案与教学用例,通过合理的教学内容安排使学生在不经意互动教学中掌握程序设计方法。
例如:为了向学生讲解冒泡排序的算法,教学环节如下[2]:
互动设问:如何把教室里的某一列年龄最大的学生放到这列的尾部?(引发学生思考)。
(1)教师归纳:就是如何在一维数组中移动最大数的方法,随即配合多媒体课件讲解,并现场实现该程序。水中大的气泡始终是往上升还是往下沉?(引起兴趣),引出冒泡概念。
(2)渐进设问:如果要求将教室中该列的学生按年龄从小到大排列安排座位?
(3)教师归纳:刚才找到的年龄最大的学生移到最后,重复上述方法每次在剩余学生中找到最大年龄者,且移到这次最后,直到剩余最后一名学生即可。
(4)现场程序教学:通过现场循环变换实现冒泡排序。
(5)课件制作演示:通过制作Flash动画,生动演示其算法及实现过程。
(6)思维扩散:这列数据从小到大排列好了,如何实现从大到小排列,程序如何修改?让学生思考回答,做到师生互动,是学生能达到举一反三的效果,可进一步引出简单的选择排序的教学。
实践表明,这种精心设计的教学方法深受学生的欢迎,教学环节紧扣学生思维,激发学生的学习兴趣,是学生轻松地掌握程序设计的方法。
2.2 丰富教学手段,加强课外交流
(1)丰富教学手段
第一,善用案例教学法
我们要把那些相对抽象的理论知识转化为具体的案例,采用启发式的案例教学法,调动学生的学习兴趣,将被动学习变为由兴趣激发的主动探索。诱导学生自主学习,独立思考,相互讨论,对案例提出质疑,从案例中分析应该理解和掌握哪些理论知识等。
第二,利用多媒体教学
要积极利用多媒体教学环境,美化电子教案,对一些程序算法制作Flash,做到通俗易懂。
第三,作业练习
有选择性地布置一些练习题和思考题,学生在认真阅读教材和参考书解决问题的过程中,熟练掌握课程的基本内容、重点和难点。
(2)加强课外交流
加强网络支撑环境的建设,利用计算机网络,使学生课前预习和课后复习变得更方便、更直观,把学生经常出现的一些问题以及各种例题、算法发布到我院的教学论坛上,让学生进行学习讨论,教师要及时跟踪并给学生辅导答疑,增强学生学习积极性和自学能力,带动学生通过阅读课外资料以进一步扩展知识面。学生能根据自己的情况有选择性学习,实现分层次学习。
2.3 加强实践教学
《C语言程序设计》是一门实践性很强的课程,学生在学习C语言程序设计的过程中不仅要掌握C语言的概念、规则,还要动手编程、上机调试和运行。衡量学生学习这门课程的好坏,不是看学生“知不知道”,而是看学生“会不会干” [3]。
实践教学是学生实践的重要环节,在实践教学中必须做到循序渐进,对所学的每一部分内容都应该要求学生完成一定数量的实验内容。每部分的上机习题必须精心挑选,既要有基本的、较简单的题目,又要有一些具有挑战性的新颖有趣的题目。
(1)按照课程内容的进度设计系列上机实验。做到各个实验之间相互联系,根据内容依次递进。
(2)在实验教学过程中采用“启发式”教学方法[4],主要体现在:①教师在课堂上应给学生指定明确的有利于消化课堂理论知识的实验题目,针对本实验提几个问题让学生思考;②对实验过程中出现的问题不是马上告诉他,而是引导学生分析,解决问题有哪几种思路,要不然学生下次遇到类似的问题还是没法解决;③上机结束前对普遍存在的问题进行统一讲解。
(3)上机实验针对的往往是一定范围的知识点,各个知识点相互联系不够紧密,具有一定局限性,因此在课程后期需要安排综合性实验训练,将2-4位同学分为一组,鼓励他们互相学习、大胆讨论。所选题目应具有一定的应用背景,如工资管理系统,设计这样具有实用价值的应用系统,使所学知识融会贯通。综合性实验后,不但要做成软件,还应鼓励学生撰写相应论文,在论文中阐述其设计思路、运用的知识及自己的体会。
2.4 改革设想和努力方向
C语言课程改革不是一朝一夕的事情,需要研究和解决的问题还很多,下面是我们的一些改革设想:
(1)目前各种C语言考试系统很多,在现有的技术条件下,完全依赖考试系统也有若干问题:
第一,对整个学校,则需要考试系统所使用的试题库要非常庞大,并要时常更新。否则几轮下来,容易造成试题泄露,对学生有失公平,这要求我们投入人力和财力去維护试题库的建设。下一步我们要重新设计组卷策略,在考试之前从题库中随机抽取不同场次的试题,同一场次的学生采用同一份试卷,这能保证同一班级考试的公平性,减少试题库的更新维护成本。
第二,由于技术条件的限制对考试的题型做了严格的限制,多为选择、判断等容易评分的题型,这样不少教学内容无法在试题中反映出来。下一步,我们要增加人工评卷的模块,对填空题与编程题采用人工的方法评卷。为了保证评分的公平性,对学生的个人信息要进行加密处理。
(2)计算机教育面临的一个长期的普遍问题是大学计算机基础教育的起点在不断提高,针对少数有能力的学生开设提高班,以此发挥学生的聪明才智并带动整个班级的学习氛围,我们设想在大学二、三年级积极开展课外科技活动,组织学生参加程序设计大奖赛。通过各种大赛提高学生分析问题和解决问题的能力,培养学生的创新能力和协作能力。
3 结束语
实践证明,通过这些方面的改革,教学效果比过去有了明显改善,学生学习的主动性和兴趣有了很大的提高,我多次获得学院教学优秀质量奖。
应用型本科人才的培养在我校还是一个新的人才培养层次,有许多的问题需要我们去研究,本文只是针对应用型“C语言程序设计”教学做了某些改革与探讨。
【参考文献】
[1]李胜旭,张翠萍.高等院校计算机基础实验课教学探讨与研究[J].电脑知识与技术,2010,7.
[2]揭安全,王岚,等.师范院校“高级语言程序设计”教学方法探索与实践[M]//大学计算机课程报告论坛论文集,2008:118-122.
[3]张学林,等.项目教学法在“C语言课程设计”中的研究与应用[J].实验室技术与管理,2011.
[4]邓维斌,周玉敏.提高C语言实验教学效果的探索[J].实验室研究与探索,2006,3.
[责任编辑:汤静]