C语言课程教学探讨

时间:2022-09-11 07:12:16

C语言课程教学探讨

摘要:本文针对C语言教学中存在的问题,对教学方法、上机实践的设计及考核方式进行分析和探讨。提出转变观念,采用动态授课,重视实践等教学改革方法,实践证明,它对C语言教学起到促进作用。

关键词:C语言;教学方法;上机实践

由于C语言功能丰富、应用广泛,很多高校都将C语言作为一门计算机及相关专业的重要专业基础课开设,甚至有不少高校将它作为计算机公共基础课来开设。但在C语言课程的开设过程中,教师与学生都有误区,教与学的效率和效果不理想。本文针对该课程在教学中存在的问题、在教学方法、上机实践的设计与考核方式等几个方面来进行分析与探讨。

1教学中存在的问题

1.1教学观念与学习观念的误区

讲授C语言程序设计课程的教师容易走入一个误区,即重视C语言的语法和概念的学习,忽视程序设计能力的培养,它使得该课程成为纯粹C语法和概念的介绍[1]。另外,学习C语言课程的学生多数只是重视语法、概念和规则的学习,忽视更为重要的上机实践,认为学习C语言就是学习C的语法、概念和规则,认为掌握了C的语法、概念和规则,就掌握了C语言,但实际情况是学生并不具备用C语言来编写代码和解决实际问题的能力。

1.2授课方式枯燥乏味

从传统教学方法来看,C语言课程教学任务繁重、教师要用大量时间向学生解释大量概念、术语和语法,而该门课程的理论学时有限,多数专业课程每周只有两学时,教师授课时难免陷入静态说明书式的状态。语法知识枯燥乏味,而这样一种静态说明书式的授课方式,更加剧了学生的厌恶感,导致学生厌学。

1.3实践课程比例不够或不重视

受传统的教与学的影响,师生双方都或多或少忽视上机实践。实际上,该课程的实践课尤其重要,只有在实践课上我们才能有效地检查和验证学生学到了什么,能够做些什么。

2教学改革及教学方法探讨

2.1转变教学观念,提高教师自身素质

教师要从以往的以教师为中心的模式向“教师主导,学生为学习主体”的模式转变[2],改变老师单向课堂灌输、学生被动地整堂课听讲的传统授课方法。我们要规范整个教学过程,这些工作最好是由教授该课程的全体教师(即课程项目组)来共同合作完成。教师在熟悉教材内容的前提下,编写完整的课堂教学教案;制作完整的教学用PPT;课程组从大量的例题中精选出部分典型的、针对性强的例题也是非常必要的,只有这样才能减少教师在教学过程中选择例题的盲目性;精心设计好实践课内容,每次实践课的内容要有针对性,有具体的目标和要求,并要求学生下课时必须提交实验报告或作业,这样,在提高实践课效率的同时,可以有效增强学生实际动手能力,从而真正掌握C语言。

2.2采用灵活多变的动态的授课方式

对于C语言课程的教学,我们应采用灵活多样的授课方法,可以尝试采用启发式、任务驱动式、比喻式等多方式有机结合,具体授课时采用的形式和手段也可以多样化,根据实际知识点的具体情况,灵活采用传统教学方法+多媒体教学文法。例如,对课程中的语法、语句、流程图的画法,采用多媒体教学,减少板书时间以增加对算法思想的传授;在讲完一个程序后,把程序在课堂上进行多媒体演示,这样既有利于学生的理解,又能激发学生的兴趣,还节省了讲解时间,避免了静态说明书式的教学方式;对于程序设计方法的讲解,则采用传统的教学方式,教会学生如何思考、推理,如何用语句实现算法,培养学生的抽象思维和逻辑推理能力。下面介绍几种授课方式。

1) 采用启发式授课方法,以培养学生分析问题和解决问题。启发式授课方法,是指教师在全面掌握讲授内容的前提下,在讲解新的授课内容前,对以前所学知识进行回顾,引出新的讲授内容。

例如,在讲授“数组”一节的内容时[3],首先提出一个问题:用基本数据类型可以解决所有的问题吗?具体实例有:对某班学生的成绩按从高到低的顺序进行排列。教师先让学生回顾以前所学过的基本数据类型的相关知识,在教师引导下,学生能够轻松地找到准确答案。比如,如果班里学生只有少数的几个,如3个,那么用基本数据类型可以解决,但一个班通常有几十名学生,这时候用基本数据类型解决就无能为力了。此时,教师就可以引出新的讲授内容――数组的概念,并指出前面提出的实例,用数组来解决就显得非常容易了;然后,简要地向学生讲授数组这一节课需掌握的理论知识――一维数组的定义和初始化,冒泡法和选择法的原理,最后引导学生用数组这个新学到的数据类型,采用冒泡法和选择法分别解决之前所提的问题。大多数学生都能够做到,而且学生对两个算法的理解也比传统教学法深刻。

实践证明,这种授课方法能充分调动学生的学习积极性,变被动学习为主动学习,培养学生分析问题和解决问题的能力。

2) 将项目教学法应用于C语言课程教学[4]。为了达到既能让学生掌握C语言基础知识,又能培养学生的编程动手能力,教师还可以纵观全局,事先按照学生将要掌握的知识点,设计一个或几个有一定规模的项目(规模大小视该教学单元模块的难易而定),采取项目驱动法,即以项目为驱动力,从分析项目开始,讲解完成项目所需要的编程知识和技能,在讲授知识点的过程中,引导学生去解决实际问题,最后,以小组讨论形式,共同完成该项目(任务)。具体实施过程如下:设计具体教学项目,按各个知识模块来划分,并根据知识模块的大小和难易程度,确定项目的大小、教师的讲解时间以及要求学生完成的时间。

3) 采用比喻式授课方法,将复杂问题简单化,引起学生的学习兴趣。比喻式授课,是指教师应用形象化的比喻,将抽象复杂的问题简单化、具体化。这种授课方式适用各门课程。就C语言这门课来讲,在上述两种授课方式的具体实施过程中,都可以穿插应用比喻式授课方法。学习一门语言总要学习其语法和语句,而这些内容通常都比较枯燥,让人厌烦,所以,教师要善用身边的例子,利用形象化的比喻,把枯燥的东西变得形象生动,引起学生的兴趣。

例如,在上述启发式授课方法中提到过的用数组来解决多个学生成绩排序的问题,可以采用冒泡法和选择法,但这两种算法都比较抽象,教师如果只是机械地讲解冒泡法和选择法的原理,学生会产生厌学心理。对此,教师可以把它形象化,从而将这个问题简单化,将问题转变成是10个两位自然数排序的小问题;并运用多媒体教学,在教学课件里用动态的排序过程,分别展示运用两种不同的算法去解决这个排序问题的具体实施流程。这样一来,在动态数字排序过程的展示下,学生的目光都不由自主被吸引到讲台上来,随着10个数字排序的动态全过程的完成,学生就能够印象深刻地理解到选择法和冒泡法的原理,从而达到事半功倍的效果。

2.3重视实践教学

实践教学是C语言课程学习的重中之重,教师和学生都应该从观念上先认识到这点。在具体要求实施过程中,可以尝试从以下途径来完成实践。

首先,课程项目组在开学初已制定好了完备的实验教学计划及实验教案,针对每周的实验课都有相应的实验教案,清晰指明该次实践课的目标、实验指导、实验要求及提交实验作业的要求。

其次,在每次上机实践的基础上,视学生掌握知识点的情况以及动手能力的高低,一学期布置1~3个综合的实验项目,并体现项目教学法的精髓,即要求学生从初期规划开始,从功能设计、模块划分、算法设计与描述、代码编写、调度、分析、心得体会等方面撰写实验报告,并提交电子源代码与手写的实验报告。这一过程是对学生真实的动手能力的训练,可以督促学生养成自主学习的好习惯,培养探索精神[5]。

再次,教师要让学生明白,在实验课上学生自己是学习的主体身份。在到机房上课前,学生已在之前的理论课上了解了该次实验的内容与要求,是带着任务来上实验课的。在这个环节,教师可以实施小组协作学习的模式,同小组座位安排在一起,方便讨论。上实验课时,学生有问题可以与相邻座位的同学相互讨论,充分发挥学生的自主能动性和小组团队协作的学习精神;如果出现了小组解决不了的问题,再寻求教师帮助。与此同时,教师在学生实践时,可以巡视,并结合机器里安装的教学软件NETOP,观察学生具体做实验的情况,锁定学生实践的难点,对多数学生的共性问题通过大屏幕演示,进行统一指导与解答;而对于个别学生的问题,实施一对一的指导;最后,教师还可以抽出5~10分钟的时间,针对上次实践课的作业,利用大屏幕或NETOP软件控制每个学生的机器进行点评,在共享目录里展示学生好的源代码,以便其他同学参考借鉴。

最后,在学生提交作业环节,教师可以从提交截止时间、提交目录的权限设置及实验课的实时监督等保证学生作业的真实性,防止抄袭拷贝现象发生。

2.4考核方式的改革

实践对于这门课程很重要,故笔者建议将每次实验作业的成绩与综合实验项目报告成绩,按一定的比例作为学生期末课程总评成绩的一部分录入,即采用上机实验+综合实践+期末考核的方式来决定学生的C语言课程的总成绩,具体比例如下:上机实验(包含考勤)占30%,综合实践占30%,期末考试占40%。期末考卷最好能够实现教考分离,例如,课程组的各位老师共同设计题库,再从题库里随机抽题考核是一个不错的方法。

总的来说,这样的考核方式可以避免传统的一卷定分数的“高分低能”现象的出现,按这样的考核方式出来的成绩,既能反映学生平时的学习过程,又能督促学生自始至终都重视实践能力的学习与锻炼,考核里加上了解决实际问题的大中型综合实践与期末的卷面考核,能全面真实地反映学生的实际水平。

参考文献:

[1] 丁峻岭,张克军,代俊雅. C语言课程教学的探讨与研究[C]. 北京:高等教育出版社,2009:510-511.

[2] 李克东. 教育技术学研究方法[M]. 北京:北京师范大学出版社,2003:132-137.

[3] 谭浩强. C程序设计(第三版)[M]. 北京:清华大学出版社,2006:99-118.

[4] 刘平. 任务驱动式教学法在C语言程序设计教学中的应用[J]. 无锡南洋职业术学院论丛,2009(3):78-80.

[5] 郭有强. C语言程序设计课程建设探索与实践[J]. 教育与教学研究,2009(2):72-74.

Discussion on C Programming Language Course

XIONG Fang-min, XU Shuo-na

(Information Engineering and Technology Department, Nanhai Campus, South China Normal University, Foshan 528225, China)

Abstract: The C Programming Language is the first advance programming language course to computer speciality. It is important to the whole course system. To improve the teaching quality, this article analyses and discusses the problem existing in teaching, teaching technique, labs design and the assess mechanism of C language.

Key words: C language; teaching method; experiment

上一篇:地方院校网络工程专业的教改研究与实践 下一篇:传媒特色的数据库原理与应用课程教学改革