C语言程序设计教学改革初探
2016-05-30陈晶晶范宜标李建华
陈晶晶 范宜标 李建华
[摘要]文针对我院目前C语言程序设计教学过程中存在的一些问题进行了分析和总结,明确教学目标,提出一套行之有效有解决方案。
[关键词]C语言程序设计;教学方法;编程能力;逻辑思维
0.引言
c语言程序设计是我院理工科专业的一门非常重要的专业基础课。对于我院理工科专业的学生来讲,学习这门课程的目的不仅是要通过期末考试和计算机等级考试,获得学分和计算机等级证书,更为重要的是,通过这门课程的学习,培养和锻炼一定的编程能力和逻辑思维能力,将来能够利用c语言程序设计的相关知识解决专业领域中的一些实际问题。
1.现阶段教学中存在的问题
1.1学生的学习动机不明确,兴趣不高
学习动机是直接驱动学生进行学习的一种内在推动力,学习动机越明确,学生的学习兴趣越浓厚,学习积极性就越高,学习效果就越好。在我系,c语言程序设计的授课对象是电子类专业的学生。对该专业学生进行调查的结果如图1所示:
通过对这些学生的问卷调查发现,多数学生学习该课程的目的仅仅是为了通过期末考试,拿到学分,并且绝大多数学生对该课程不感兴趣,投入的精力也非常有限。由此可见,多数学生只是因为学校安排了这门课程而不得不学,而并没有真正意识到在信息自动化的当今时代,程序设计已经成为我们理工科专业的学生必须掌握的一项基本技能。
1.2教学方法不足
传统c语言教学中,教师对学生进行“时空”侵占,学生就像知识的“容器”。传统的c语言教学方法还是侧重于讲解语法知识,由于课时限制,在教学过程中,对程序设计思想、方法和风格等相关知识的介绍非常有限。在课堂上,仅仅只是强调教师“教”的主导作用,却忽略了学生“学”的作用,压抑了学生的创新思维能力。这使得大部分学生把主要时间和精力花费在死记硬背语法知识上的,却没能真正培养一定的逻辑思维能力,更加无法利用c语言来解决相关专业的问题。
1.3对现阶段学生编程能力进行分析
笔者通过对传统c语言教学下的学生的编程能力进行出题调查,结果如图2所示:
2.解决方案
2.1帮助学生明确学习目标,提供自主学习环境
学生只有学习目标明确,才会有学习动力,才能端正对c语言程序设计这门课程的学习态度,从而对这门课程有了浓厚的学习兴趣。在c语言程序设计授课之初,向学生介绍其课程概况、在本专业中的重要基础地位及与其他后继专业课程的关系,甚至举本专业实际生产中的案例进行说明,激发学生的好奇心和求知欲,從而使学生明白,学习这门课程的最终目的不是为了通过期末考试,获得学分,而是为了真正掌握编程和逻辑思维能力,为后续相关专业知识的学习打下一个坚实的基础。
自主学习是当前教育学家普遍提倡的一种学习方式,在这种方式下开展c语言的学习活动,能够充分体现学生的主体地位,发挥学生学习c语言程序设计的能动性、主动性,使得学习针对性更强、效果更好。创造相应的自主学习环境,给学生正确的引导。例如,在课堂上,给出一些经典程序让学生积极思考讨论。上机时,布置一到两个程序设计题让学生积极思考并通过上机实践。期末考核采用课程设计等形式进行。
2.2各种教学方法的灵活应用
c语言含有丰富的运算符和数据结构类型,语法知识点非常繁杂,学习起来难度较大。在课堂教学当中既要讲授相关概念,又要激发学生的编程思想与创新思维,但由于理论课学时有限,故要讲好这门课程就需要灵活运用各种教学方法。
2.2.1利用学生已有知识引入新概念进行教学
在c语言程序设计中,有些概念学生刚接触,会觉得抽象,不容易接受和理解。作为教师,需要将枯燥难懂的理论讲得通俗易懂,要能够巧妙联系学生已有的数学、物理或日常生活中的相关知识来讲解这门课程中的相关概念。例如:在讲解数据类型的时候,c语言当中的整型就相当于数学当中的整数,浮点型就相当于数学当中的小数,这样,学生就对这两个基本数据类型就有一个初步的认识。然后再进行深入讲解。为了解决许多实际问题,c语言需要区分更细的数据类型,整形又分为短整型、长整型与整型,有符号与无符号整型,浮点型又分为单精度与双精度浮点型,所不同的就是它们能容纳的数据范围不同。最后,举几个相关案例进行说明,例如使用不当会出现溢出等错误。这样一來,学生对这两个数据类型的特点就理解得非常深刻。
2.2.2板书和多媒体相互结合进行混合教学
传统的教学当中,或者使用全板书,或者全部使用多媒体。实际上,这两种方法各有优缺点,不能相互替代,c语言程序设计课程适宜采用这两种方法混合教学。例如,在给学生分析阅读程序时,可以利用板书模拟上机调试的单步运行模式,从而帮助学生提高程序分析能力。在讲解一些较为经典又难以分析的算法,例如几种排序算法,就可以利用可视化开发软件编写的程序先进行动态演示,令学生对该算法有一个直观的印象,产生兴趣,进而再通过与学生互动,讲解其编程思想,最后给出源程序。此外,对于c语言的调试工具、调试方法的介绍,也需要在课堂上通过多媒体进行演示,帮助学生更快掌握相关知识。
2.3加强实验环节
c语言程序设计是一门实践性很强的专业课程,仅靠听课,学生很难完全学好这门课程。为进一步巩固课堂上所讲授的理论知识,必须大力加强学生的动手实践环节。使学生在独立分析问题、思考问题和解决问题的过程中,提高编程能力和逻辑思维能力。
以往,在实验过程中,有些学生一遇到问题就请求指导,一般情况下,教师很快给出正确的解决办法,却没有留给学生一定的思考时间和空间,久而久之,学生会产生依赖思想,遇到问题就寻求帮助,不利于他们独立思维能力的培养。鉴于此,在类似情况下,教师可以适当给出一些启发式意见,鼓励学生独立思考并解决相关问题。并且,学生独立解决问题所获得的成就感是鼓励他们进一步深入学习、培养兴趣的极大动力。
另外,上机实验分为第三个阶段:第一阶段,通过几个简单的小程序让学生熟悉编程环境,在这个阶段就应当注意培养学生良好的编程习惯;第二阶段,布置一些与课堂内容相关的程序设计题,鼓励学生完成,可以帮助他们及时巩固课堂上所学的知识点和培养他们的编程能力;最后一个阶段,c语言程序是结构化程序设计,是由一个个函数作为基本单位构成的,因此,布置一些课程设计题,让学生分组完成并进行评讲,能够让学生思维更具有条理性、清晰性,并培养了学生的团队合作精神。这三个阶段,必须做到环环相扣,循序渐进。
2.4教改结果分析
经过教改试行两学期,对这两届学生的编程能力进行调查,结果如图3所示:
通过调查发现,原来少数学生会编程,现在多数学生的编程能力有了很大的提高。
3.小结
c语言程序设计是理工科各专业解决问题的重要工具。在教学过程中,以培养学生逻辑思维能力和动手能力为目标,并结合当前学生的特点,进行各种教学改革。并已经将各种方法形式在我系相关本科专业中进行推广。事实证明,该相关专业学生的c语言方面的编程能力和思维能力较过去几届,有了长足的进步。
当然,在教学的其他环节当中,仍然存在一些不足之处,这还需要借鉴其他高校的优秀教学方法和模式,为提高我系c语言程序设计教学质量而服务。
作者简介:
陈晶晶(1982-),女,福建
龙岩人,汉族,龙岩学机电工程学院讲师,工学硕士。主要研究方向为通信信号处理与调制解调技术。
范宜标(1981-),男,福建龙岩人,汉族,龙岩学机电工程学院讲师,工学学士,主要研究方向为电子技术。
李建华(1980-),男,福建龙岩人,汉族,龙岩学机电工程学院讲师。工学学士。主要研究方向为电子技术。