王洋
摘要:C语言程序设计重修课程已经成为大学计算机教育中的组成部分之一。文章对C语言程序设计重修课程的教学工作进行了探讨,针对重修课程的特点,提出了一些改进重修班的措施,及其在教学实践中的应用。
关键词:C语言程序设计;重修课程;教学方法
中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2017)27-0167-02
近年随着高校招生规模的扩大,学生数量一直呈增长趋势。C语言程序设计作为理工科专业学生必修的基础课程,不及格的学生人数也在逐年增加。重修班的课程教学也是本科教学中重要的组成部分,在重修课程的教学工作中存在一些有别于普通课程教学的特点,需要任课教师采取针对性的措施,才能保证重修课程保时保质完成。
一、目前C语言重修课程存在的问题
1.教学方法与教学手段过于单调。从目前高校的教学情况看,一般现在大多以多媒体教学为主。当然,多媒体教学较以往黑板板书的讲授方式有了一定的进步,但这里边仍然存在一定的问题。第一,多媒体教学方法仍是以教师教授为主、学生听讲为辅的教学手段,启发式教学没有得到充分应用。而且许多教师过分注重PPT教学,强调体系的完整性而非学生的掌握情况。学生经常感到上课好像都听懂了,但是上机时对C语言语法不熟练,编写程序无从下手。第二,多媒体教学很难为学生建立编写程序的直观感受。教师PPT上的例子通常是可以正确运行并得到正确结果的例子程序。这就会使学生产生厌学心理,误认为只要将程序代码输入计算机,计算机就会正确地执行。当程序发生错误时,学生经常感到束手无策,挫伤了学生学习的积极性和热情。
2.学生的学习目的不明确。对于非计算机专业的学生,通常认为C语言程序设计与他们所学专业课相关性较小,而且在现实生活中很难应用,所以对C语言程序设计很难提起兴趣。另一部分同学认为学习C语言的目的只是为了通过计算机等级考试或重修考试,所以认为C语言学习的重点是语法知识而非上机实践,这部分同学学习非常认真,教材上做满了各种对知识点的解释和编程时应注意的误区,可就是不会编写程序,最多只能参照教材的例子编写,无法编写程序解决工程实际问题。还有部分同学认为C语言过时了,应当学习JAVA、C#等目前行业内普遍采用的高级程序设计语言。而且JAVA等高级语言相对来说简单易学,源代码可读性强,同时又有功能强大的编译器支持,利于迅速开发项目。
3.C语言本身的特点。C语言作为一门实用的编程语言,以其强大的编程功能,自由灵活的编程风格,获得了IT技术从业者的广泛青睐,但是这些有点恰恰成为了初学者的最大障碍。C语言程序语法复杂,调试苦难,尤其是对指针的使用,使初学者经常犯难以跟踪的编程错误。而且对于非计算机专业的学生,C语言程序设计往往在大一下学期或大二下学期开设。对于仅学习过大学计算机基础的非计算机专业学生来说,缺乏对计算机结构的全面了解,对于和计算机硬件尤其是和内存结合很紧密的概念,学生基本很难理解和掌握。
二、针对重修课程特点的教学措施
1.培养学生学习兴趣。对于选修C语言重修课的学生,应注意对其学习兴趣的培养。比如在课堂上可以给重修的学生讲一些计算机科学家的生平及小故事、计算机与数学等方面的内容,短则一两句话,长则三五分钟,既活跃课堂气氛,又能激发重修生对程序设计的兴趣。教师也可以在课堂中向学生讲述一些在生活中使用C语言编写的软件,如与学生生活密切相关的嵌入式系统软件,让非计算机专业的重修学生感到C语言程序设计与他们并不遥远。教师在重修课教学过程中,可以采取案例驱动、任务驱动、主题作业、课程设计等多种形式[1,2],增强学生的学习兴趣。
2.改进教学方法。在C语言程序设计重修课程的教学中,要充分利用多媒体课件,其内容应该有条理、重点突出、详略得当。多媒体课件应该注重演示与推理,而不是教材的翻版。同时,教师也可在课堂上现场使用编译软件编写程序,并对程序中的错误加以修改并讲解,也可以教师将程序的主体写好,邀请同学上讲台上编写关键代码段,一起完成程序的编写。如教师在讲解for循环体的知识点之后,可以编写如下图所示代码:
并请同学上讲台现场编写代码完成所需的功能。如果学生在编写过程出现了错误,教师应该在课堂上做出讲解并给出解决方法。这样既调动了重修生上课的积极性,活跃了课堂气氛,同时教师对学生编程时易发生的错误,现场给予了解答,减轻了学生学习程序设计的畏惧心理。
同时,应采用将多媒体教学工具(如Flash)與程序调试相结合的方法,将C语言程序设计中内容比较抽象、比较底层、不易理解的部分,如排序算法,用直观的形式展现给学生。
例如,在讲解选择排序算法时,可以将如下图所示的Flash与VC++6.0的调试窗口做对照:
教师可以通过Flash动画与程序代码的互动,逐步地将选择排序算法程序每一步操作,形象直观地演示给学生。
3.强调算法的重要性。算法设计是C语言程序设计的灵魂,编程成功的前提是要分析出正确的算法,因此在教学中必须将算法设计作为程序设计课程的先导和教学重点,以培养和提高学生分析和解决问题的能力。笔者曾以求取任意正整数平方根为例,分别讲解了泰勒展式法与牛顿迭代法,并编写程序为学生展示了选取不同时间复杂度的算法对求解问题造成的影响。对于非计算机专业的C语言的重修学生而言,能够分析与设计简单的算法是我对他们的基本要求。要时时向学生传输这样一个观点:程序设计语言无论多么强大,多么流行,都是一种工具,而程序设计的根本目的是为了解决生产生活实际中的问题,对于解决问题而言,算法才是最重要的。
总之,以上是本人在C语言程序设计重修课教学过程中的一些体会,不一定完全正确,还需要我们不断地去探索,取长补短,不断完善。
参考文献:
[1]常本勤.基于问题的学习模式在程序设计类课程教学中的应用[J].计算机教育,2010,(2).
[2]冯小强.C语言教学方法的探索[J].科技信息,2010,(28).
Abstract:C language programming retaken course has become one of the components of computer education of education. In this paper,the teaching of C language programming retaken course is discussed,according to the characteristics of the retaken course,some measures are proposed to improve the students' independent thinking ability and divergent thinking ability.
Key words:C programming language;retaken teaching;teaching method