关闭→
当前位置:求学君>快乐学习>毕业论文>《C语言程序设计》课程的教学改革与实践论文

《C语言程序设计》课程的教学改革与实践论文

求学君 人气:2.66W

摘要:针对教师与学生普遍认为C语言难教也难学,文章从教学内容、教学手段、教学方法等方面介绍了《C语言程序设计》课程所进行的改革。实践证明,这些教学改革效果良好,不仅有利于培养学生学习兴趣,而且有利于培养学生分析问题与解决问题的能力。

《C语言程序设计》课程的教学改革与实践论文

关键词:C语言 教学内容 教学手段 教学方法 教学改革

学习计算机程序设计语言是提高人们计算机知识水平的重要步骤。C语言作为当今最为流行的程序设计语言之一,不但成为计算机专业的必修课,而且也越来越多地成为非计算机专业的学习课程[1]。但在《C语言程序设计》课程教学中,许多教师和学生都认为C语言涉及的概念比较复杂,规则繁多,使用灵活,容易出错,教师教学和学生学习都感到困难,并不同程度产生畏难心理[2]。特别是多数高校将C语言作为计算机专业学生进校后首先接触的第一门专业基础课,这种现象尤为明显。笔者根据多年的程序设计课程的教学实践,对《C语言程序设计》课程从教学内容、教学手段、教学方法等方面进行了大胆的改革,并取得较好的教学效果。

1 教学内容的改革[3]

1.1 课堂教学内容的改革

以福建省高校计算机系列教材《C语言程序设计与应用教程》为例,教学内容主要包括C语言语法基础、程序控制结构、数据类型、指针、函数、文件以其它们的应用等。教材在内容组织上,虽然依逻辑思维方式进行了归类,但难点还是较为集中,跨度大;概念讲得多,分析少;语言深硬,不够形象,较难理解。虽然教材在各章节也举了一些编程例子,但多数难度较大,适用性不强。笔者本着“深入浅出,突出实用”的指导思想,在课堂教学过程中,对教学内容重新进行了归纳,将难点再次分散,以缩小台阶,达到循序渐进。例如,C语言数据类型、运算符、表达式种类繁多,放在一块讲授,学生学习起来难度较大,于是笔者就刻意将算术型的数据类型、运算符以及相关的表达式先介绍,使学生学习起来没有想象中的那么难。紧接着又教学生编写简单的、实用的C程序设计,然后趁机引入基本输入、输出函数就顺理成章了。这样一来台阶小了,学生的信心也增加许多,学习积极性很快就被提高起来。对于深硬的语言叙述,笔者则改用生动的比喻,进行详尽引导。譬如,在开始学习指针的概念时,教材对“间接存取”叙述比较深硬,学生难以理解,笔者就借用比喻:将A房间的钥匙放在B房间里,若要取A房间里的物品,就需要先打开B房间,取出A钥匙,再打开A房间,取出A房间的物品,这就是“间接存取”。学生很快就能理解,也加深了指针的概念。在教学过程中,笔者还及时查阅英文版教材和有关报刊杂志,对较难理解的概念,用不同的方式给以解释,甚至直接引用英文原版教材内容。

1.2 实验教学内容的改革

计算机语言教学的主要任务是培养学生具有一定的阅读程序、设计程序的能力,分析问题、解决问题的能力和逻辑思维的能力。而C语言程序设计是一门实践性很强的课程,既要掌握概念,又要动手编程,还要上机调试运行[2]。因此,C语言的教学特别需要重视实践环节,包括编程和上机实验。为了突出实践教学,培养学生的知识应用能力,笔者对实验内容进行了较大的改革,一方面保留基础性实验,例如:三角形面积计算、求一元二次方程的根、各类三角图形的绘制、简单的排序算法等基础编程实验。使学生能够较顺利地通过实验,并及时理解和消化课堂教学内容,学生也会获得一定的成就感,学习热情会进一步得到提高。另一方面,增加一些实用性强的、难度略大的实验,并组织学生讨论,通过讨论得出算法流程,然后上机编程调试。例如:要求分别用数组与指针,将一个字符串中的所有英文字母取出,并转为大写,然后再将它们倒序存放。做这个实验之前,学生先通过讨论,分别得出使用数组与指针进行读取英文字母及倒序存放的算法流程图,然后上机实验。这样一来,一方面有利于培养学生对知识的应用能力与问题的分析能力,更主要的是也培养了他们协作能力。另一方面通过用数组与指针不同的解题方法,有利于学生加深对所学知识的理解,让学生真正体会到C语言的灵活性,激发学生的求知欲。

2 教学手段的改革

在教学过程中,运用多媒体技术辅助教学,有利于激发学生的学习兴趣,能发展学生的主体能力;同时由于多媒体信息量大,也能够优化教学过程[4]。但多媒体辅助教学也有不利之处,主要体现在不恰当的使用会分散学生注意力,影响主要问题的理解,也不利于发挥学生的想象力,影响师生之间的情感交流。在C语言程序设计课程教学过程中,笔者考虑到课程的特点,扬长避短,将传统教学与多媒体教学进行了有机的结合。例如:由于C语言的数据类型、变量类型、运算符、程序结构等,它们的定义、概念较多,又没有深奥的理论,也没有多少逻辑推理,所以笔者就采用多媒体教学。在教学过程中,事先将概念、大信息量的案例代码制作成课件,在课堂做展示供学生增加信息量用,也简化传统教学无法板书的缺点,课堂教学也不再显得枯燥无味。但对于案例分析或程序的编写过程,笔者就发挥传统教学的优势,进行课堂讨论、板书讲解、结合提问,将问题层层剖析、层层深入,达到师生互动的效果,学生的想象力就会得到充分的发挥,对问题的理解也变得更容易。另外,笔者也充分利用网络资源,将电子教案、大纲、课件、习题等放在网上,供学生自行调用,同时通过Email、QQ对学生的提问进行答疑、讨论,以弥补课堂教学的不足。

3 教学方法的改革

在C语言课程教学过程中,一方面要求教师能够准确把握授课内容,同时也要求教师注意应用相应的教学方法,以此提高教学质量。以下是笔者在几年的C语言课程教学中采用的一些教学方法。

3.1 问题探究教学法

问题探究教学法在C语言教学中是一种相当有用的教学方法。这种教学法能够充分发挥学生的思维,突出学生的主体作用,能有效地培养学生的分析问题与解决问题的能力。以“冒泡排序”为例,笔者没有平铺直叙地介绍算法与程序代码,而是先跟学生讲解什么叫“冒泡”,然后让学生思考冒泡排序的算法思路,进而让学生讨论并写出算法流程图,接下来讲解如何用for与if程序结构实现算法,最后才讲解为了减少交换次数而引入swap这一判定变量,直至整个程序编写完整。整个讲解过程结合板书,逐步引导,层层深入,取到很好的教学效果。

3.2 归纳教学法

C语言有很多的定义、概念、语法规则,它们使用灵活、难以记忆,也特别容易出错。如果能够引导学生进行归纳,将会起到事半功倍的效果。C语言的定义、概念、语法规则有许多相似的地方,例如:printf()与scanf()函数,有很多语法规则是一样的,对它们进行归纳之后,学生只要记住其中一个,另一个自然就会使用了。又如:数组与指针,由于它们使用灵活,许多学生与教师都认为它们很难,尤其是指针。但如果对它们进行归纳之后,就会发现无论是二维数组,还是指向指针的指针或其它类型的指针,它们都会变得与一维数组的使用一样容易。为了这些归纳便于记忆,笔者还将它们编成了顺口溜,例如二维数与各类有二重地址的指针归纳如下:数组名与指针名代表二重地址,即无“*”也无“[ ]”加减数值对行操作;仅有1个“*”或“[ ]”代表单重地址(即行地址),加减数值对列操作;“*”与“[ ]”加起来有2个就是元素值。

3.3 讨论教学法

在C语言教学过程中,充分发挥学生的积极性与主动性是非常重要的一环。笔者针对这门课程的特点与学生的兴趣,课前给学生布置了几个专题,让学生利用课余时间去思考、收集资料,并在课堂上组织学生发言和讨论。这种教学法不仅可以让学生获得许多课外知识,同时也促进教学内容的改革,而且也有利于充分挖掘学生的学习潜力。

3.4 因材施教法

由于学生学习的动机、兴趣、能力存在较大的个体差异,所以决定了C语言课程必须因材施教。对于学习能力较强的学生,笔者就鼓励他们自学,并给予方向性指导,让他们超前学习。在C语言教学中,培养学生的自学能力尤为重要,如果学生的学习完全依赖教师才能掌握,而没有一定的自学能力,其所学的知识很快就会被淘汰。对于多数学生,则把精力放在最基本、最常用的内容上,让他们学好基本功,掌握程序设计的方法,为后续课程的学习打下基础。另外,教学过程中,笔者还不时地从学生的'角度来考虑问题,讲解内容,加强师生的互动效果,以降低学生学习的焦虑情绪。

3.5 实践教学法

学习程序设计课程的目的是掌握设计程序的思路,学会用计算机语言编写程序,以实现所需处理的任务[2]。因此教学重点要放在解题的思路上,通过大量的实践让学生学会怎样设计一个算法,构造一个程序。笔者一开始,让学生编写简单的程序,然后逐步深入。在实验题目设置上,根据课时安排以及要掌握基本知识,设置必做与选做题,以满足各个层次学生的需要。在本课程结束后,安排一次综合的大实验,培养学生综合应用能力。

3.6 综合考核法

衡量这门课学习的好坏,不是看学生“知不知道”,而是“会不会干”。考核的方法不能主要用是非题和选择题,而应当把重点放在编制程序和调试程序上[2]。所以笔者对学生学习成绩的评定,采用综合考核法,将平时的实践成绩与期末卷面成绩进行综合,得出本课程综合考评分。这种教学法,不但能更客观地反映学生的学习情况,同时也能促进学生学习,起到很好的教学效果。

4 结束语

上述教学内容、教学手段与教学方法的改革,是根据实际教学过程中学生存在的问题提出的,并已经在《C语言程序设计》课程教学实践中运用,取得了良好的教学效果。当然,同样的教学内容面对不同的学生,在使用与设计某种教学方法时,还要求学生的配合才行,也就是说教的方法与学的方法要有机统一。笔者将继续努力探索,使《C语言程序设计》课程教学日趋完善。希望本文能对大学计算机基础教学有一定的借鉴作用。

参考文献:

[1] 严桂兰.C语言程序设计与应用教程[M].福建:厦门大学出版社,2001

[2] 谭浩强.C程序设计(第三版)[M].北京:清华大学出版社,2005

[3] 李步洪.《光电技术》课程的教学改革与实践[J].福建师范大学学报(自然版).2002,18(2):104

[4] 陈东. 计算机多媒体教学改革的一些尝试[J].福建师范大学学报(自然版).2004,20(3):98