高校非计算机专业C语言教学改革探析
2014-10-21韦晓虎
韦晓虎
【摘 要】C语言是高等院校普遍使用的高级语言程序设计课程的入门教学语言,通过该课程的学习,其对学生编程思想的形成和后续课程的学习起着重要的作用。文中从普通高校非计算机专业学生实际情况出发,根据课程定位、课程体系、教学对象、教学重点、教改实践与创新等几个方面,对该课程进行教改创新,形成针对性的教学方法,采用的方法在教学中取得良好效果。
【关键词】C语言;非计算机专业;教改创新
0 引言
《C语言程序设计》课程是现在许多工科院校非计算机专业普遍开设的高级语言程序设计入门课程,都会投入大量教师进行授课。作为入门课程,基础打下是否牢固以及所形成的编程思想对学生将来学习其它编程语言时有重大的影响,为更好的提高教学质量,多年来大量教师在不断的尝试教学改革[1-2]。对于不同院校,由于学生来源情况复杂,不能采用一揽子的方法予以解决,需要从学校的具体教学实际出发,力求制订科学的教学培养方案。笔者地处西部地区地方院校,所招收学生大部分为本地生源,学生对信息技术知识了解的程度及深度不及发达地区,本文根据作者所处地区高校生源特点,分别对课程定位、课程体系、教学对象、教学重点等方面对《C语言程序设计》课程进行了教学改革实践与创新。
1 课程体系与定位
笔者所处院校是以工科为主的地方性综合院校,即使是非计算机专业,许多学生都需要学习编程知识,并且至少要掌握一门高级程序设计语言,当前除了外语学院以及设计学院等几个院系外,都开设《C语言程序设计》课程,在大一第一学期或者第二学期开设,前导课程基本为《大学计算机文化基础》,后续课程根据不同专业会有《数据结构》、《C#程序设计》、《Java程序设计》及《面向对象程序设计》等课程。如果是第一学期开设,那么会与前导课程同时开设。现有学生基本都是四年制本科学生,非计算机专业开设的本课程与计算机专业开设的课程通过课时的不同以及要求深度不同进行区别。该课程是面向除了文科专业外本科生开设的一门必修课,通过课程的学习,可为后续专业课程的学习乃至今后承担软件开发工作,打下良好的程序设计思路与编程技能的基础。
《C语言程序设计》主要讲授面向过程程序设计知识。通过本课程的学习,要求学生掌握C语言的基本概念,语法规则,更重要的是培养学生面向过程程序设计的编程思想,编程技巧,学会至少一种IDE开发环境,可以熟练使用该开发环境编写程序并进行调试;最重要的是培养学生从分析问题到解决问题到编程实现的能力,也就是要掌握用程序解决问题的编程思想,为后续课程的学习打下坚实基础。为了降低学习的难度,学生上机时使用的IDE为微软的Visual C++ 6.0,在控制台模式下开发,但是当前的软件基本都是Windows程序,学生所学习的内容与现在所用的东西还有一定距离,在以后还需要学习Windows程序设计,需要学习《面向对象程序设计》等课程,而学好C语言是学习可视化语言的基础,可为掌握可视化的面向对象程序设计语言奠定良好的基础。
2 教学对象
我校属于地方二本院校,定位为服务地方,学校面向全国招生,但是招生的学生大部分为本省学生,外省生源只占小部分。通过对近几年学生调查情况来看,部分学生在中学时期就接触过编程,但是都没有深入学习,学生对知识的掌握并不牢固,对进一步的编程方法和思想也没有接触过多。大部分同学没有接触过编程,对计算机的基本知识也没有了解,对基本的计算机操作都不熟练。
根据学生来源构成复杂、计算机基础知识高低不同的特点,教学中,首先教师要不断修改和完善教学目标、教学方法、教学内容,优化教学环节,从而提高教学效果。教师在教学中应该充分发挥引导入门的功效,兼顾各种水平的学生,同时还要加强对学生学习的指导、帮助和督促。使学生了解自身专业特点,了解高级语言学科的学习特点及对于所学专业的重要性,掌握一门高级语言,对于今后的学习有巨大的帮助,向学生讲明,高级语言有很多种,但是基本构成却是相同的,只要认真学好一门,以后学习别的高级语言时会事半功倍。不要认为是非计算机专业,就沒有必要学习编程知识,要引导学生掌握科学的学习和研究方法,树立理想,拟定未来的发展目标;其次,在教学中,应该及时为学生答疑解惑,解决学生学习上遇到的实际困难,在开始入门的时候会遇到很多问题,如果问题得到及时解决会增强学生的信心,从而激发不断学习的兴趣;最后,要适当布置难度适中的课后作业,要求学生要独立完成,要不断地督促学生高效的完成学习任务。
3 教学重点
对于第一次接触程序设计的学生,感觉C语言概念多、内容多、知识点多。觉得很难学,难懂,特别是如何用编程思想来解决一个问题,也就是面对一个问题,根本不知道如何下手,需要不断培养学生编程思想。为了使学生掌握C 语言的精髓部分,同时又避免学生由于需要理解记忆的内容过多而产生厌学抵触心理,本着学以致用的原则,需要对教材进行仔细分析,对教学内容进行取舍。
在概述部分重点介绍为什么要编写程序,介绍机器语言、低级语言及高级语言的概念,它们之间的关系;知道编辑、编译以及链接的概念。C程序的基本构成,知道程序、程序文件和函数的关系,知道如何编写最简单的C程序;知道算法的概念,算法与程序的关系,知道算法的基本要素,以及如何评价一个算法好坏的标准,知道两个最常用的评价算法好坏的指标——时间复杂度与空间复杂度的定义。最后,要学会如何在IDE环境上如何实现完整的编辑、编译、链接以及调试,知道识别源文件、目标文件以及可执行文件,最后运行程序得到正确结果。
在程序结构部分重点介绍三种基本结构,每种结构的典型应用,理解用三种基本结构的不断迭代组合可以解决各种复杂问题,介绍结构化程序设计的概念以及模块化设计的思想。记住标准输入输出函数名称及用法,实现三种基本结构的关键字。在数组部分要重点介绍一维、二维数组的定义和使用;编译预处理部分讲明宏的定义与使用,为什么要使用宏,typedef定义。函数部分重点介绍函数的作用、函数的定义、函数的调用和返回,更需要阐明函数就是C语言中模块化程序设计思想的体现。指针部分是C语言学习重点中的重点,刚接触时比较难理解,重点介绍指针的概念、变量的指针、数组的指针、指向一维数组的指针,指针作为函数参数的使用,同时强调,指针是C语言的精华部分,对指针运用的水平会决定程序的好坏。在结构与共用体部分重点介绍结构体,知道如何使用基本数据类型来实现构造类型,知道共用体的概念。在文件部分,知道文件指针,说明为什么要使用文件,使用文件是为了将各种程序与数据在外存上长久保存,记住并会使用几个基本的文件操作函数。
4 教改实践与创新
要想保证教学质量,提高教学效果,教学方法和手段的改进是必不可少的。传统的灌输教学已不再适合当前学生特点。要求教师在教学中,既要注重教师在教学上的主导作用,更要发挥学生在学习上的主动性和创造性。教师在讲授语言的基本语法规则、基本程序结构、基本编程思想的过程中,既要给学生讲解程序设计的术语,又要采用生活中形象的实际例子对相对枯燥的程序设计术语进行描述,最好能够使学生能够通过形象的生活案例去理解相关的理论知识。同时,要不断调动学生的积极性,引导学生在理解的基础上牢记C语言的语言元素、语法规则、基本概念和基本理论,同时还要鼓励学生不断地进行思考和创新。教学中要及时发现学生中出现的好的学习方法、学习思想和对学科思想的理解,调动整体学生的学习热情,这样会得到较好的教学效果。适时将启发式教学、讨论式教学、理论与实践相结合等方法运用于教学之中,调动学生的兴趣和学习的主动性,强化学科思想的理解和知识的巩固掌握,最终提高教学效果和教学质量。
4.1 将高级语言与自然语言类比进行教学
通过类比说明无论是什么语言都由两大基本部分组成:单词(词汇)和语法,要想很好的掌握一种语言,提醒学生必须熟记语言的两大部分。但是C语言只有32个单词(关键字)、9种语法(控制结构)需要记忆,比自然语言学习简单的多,这样可以减少学生的畏难心理,激发学习的兴趣。对于结构程序设计的三种基本结构,可以用生活中的例子来进行类比解释,每种结构都是对应现实中的一种情况。在教学中,尽量用学生熟悉的生活语言引入计算机高级语言的知识,可以帮助促进学生的理解,在教学中起到了较好的效果。
4.2 理论知识实例化
C语言中关于变量的作用域问题,学生在使用上经常出错,例如在函数fun1()里面定义的变量temp为什么和函数fun2()里面定义的变量temp不同。教学中将函数fun1()、函数fun2()类比为两个不同的班级,将函数fun1()里面定义的变量temp和函数fun2()里面定义的变量temp理解为两个不同班级中姓名相同的两个同学。虽然两人姓名相同,但分属于不同的两个班级,两人的行为、活动范围必然是不同的,所以是两个作用范围不同的变量。教学中多采用此类通俗实例化教学方法,可以起到较好的教学效果。
5 结语
本文对非计算机专业学生在C 语言课程的学习过程中出现的问题作了思考和分析,针对现状,结合教学实际以及自身的体会,进行了初步的探索,针对教学方法提出了一些措施和建议。教学改革与创新的目的是不断提高教学水平和教学质量。《C语言程序设计》课程对培养学生的逻辑思维能力、计算思维能力和以计算机分析并解决问题的能力都有着重要意义,以上教学内容、教学手段和方法是根据多年实际教学经验总结得出的,教学实践中,从授课对象的实际出发,本着以学生为本、以教学为中心的原则,在实际教学过程中,取得了良好的效果。
【参考文献】
[1]周长英,董翠英,陈颖.非计算机专业“C语言程序设计”教学方法探析[J].教育与职业,2010(23):148-149.
[2]何万国,漆新贵.大学生实践能力的形成及其培养机制[J].高等教育研究, 2010(10):62-66.
[責任编辑:杨玉洁]