C语言程序设计教学

  • 投稿小耳
  • 更新时间2015-10-09
  • 阅读量885次
  • 评分4
  • 44
  • 0

王振武

(中国矿业大学(北京) 机电与信息工程学院,北京 100083)

摘要:分析C语言教学中存在的普遍问题,从教学内容组织形式、教学方法以及考核方式等方面提出一系列有针对性的教学方法,指出这种教学方法能有效地提高学生的学习效率和质量。

教育期刊网 http://www.jyqkw.com
关键词 :C语言程序设计;公共基础课;教学方法

基金项目:北京高等学校青年英才计划项目;煤炭资源与安全开采国家重点实验室开放课题(SKLCRSM11KFB12)。

作者简介:王振武,男,副教授,研究方向为数据挖掘、图形图像处理,wangzhenwu@126.com。

0 引言

为提高大学生利用计算机解决问题的能力,全国高校普遍为理工科专业的低年级学生开设了C语言程序设计这门必修的公共基础课程。一方面,该课程是学生接触的第一门程序设计类课程,其编程思维的养成是一个较长的过程;另一方面,该课程具有内容繁多、知识点关联性强、算法抽象、实践性要求高等特点,学生在学习过程中易产生畏难心理,进而出现学习动力不足、积极性不高等问题。C语言程序设计是一门难学也难教的课程,目前在教学上普遍存在很多问题。文献[1-4]对C语言程序设计的教学方法给出了建议,但都不够系统和全面。

1 C语言程序设计教学方法研究

1.1 理论教学

对于大多数课程而言,从宏观上将课程知识点及其关联讲授给学生非常必要,这便于学生更加系统深刻地理解所学内容。笔者以文献[5]作为教材讲解C语言程序设计的知识点结构。如图1所示,知识点之间的关联可以层层细化,教师首先从宏观上给学生介绍C语言程序的整体组成结构(如图1-(a),然后针对图1-(a)中一个源程序文件的组成成分举例介绍,如图1-(b)所示。在图1-(b)中,教师对涉及的知识点进行归类,共包含预处理命令、数据类型、运算符、语句和函数等5部分,然后图1-(c)至图1-(i)依次层层展开上述各类知识点的组成,逐步细化。

从宏观上梳理C语言与程序设计课程的知识点是非常必要和重要的,这样可以避免学生“只见树木,不见森林”,最后只学到一堆零散的知识点,只有从宏观上把握各个知识点在知识体系中的位置和作用,才能学得深、记得牢。

对于程序语言课程,如果仅仅介绍语法的运用,学生往往对知识点理解不深刻。我们在教学实践中的体会是:在讲解C语言语法的基础上,适当地剖析编程语言在计算机中的运行机制,会让学生的理解更加透彻。因此,我们的课堂教学方法分为如下两部分。

1)课件讲解。

课件讲解包括两部分,即知识点要点总结和知识点运行机制剖析。知识点要点总结就是告诉学生该知识点如何使用;而知识点运行机制剖析则告诉学生该程序在计算机内存中的执行过程。由于绝大部分高校在开设C语言程序设计之前都会开设计算机文化基础等课程,因此学生有足够的计算机基础知识来理解C语言程序的运行机制。

2)实例演示。

作为一门编程语言,C语言需要在实践中理解和掌握,因此,课堂教学中,在具体的编程环境(如VC++6.0)下演示十分必要。通过在具体的软件环境下编程,告诉学生应该做什么和不应该做什么,并总结该知识点的注意事项。相比传统的脱离编程环境,只在PPT或黑板上进行板书的教学模式,该方法的教学效果要好得多。在课堂教学中,具体的教学步骤如下:①使用PPT或者板书列出该知识点的注意要点;②在编程环境(如VC++6.0)下演示该知识点的用法,给出正确的和错误的使用方法,并进行对比;③通过幻灯片动画或flash动画等形式演示程序在计算机内存中的执行过程,让学生更加深刻地理解程序的运行机制。

3)教学难点与重点——“复合知识点”。

从C语言的教学内容来讲,数组、函数和指针是教学的重点章节,这些章节之间相互关联的部分又是重点中的难点,如数组和函数结合,数组名做函数参数,数组和指针结合,指向数组的指针变量,函数和指针结合,指向函数的指针变量等。在教学过程中要反复强调各个知识点的注意事项,如果基本知识点能够理解透彻,上述难点内容也就迎刃而解了。

1.2 上机实践教学

在实践教学中,教师可以通过实际教学案例循序渐进地强化学生对C语言知识点的理解。上机实践的教学内容通常分为两部分:基本知识点练习和综合训练。首先通过基本知识点的练习,让学生掌握该知识点的使用,即巩固课堂所学内容;然后通过一个综合性的大作业,训练学生综合应用C语言知识点的能力,例如,通过编写“学生课程成绩统计系统”考查学生对数组、结构体、指针、函数、文件等知识的综合掌握情况。

对于初学编程语言的学生,往往没有养成良好的编程习惯,出错的可能性较大,而出错之后进行调试又将耗费较长的时间,这势必对学生的学习热情产生负面影响。因此,一开始就给学生制定科学的编程步骤和规范,使学生养成良好的编程习惯,将大大减少程序出错的可能。在C语言教学实践中,我们总结了“五步编程法”:①定义变量,如“int a;”;②对变量进行初始化,如“a=0;”,对变量进行初始化操作是一种良好的编程习惯,可防止未对变量赋值而引起的隐性错误;③通过scanf语句赋值,如“scanf(“%d”,&a);”;④实现程序的主要算法,该部分是程序的主体;⑤通过printf语句将结果输出在显示器上,将结果输出在显示器上便于比较程序运行结果是否正确。

下面是按照上述五步编写的一个完整的C语言程序,用来比较两个整数的大小。按照上述五步进行编程,经过一段时间的训练之后,学生出现语法错误的可能性大大降低,此时学生更多的精力将集中在程序算法的设计和实现上。

1.3 考试形式

对于C语言程序设计的考核方式,我们采用知识点考核和编程实践相结合的方式。知识点考核偏重于C语言基本语法,用于检验学生对知识点的掌握是否全面,此项考核约占总成绩的40%;编程实践考核用于检验学生的实际动手能力,学生将在规定的时间内根据题目在机器上编程,此项考核约占总成绩的60%。为了实现知识点的考核,我们将考试与计算机二级C语言上机考试紧密结合,采用题库平台进行上机考试,学生直接在机器上答题并提交,知识点考核多采取客观题,如填空题、程序修改题以及读程序题等,编程题在实战编程中考核。C语言程序设计课程的重要特点就是实践性强,学习该课程的目的就是为了编写程序。因此从考试的角度讲,进行编程实践是最合适的方式,通过上机编程来考核学生的学习情况也是最公正和客观的方式。

2 C语言程序设计教学实践结果分析

中国矿业大学(北京)每年都有40多个班级同时开设C语言程序设计课程,因此该课程教学质量的高低将直接影响全校理工科学生对C语言的理解和掌握。中国矿业大学(北京)C语言程序设计教学团队经过长期的探索总结出一套行之有效的C语言教学方法,我们将上述方法在学校越崎实验班中进行了试点。如图2所示,采用上述教学法的越崎实验班的C语言程序设计课程考试成绩要明显好于其他班级,其中90分以上的学生占10.7%,80分以上的学生占总人数的53.6%。另外,学生的学习积极性比采用上述方法前得到明显提高,很多学生都对计算机编程产生了浓厚兴趣,实践证明我们提出的上述方法是行之有效的。

3 结语

中国矿业大学(北京)C语言程序设计教学团队在长期的教学实践中探索出的这套教学方法被证明是行之有效的,它能够极大地提高学生的学习兴趣,不但让学生学得会、记得牢,而且能够举一反三,把该方法应用到其他编程语言的学习中。长期的教学实践使我们深刻地认识到,教学方法的好坏对提高教学质量有直接和重要的影响。我们团队提出的这套教学方法是对C语言程序设计教学方法的初步尝试,希望能够对高等院校C语言程序设计教学方法的研究起到抛砖引玉的作用。

教育期刊网 http://www.jyqkw.com
参考文献

[1] 谢中科. C语言程序设计的教学改革与实践[J]. 理工高教研究, 2004,3(23): 96-97.

[2] 简慧云. 提高C语言程序设计教学质量的探讨[J]. 理工高教研究, 2004, 6(23): 83-85.

[3] 王孝平, 董秀成, 谢维成.提高电器信息类专业学生C语言学习能力的教学方法探索[J]. 高等教育研究, 2012, 2(29): 37-40.

[4] 张丽华, 王冬星. 自主学习教学模式在C语言教学中的运用[J]. 黑龙江教育: 高教研究与评估, 2009(12): 91-92.

[5] 谭浩强. C语言程序设计[M]. 4版. 清华大学出版社. 2007.

(编辑:孙怡铭)