《C语言程序设计》教学方法探索

时间:2022-10-02 11:10:36

《C语言程序设计》教学方法探索

摘要:C语言是一门典型的结构化程序设计语言,很多高校将其定为编程入门语言。时常会听到有学生抱怨C语言难学,难懂,难用,在解决实际问题编制应用软件时往往无以下手,缺乏编程和调试的能力。如何更好地开展C语言课程的教学呢? 本文就C语言教学中存在的问题,进行了相关的教学研究,提出了相应的看法,以促进C语言教学。

关键词:教学方法;教学模式;思维训练;自学能力

中图分类号:G642文献标识码:A文章编号:1009-3044(2008)21-30486-03

The Research of Teaching Methods in "C Programming Language"

LIU Jian-you

(Zhaoqing Science and Technology Polytechnic,Zhaoqing 526020,China)

Abstract: C is a typical structural programming language, many colleges and universities use it as basic programming language. Students often complain about C language difficult to learn, to use, to build the application software, lack of programming and debugging capabilities. How to better carry out the C language courses teaching?Author on the problems that exist in teaching, with his personal experience in teaching and experience, talk about their own views, to promote the C language teaching.

Key words: teaching methods; teaching mode; thinking training; self-learning ability

1 引言

程序设计语言的种类多得难以计算,为什么要以C语言作为编程入门语言呢?还有人说为什么一定要学习C语言,干嘛不直接从C++学起?而且学C++不一定要有C语言基础,有了反而会有些内容混淆。还有人说C语言都已经过时了,怎么还要浪费时间去学?C语言在教学过程中,抱怨C语言难学,难懂,难用,在解决实际问题编制应用软件时往往无以下手,缺乏编程和调试的能力。。久而久之,学生对学习此门课程就会产生厌倦的心理,不但影响本课程的学习,还会影响以后相关课程的学习。本文针对以上问题,指出了如下措施:

2 学习《C语言程序设计》的意义

我认为在学习C语言之前有必要弄清学习的意义所在,这样才能让学生对其产生兴趣。兴趣是人类最好的老师,只有对其产生了兴趣,我们才能学好这门语言。

将C语言作为入门语言具有重要的意义。C语言是一门典型的结构化程序设计语言,它具有语言简洁、严谨,用途广泛等特点,能够体现结构化程序设计的优良控制结构,非常适合初学者。通过这门课程的学习,能够使学生掌握一门结构化程序设计语言,更为最重要的是能让学生树立用程序解决现实问题的思路和方法。为今后的学习打良好的基础。再学其他程序设计语言,就能够在短时间内迅速的掌握。

3 改革课程教学内容,重视算法的编程思想,培养创造性思维

精选课程内容是一项非常重要的工作,它是教学内容的核心部分,《C语言程序设计》的核心内容包括C语言基本语法、程序设计思想和程序调试方法。语法是任何一门语言的基础,同时,各种程序设计语言在基本知识点上是相同的,学生对基础知识的正确理解和准确运用,其意义是深远的。

C语言程序是由函数组成的,无论问题多么复杂,我们都可以将其看成是一个大任务,这个大任务又可化分成若干个小任务,将这些小任务解决了,那么大任务也就完成了。也就是说其任务只有一个,就是编写函数(一个main()主函数和其他函数)。执行程序时,从mian()的第一个“{”,开始直到最后一个“}”结束,其他函数只有在执行的过程中被调用才执行。

学习C语言程序设计不仅是为了掌握一种开发工具,更重要的是用计算机解决问题。而算法是解题的方法和步骤,算法就是对操作的具体描述,是计算机的解题过程。编制程序,就是根据算法,用具体的语言依据某种规则编写计算机执行的命令序列。因此学习语言的重点是锻炼分析、分解,最终归纳整理出算法的能力。在教学过程中,学生能否理解算法,并掌握算法,成为教学的关键。

在C语言的教学过程中,改革传统的语法学习内容,将算法教学融入到语言教学中。由于C语言语法的逻辑性较强、结构性要求较高,初学者刚接触的时候容易考虑不全。因此算法教学可以通过实例进行, 从最简单的例子入手,使学生在解决具体问题的过程中学习C语言的基本逻辑结构和语句。生活中到处都存在着算法。而对于同一个问题可以有不同的解题方法和步骤,可以让学生根据同一个问题提出不同的算法,并比较这些算法之间的优劣,并让学生根据分析对算法进行优化。通过对算法的优化练习,可以在无形中提高学生写算法的水平。

4 改革课堂教学模式,培养学生自学能力

在教学中可以使用下面的一些方法,提高教学效果,培养学生的逻辑思维能力和动手能力。

4.1 改变传统的教学方式

虽然这个话题是老生常谈了,但是现在部分老师还没有认识到这个问题的重要性,仍然是“教师单向灌输”的教学模式。教师首先要在教学过程中树立以学生为主体,老师为主导的教学思想,正确处理传授知识与培养能力、提高素质之间的关系;其次改变教学模式,偿试采用以下教学方式。

4.1.1 任务驱动教学方式

在教学过程中避免照本宣科、枯燥乏味,“任务驱动”是建构主义理论中的一种教学模式,是将所要学习的新知识隐含在一个或几个任务之中,学生通过对所提的任务进行分析、讨论,明确它大体涉及哪些知识,在老师的指导、帮助下找出解决问题的方法,最后通过任务的完成对学生知识的传授。事实上它并不是简单的给出任务就了事,重要的是要让学生学会学习,使他们学会从多方位、多层次、多角度去考虑问题。使学生认识到学有所用、学以致用,自然地产生学习的愿望和动力。

可以先给出一个比较典型的C语言编写的例子。给学生具体的演示,通过这个效果激发学生的积极性。要求学生在期末的时候编写出相应的程序。有了这个任务,在讲课的时候逐步的告诉学生每一章可以具体的实现例子的那个部分,让学生逐步的去实现相应的功能。他们实现了相应的效果,就会极大地增强学习的兴趣和热情。这样可以让学生在愉悦的过程中学好这门课程。

4.1.2 启发式教学

为培养学生逻辑思维和创新能力,在教学过程中,教师遵循启发式教学原则,通过各种教学方式和手段激发学生的学习欲望,积极投入到学习活动中,积极思维,发现问题,提出问题,并逐步解决问题。例如,在讲解程序设计举例时,不是简单地给出程序清单,而是从分析问题入手,继而找出解决问题的方法,再给出算法,最后编写出完整的程序,而在这一全过程,最关键的是每一步都采用与学生一起探讨的方式,让学生在启发下思考,在思考中解决问题,从而掌握独立分析问题、解决问题的方法。

4.1.3 互动式教学

互动式教学是教师驾驭讲台能力的具体体现。一个教师站在讲台上,要不断地扫视下面的学生,观察学生的表情,了解学生的接受程度,并能及时地调整教学的进度和步骤,必要时到达到学生与教师在课堂上互相之间的交流。允许学生在不明白的时候随时提出问题,教师根据实际情况决定是当场解答,还是课后解答。真正实现课堂上的互动,其教学的效果就会显著地提高。教师在教学过程中,还应当注意设置疑难问题,引导学生思考和探索,让他们的思想活跃起来。

4.1.4 项目分析式教学

为培养学生综合应用知识的能力,通过对完整的项目的系统分析,培养学生良好的编程习惯,善于获取他人经验的能力以及掌握综合运用所学知识的能力,从而真正提高编程水平。

4.2 激励个性化学习

在微观课堂上采用项目递进驱动教学法,改变满堂灌的做法,将学生的眼手脑全部调动起来。精心设计实例,给学生一个比较实际的切入点,通过老师的演示使学生感觉能够入手,然后再通过将此实例不断修改、扩充,引导学生参与到程序的编制过程中,在这个过程中,再将学生所作的程序展示,让学生来评判优劣,吸收优点,修改错误,引导学生进行优化。在这样的实例教学中,因为有提出问题、解决问题、扩展问题、再解决问题、对解决问题的方法评价、优化设计等几个环节,实际上是一个螺旋式滚动向前的过程,在这个螺旋式不断向前的过程中,能够非常自然地调动学生的参与,而且通过问题的不断扩展,通过一个问题的多种解决方法,有效开阔学生的思维,使得学生在课堂上真正地成为 “ 主体 ” ,教师扮演 “ 主导 ” 角色。 这种通过一个程序的层层推进,引入课程内容,使得学生的每一步学习都有基础,是循序渐进,螺旋式上升的过程,使学生的学习是在“走台阶”,而不是“三级跳”,效果很好。

4.3 加强对学生程序设计思维训练

《C语言程序设计》课程不仅仅是一般意义上的知识传授,要让学生掌握程序设计的基本方法,对学生进行逻辑思维能力的培养。在实际的教学过程中,我们发现有些学生平时学得很认真,对语法、语句等细节也很熟悉,但碰到稍微复杂一点的编程则无从下手,教师在教学过程中要树立正确的教学思想,即注重算法设计,加强学生的程序设计思维训练,帮助学生顺利地实现思维方式的转变,而不能只单纯地讲授语言的语法、语义、语用,应该将复杂枯燥的语法知识分解到一个个生动实用的程序实例中,也就是在教学过程中以程序设计为主线,有意识淡化计算机语言本身语句的介绍,而重点介绍程序设计,在分析程序和程序设计中熟悉语法、应用语句,掌握程序设计和解决问题的思路(算法),并把软件工程学的思想贯穿于算法分析和程序设计的过程中。一定要避免陷入这样的误区:教师一味地给学生讲解语句的功能和语法规则,使学生陷入冗繁的语法规则之中,形成以语言为中心的思维模式。这样教出来的学生语法背得滚瓜烂熟,只会生搬硬套,缺乏实际编程能力,所以教师应注重培养学生形成以算法为中心的思维模式。对于从未受过算法设计训练的初学者来说,可能会感到无从下手,对此,教师应该有意识地加强这种思维方式的训练,通过讲授一些常用算法、典型算法,如记数、累加、连乘、两数交换、求最大(小)值、迭代、排序、分类等为以后编写程序、软件设计奠定基础,同时典型算法熟练的掌握,也可增加学生学习的信心并提高学习的兴趣,同时培养学生的思维能力。

5 强化实践教学,培养学生动手能力

实行实践教学形式多样化,上机操作,老师通常让照着书本的例子进行验证,这样无法增加学生的成就感,使学生觉得很无聊,在《C语言程序设计》上机实验教学中,除传统的课堂实验外,还开展课程设计、典型程序分析与设计等实践环节,还可以教师组织C程序设计兴趣小组,组织C程序设计大赛,组织学生参与科研开发等,将每一阶段的学习进行小结性的贯穿与能力提高。将 C 的知识点都溶化到一个个实训项目的程序编写中。整个过程以学生独立完成为主,教师只提供必要的辅导。经过实践训练,尤其经过综合训练中模拟实际软件开发的演练,使学生得到了锻炼,进一步激发了学习兴趣,培养了问题求解和编程能力,还有利于培养探索和创新能力。

6 改革考核方式,全面实行考教分离

C语言课程所有考试均实行考教分离,这不仅促进了任课教师对教学的精益求精,而且也给了教师充分发挥、施展个人教学才能的空间。在考核方法上,考虑到高职院校是培养应用性的实用人才的这一特点,该课程除采用传统的笔试外,大胆采用更能反映学生知识应用能力的上机考试,这一考试形式非常受学生的欢迎。可以采用多种形式考核学生,重点考核学生的实践动手能力。

7 结束语

以上是作者近几年关于C语言教学经验的总结,在实际的教学过程中取得了良好的教学效果。笔者认为在教学过程中除了要使学生掌握C语言程序设计这门语言外,最重要的是要让学生树立用程序解决现实问题的思路和方法(算法)。学生能否理解算法,并掌握算法,成为教学的关键,这是也学习C语言程序设计的重中之重。

参考文献:

[1] 谭浩强.C程序设计[M].2版.北京:清华出版社,2001.

[2] 卢继勇.“启发式”教学方法与C语言教学[J].重庆邮电学院学报,2004.

[3] 高秀娥.C语言教学方法探讨[J].中国教育学杂志:高等教育版,2006.

上一篇:JPEG2000中的感兴趣区域编码技术的研究 下一篇:基于IPv6环境下的网络入侵检测系统研究