论文部分内容阅读
[摘要]针对教师与学生普遍认为C语言难教也难学,从教学内容、教学手段、教学方法等方面介绍C语言教学中的几点感想。实践证明,这些方法效果良好,不仅有利于培养学生学习兴趣,而且有利于培养学生分析问题与解决问题的能力。
[关键词]C语言 教学内容 教学手段 教学方法
中图分类号:G42文献标识码:A文章编号:1671-7597(2009)0310156-01
在C语言教学中,许多教师和学生都认为C语言涉及的概念比较复杂,规则繁多,使用灵活,容易出错,教师教学和学生学习都感到困难,并不同程度产生畏难心理。特别是多数高校将C语言作为计算机专业学生进校后首先接触的第一门专业基础课,这种现象尤为明显。笔者根据多年的程序设计课程的教学实践,对C语言课程从教学内容、教学手段、教学方法等方面进行了一些改进,并取得较好的教学效果。
一、教学内容的改进
对于课常教学内容,笔者本着“深入浅出,突出实用”的指导思想,在课堂教学过程中,对教学内容重新进行了归纳,将难点再次分散,以缩小台阶,达到循序渐进。例如,C语言数据类型、运算符、表达式种类繁多,放在一块讲授,学生学习起来难度较大,于是笔者就刻意将算术型的数据类型、运算符以及相关的表达式先介绍,使学生学习起来没有想象中的那么难。紧接着又教学生编写简单的、实用的C程序设计,然后趁机引入基本输入、输出函数就顺理成章了。这样一来台阶小了,学生的信心也增加许多,学习积极性很快就被提高起来。对于深硬的语言叙述,笔者则改用生动的比喻,进行详尽引导。譬如,在开始学习指针的概念时,教材对“间接存取”叙述比较深硬,学生难以理解,笔者就借用比喻:将A房间的钥匙放在B房间里,若要取A房间里的物品,就需要先打开B房间,取出A钥匙,再打开A房间,取出A房间的物品,这就是“间接存取”。学生很快就能理解,也加深了指针的概念。
二、教学手段的改进
在教学过程中,运用多媒体技术辅助教学,有利于激发学生的学习兴趣,能发展学生的主体能力;同时由于多媒体信息量大,也能够优化教学过程。但多媒体辅助教学也有不利之处,主要体现在不恰当的使用会分散学生注意力,影响主要问题的理解,也不利于发挥学生的想象力,影响师生之间的情感交流。在C语言教学过程中,笔者考虑到课程的特点,扬长避短,将传统教学与多媒体教学进行了有机的结合。例如:由于C语言的数据类型、变量类型、运算符、程序结构等,它们的定义、概念较多,又没有深奥的理论,也没有多少逻辑推理,所以笔者就采用多媒体教学。在教学过程中,事先将概念、大信息量的案例代码制作成课件,在课堂做展示供学生增加信息量用,也简化传统教学无法板书的缺点,课堂教学也不再显得枯燥无味。但对于案例分析或程序的编写过程,笔者就发挥传统教学的优势,进行课堂讨论、板书讲解、结合提问,将问题层层剖析、层层深入,达到师生互动的效果,学生的想象力就会得到充分的发挥,对问题的理解也变得更容易。另外,笔者也充分利用网络资源,将电子教案、大纲、课件、习题等放在网上,供学生自行调用,同时通过Email、QQ对学生的提问进行答疑、讨论,以弥补课堂教学的不足。
三、教学方法的改进
在C语言课程教学过程中,一方面要求教师能够准确把握授课内容,同时也要求教师注意应用相应的教学方法,以此提高教学质量。以下是笔者在几年的C语言课程教学中采用的一些教学方法。
(一)问题探究教学法。问题探究教学法在C语言教学中是一种相当有用的教学方法。这种教学法能够充分发挥学生的思维,突出学生的主体作用,能有效地培养学生的分析问题与解决问题的能力。以“冒泡排序”为例,笔者没有平铺直叙地介绍算法与程序代码,而是先跟学生讲解什么叫“冒泡”,然后让学生思考冒泡排序的算法思路,进而让学生讨论并写出算法流程图,接下来讲解如何用for与if程序结构实现算法,最后才讲解为了减少交换次数而引入swap这一判定变量,直至整个程序编写完整。整个讲解过程结合板书,逐步引导,层层深入,取到很好的教学效果。
(二)归纳教学法。C语言有很多的定义、概念、语法规则,它们使用灵活、难以记忆,也特别容易出错。如果能够引导学生进行归纳,将会起到事半功倍的效果。C语言的定义、概念、语法规则有许多相似的地方,例如:printf()与scanf()函数,有很多语法规则是一样的,对它们进行归纳之后,学生只要记住其中一个,另一个自然就会使用了。又如:数组与指针,由于它们使用灵活,许多学生与教师都认为它们很难,尤其是指针。但如果对它们进行归纳之后,就会发现无论是二维数组,还是指向指针的指针或其它类型的指针,它们都会变得与一维数组的使用一样容易。为了这些归纳便于记忆,笔者还将它们编成了顺口溜,例如二维数与各类有二重地址的指针归纳如下:数组名与指针名代表二重地址,即无“*”也无“[ ]”加减数值对行操作;仅有1个“*”或“[ ]”代表单重地址(即行地址),加减数值对列操作;“*”与“[ ]”加起来有2个就是元素值。
(三)因材施教法。由于学生学习的动机、兴趣、能力存在较大的个体差异,所以决定了C语言课程必须因材施教。对于学习能力较强的学生,笔者就鼓励他们自学,并给予方向性指导,让他们超前学习。在C语言教学中,培养学生的自学能力尤为重要,如果学生的学习完全依赖教师才能掌握,而没有一定的自学能力,其所学的知识很快就会被淘汰。对于多数学生,则把精力放在最基本、最常用的内容上,让他们学好基本功,掌握程序设计的方法,为后续课程的学习打下基础。另外,教学过程中,笔者还不时地从学生的角度来考虑问题,讲解内容,加强师生的互动效果,以降低学生学习的焦虑情绪。
(四)实践教学法。学习程序设计课程的目的是掌握设计程序的思路,学会用计算机语言编写程序,以实现所需处理的任务。因此教学重点要放在解题的思路上,通过大量的实践让学生学会怎样设计一个算法,构造一个程序。笔者一开始,让学生编写简单的程序,然后逐步深入。在实验题目设置上,根据课时安排以及要掌握基本知识,设置必做与选做题,以满足各个层次学生的需要。在本课程结束后,安排一次综合的大实验,培养学生综合应用能力。
(五)综合考核法。衡量一门课学习的好坏,不是看学生“知不知道”,而是“会不会干”。考核的方法不能主要用是非题和选择题,而应当把重点放在编制程序和调试程序上。所以笔者对学生学习成绩的评定,采用综合考核法,将平时的实践成绩与期末卷面成绩进行综合,得出本课程综合考评分。这种教学法,不但能更客观地反映学生的学习情况,同时也能促进学生学习,起到很好的教学效果。
参考文献:
[1]严桂兰,C语言程序设计与应用教程[M].福建:厦门大学出版社,2006.
[2]谭浩强,C程序设计(第三版)[M].北京:清华大学出版社,2005.
作者简介:
漆智勤,女,主要从事高校教学工作。
[关键词]C语言 教学内容 教学手段 教学方法
中图分类号:G42文献标识码:A文章编号:1671-7597(2009)0310156-01
在C语言教学中,许多教师和学生都认为C语言涉及的概念比较复杂,规则繁多,使用灵活,容易出错,教师教学和学生学习都感到困难,并不同程度产生畏难心理。特别是多数高校将C语言作为计算机专业学生进校后首先接触的第一门专业基础课,这种现象尤为明显。笔者根据多年的程序设计课程的教学实践,对C语言课程从教学内容、教学手段、教学方法等方面进行了一些改进,并取得较好的教学效果。
一、教学内容的改进
对于课常教学内容,笔者本着“深入浅出,突出实用”的指导思想,在课堂教学过程中,对教学内容重新进行了归纳,将难点再次分散,以缩小台阶,达到循序渐进。例如,C语言数据类型、运算符、表达式种类繁多,放在一块讲授,学生学习起来难度较大,于是笔者就刻意将算术型的数据类型、运算符以及相关的表达式先介绍,使学生学习起来没有想象中的那么难。紧接着又教学生编写简单的、实用的C程序设计,然后趁机引入基本输入、输出函数就顺理成章了。这样一来台阶小了,学生的信心也增加许多,学习积极性很快就被提高起来。对于深硬的语言叙述,笔者则改用生动的比喻,进行详尽引导。譬如,在开始学习指针的概念时,教材对“间接存取”叙述比较深硬,学生难以理解,笔者就借用比喻:将A房间的钥匙放在B房间里,若要取A房间里的物品,就需要先打开B房间,取出A钥匙,再打开A房间,取出A房间的物品,这就是“间接存取”。学生很快就能理解,也加深了指针的概念。
二、教学手段的改进
在教学过程中,运用多媒体技术辅助教学,有利于激发学生的学习兴趣,能发展学生的主体能力;同时由于多媒体信息量大,也能够优化教学过程。但多媒体辅助教学也有不利之处,主要体现在不恰当的使用会分散学生注意力,影响主要问题的理解,也不利于发挥学生的想象力,影响师生之间的情感交流。在C语言教学过程中,笔者考虑到课程的特点,扬长避短,将传统教学与多媒体教学进行了有机的结合。例如:由于C语言的数据类型、变量类型、运算符、程序结构等,它们的定义、概念较多,又没有深奥的理论,也没有多少逻辑推理,所以笔者就采用多媒体教学。在教学过程中,事先将概念、大信息量的案例代码制作成课件,在课堂做展示供学生增加信息量用,也简化传统教学无法板书的缺点,课堂教学也不再显得枯燥无味。但对于案例分析或程序的编写过程,笔者就发挥传统教学的优势,进行课堂讨论、板书讲解、结合提问,将问题层层剖析、层层深入,达到师生互动的效果,学生的想象力就会得到充分的发挥,对问题的理解也变得更容易。另外,笔者也充分利用网络资源,将电子教案、大纲、课件、习题等放在网上,供学生自行调用,同时通过Email、QQ对学生的提问进行答疑、讨论,以弥补课堂教学的不足。
三、教学方法的改进
在C语言课程教学过程中,一方面要求教师能够准确把握授课内容,同时也要求教师注意应用相应的教学方法,以此提高教学质量。以下是笔者在几年的C语言课程教学中采用的一些教学方法。
(一)问题探究教学法。问题探究教学法在C语言教学中是一种相当有用的教学方法。这种教学法能够充分发挥学生的思维,突出学生的主体作用,能有效地培养学生的分析问题与解决问题的能力。以“冒泡排序”为例,笔者没有平铺直叙地介绍算法与程序代码,而是先跟学生讲解什么叫“冒泡”,然后让学生思考冒泡排序的算法思路,进而让学生讨论并写出算法流程图,接下来讲解如何用for与if程序结构实现算法,最后才讲解为了减少交换次数而引入swap这一判定变量,直至整个程序编写完整。整个讲解过程结合板书,逐步引导,层层深入,取到很好的教学效果。
(二)归纳教学法。C语言有很多的定义、概念、语法规则,它们使用灵活、难以记忆,也特别容易出错。如果能够引导学生进行归纳,将会起到事半功倍的效果。C语言的定义、概念、语法规则有许多相似的地方,例如:printf()与scanf()函数,有很多语法规则是一样的,对它们进行归纳之后,学生只要记住其中一个,另一个自然就会使用了。又如:数组与指针,由于它们使用灵活,许多学生与教师都认为它们很难,尤其是指针。但如果对它们进行归纳之后,就会发现无论是二维数组,还是指向指针的指针或其它类型的指针,它们都会变得与一维数组的使用一样容易。为了这些归纳便于记忆,笔者还将它们编成了顺口溜,例如二维数与各类有二重地址的指针归纳如下:数组名与指针名代表二重地址,即无“*”也无“[ ]”加减数值对行操作;仅有1个“*”或“[ ]”代表单重地址(即行地址),加减数值对列操作;“*”与“[ ]”加起来有2个就是元素值。
(三)因材施教法。由于学生学习的动机、兴趣、能力存在较大的个体差异,所以决定了C语言课程必须因材施教。对于学习能力较强的学生,笔者就鼓励他们自学,并给予方向性指导,让他们超前学习。在C语言教学中,培养学生的自学能力尤为重要,如果学生的学习完全依赖教师才能掌握,而没有一定的自学能力,其所学的知识很快就会被淘汰。对于多数学生,则把精力放在最基本、最常用的内容上,让他们学好基本功,掌握程序设计的方法,为后续课程的学习打下基础。另外,教学过程中,笔者还不时地从学生的角度来考虑问题,讲解内容,加强师生的互动效果,以降低学生学习的焦虑情绪。
(四)实践教学法。学习程序设计课程的目的是掌握设计程序的思路,学会用计算机语言编写程序,以实现所需处理的任务。因此教学重点要放在解题的思路上,通过大量的实践让学生学会怎样设计一个算法,构造一个程序。笔者一开始,让学生编写简单的程序,然后逐步深入。在实验题目设置上,根据课时安排以及要掌握基本知识,设置必做与选做题,以满足各个层次学生的需要。在本课程结束后,安排一次综合的大实验,培养学生综合应用能力。
(五)综合考核法。衡量一门课学习的好坏,不是看学生“知不知道”,而是“会不会干”。考核的方法不能主要用是非题和选择题,而应当把重点放在编制程序和调试程序上。所以笔者对学生学习成绩的评定,采用综合考核法,将平时的实践成绩与期末卷面成绩进行综合,得出本课程综合考评分。这种教学法,不但能更客观地反映学生的学习情况,同时也能促进学生学习,起到很好的教学效果。
参考文献:
[1]严桂兰,C语言程序设计与应用教程[M].福建:厦门大学出版社,2006.
[2]谭浩强,C程序设计(第三版)[M].北京:清华大学出版社,2005.
作者简介:
漆智勤,女,主要从事高校教学工作。