当前位置:诚明文秘网>范文大全 > 公文范文 > 《C语言程序设计》教学探索与实践

《C语言程序设计》教学探索与实践

时间:2022-11-10 14:45:07 公文范文 来源:网友投稿

C语言作为当前种类繁多的计算机语言的起始点,分化出了当今众多的语言种类,学习C语言对掌握计算机技术和其他语言具有重大意义;学好C,掌握程序设计的基本方法,也是学习C++,Java,Visual Basic等语言的重要基础。C语言以它的结构化、灵活性大、可移植性强、效率高等优点,被广大院校相关专业作为首选。但由于C语言涉及的概念较复杂,规则繁多,数据类型和运算符丰富等特点,它又是较难学的语言之一,时常会听到有学生抱怨C语言难学,难懂,难用,在解决实际问题编制应用软件时往往无以下手,缺乏编程和调试的能力。许多学生甚至在学完了该课程后仍然无法完整、正确地理解C语言的整体结构和特点。那么如何更好地开展C语言课程的教学呢?笔者结合自己在教学中的切身体会和经验,谈谈自己的看法。

一、知识点的金字塔结构

通常,C语言是学生接触的第一门程序设计语言,它所包含的基础知识繁多,这样精选课程内容就成了一项非常重要的工作,它是教学内容的核心部分,《C语言程序设计》的核心内容包括C语言基本语法、程序设计思想和程序调试方法。语法是任何一门语言的基础,同时,各种程序设计语言在基本知识点上是相同的,学生对基础知识的正确理解和准确运用,其意义是深远的。笔者经过对C语言教学内容的分析,归纳出了一个类似于金字塔的知识点结构。

处于最低层的标识符是“基石”,无论是常量、变量、数据类型还是函数,都必须用标识符来描述,表达其含义,在使用是遵守“见名识义”的原则;常量、变量、数据类型和运用符是“骨架”;表达式和语句是“上层建筑”,各种类型的常量、变量经运算符的连接构成相应的表达式,语句则由一个个的表达式构成;函数是“金顶”,程序由一个个函数组成,C语言程序设计,无论问题多么复杂,其任务只有一个,就是编写一个main()主函数,同时,编写具有各种功能的其他函数。执行程序时,从mian()的第一个“{”,开始直到最后一个“}”结束,其他函数只有在执行的过程中被调用才执行。

二、教学重点和难点

在C语言中,数值型数据和字符型数据是可以混合运算的,以及数据型的自动转换、强制转换、学生在学习时容易出错,不易理解。我们可以从数据在计算机内存中的存储长度和二进制表示形式着手,讲述他们之间的内在联系,这样容易理解问题的本质。

自加和自减运算既是重点又是难点。如果它们单独作为语句使用,如:I=j++,应该不难理解,学生能准确把握其值的变化;若作为表达式的一部分参加运算,此时,显著地增加了运算的难度,要求准确的理解运算符的结合方向、运算对象的个数、运算符的优先级等运算规则,如:int I=3;printf("%d",-I++);问输出结果是多少?这个难度就非常大了。学生应少使用组合运算,避免产生错误。

运算符的优先级也是教学的重点和难点,但是有规律可循:单目运算的优先级最高(括号除外),逗号运算符的优先级最低,赋值运算和复合赋值运算的优先级仅比逗号的高;算术算的优先级比关系运算的高,关系运算的比逻辑运算的高(逻辑非运算除外)。

数组和指针是C语言的灵魂。“没有学好指针,就算没有学过C语言。”从这句话可见指针在C语言中的地位,而且指针在后续课程中的作用也是相当重要的。但是,指针的理解和运用难度是很大的,特别是初学者。

我们可以从下面几个方面来加深理解、加强教学:

①简单指针和基础知识。简单指针是指基本数据类型的指针和一维数组。指针在使用前应具有确定的值(即指向确定的变量);指针的类型应与其指向的变量类型完全一致;指针只能进行加减、辅值运算。

②杂指针的说明、含义和应用。具体指指针作为函数的参数、函数指针、文件指针、指针数组、多级指针。对于这些指针要正确理解它们的含义。

③构体指针。它也是,《数据结构》的重要内容。主要用来构成链表,在学习这部分知识时,可以用图式的方式来帮助理解。

在实际教学中要注意的是教学的重点不一定是教学的难点,反之亦然。同时,要针对不同专业的学生进行教学内容的恰当取舍,且注重知识的实用性。譬如:对非专业的学生,重点讲述语法,对于难度比较大的部分可以少讲甚至不讲。对专业学生,侧重于讲述算法的思想、数组的应用、函数的参数、结构体和指针的运用,为后续课程的学习做必要的铺垫。

三、教学方法和教学改革

在实际教学中把基本语法、程序设计思想、程序调试方法作为教学的三个核心内容。针对非计算机专业的学生,多讲语法和程序调试方法、技巧;对专业学生来说,不同的程序设计语言在语法上,程序调试方法和技巧上大同小异,学生应该准确把握,熟练运用它,把教学的重点放在算法的设计上和程序的效率上,为后续课程的学习打下理论基础。

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

1.理论联系实际

在教学过程中避免照本宣科、枯燥乏味,尽量与实际生活和相关课程进行联系。如可以将数学中的积分、微分、求梯形面积、求最大公约数和最小公倍数等引入程序设计中。不但能使学生在知识的相互联系和比较中发现新的内涵,起到温故知新融会贯通的作用,还能锻炼、发展学生的思维能力和辨别能力,使他们学会从多方位、多层次、多角度去考虑问题。使学生认识到学有所用、学以致用,自然地产生学习的愿望和动力。

2.掌握典型算法,加强程序设计思维训练

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

3.如何提高程序的执行效率

由于C语言已成为被广泛使用的教学语言,笔者在c语言教学过程中对学生编写的程序进行分析时发现很多学生对程序的执行效率不能很好的把握,造成编写的程序执行效率较低。对于程序来说,效率应包括程序的执行速度和对计算机系统资源的利用,我们只能根据具体情况作出判断,然后进行分析。但是优化这一方面可能又会损坏另一方面。例如:采用程序的直接编写而不调用函数的话,这样可以省去调用函数的时间,以提高速度,但是程序又被拉长了,占用较多的磁盘空间;如果一味的压缩数据以充分利用磁盘空间的话,则会降低存取速度或使程序不易理解。所以在程序设计中常常将一些常用的功能模块编写成函数,放在函数库中供公共选用。编程时要善于利用函数以缩短程序长度和减少重复编写程序段的工作量。

实验教学是对理论教学的重要补充和检验。在实际教学中发现,学生对书本知识看得清楚,听得明白,遇到实际问题则无从下手,显得很被动,究其原因主要有三点:一是对实验重视不够;二是课前准备不足;三是缺乏程序调试能力和技巧,在出现编译错误时,往往是去查看书本上的源代码,而不是根据错误的提示信息,在错误行号的附近查找错误,以至浪费了实验时间,没有达到实验的要求和目的。

为提高学生的动手能力,在实验时需要恰当选择实验内容,一方面可以依照课本的章节内容进行针对性的选择,另一方面可以选择带有综合性的题目,以提高综合应用能力。在理论教学结束后,常安排一周的时间进行课程设计,要求完成一个大作业,这应该是一个很好的锻炼机会。

总之,C语言作为一门重要的程序设计语言,只有运用正确的教学方法和学习方法,才能真正学好它、用好它。

推荐访问:探索 实践 语言程序设计 教学

版权所有:诚明文秘网 2010-2024 未经授权禁止复制或建立镜像[诚明文秘网]所有资源完全免费共享

Powered by 诚明文秘网 © All Rights Reserved.。备案号:京ICP备10026312号-1