《C语言程序设计》教学之我见

2011-10-17 01:15刘丽娟
中国科技信息 2011年5期
关键词:C语言程序设计C语言程序设计

王 颖 刘丽娟 张 鑫

1.大连海洋大学 信息工程学院, 辽宁 大连 116023 2.大连交通大学 软件学院,辽宁 大连 116052

《C语言程序设计》教学之我见

王 颖1刘丽娟2张 鑫1

1.大连海洋大学 信息工程学院, 辽宁 大连 116023 2.大连交通大学 软件学院,辽宁 大连 116052

《C语言程序设计》是大学理工专业的一门重要必修课,但是学生学习该门课时都或多或少地感到头疼,学习不得要领,这就要求我们教师在教学中特别注意教学方法。本文结合作者多年的教学经验,介绍了几个关于程序设计类语言课程的教学观点。

C语言程序设计;缜密思维;选择结构

《C语言程序设计》是大学几乎所有理工科学生一入学必学的课程。由于C语言既能编写系统软件又能编写应用软件,在计算机行业中有着的特殊重要的地位,同时,学好C语言又能为学习其他学科培养严密的逻辑思维,所以C语言的重要性不言而喻。

1 学生学习C语言的实际状况

因为大部分学生头一次接触程序设计类课程,对程序的架构、设计思想、设计理念等等一概一片空白,更别说什么编程技巧了。加之若干零零碎碎的语法细节,真是让学生云里雾里,等稍微回过神来、刚刚有点感觉的时候,课程可能已经过了大半,此时在指针处再“摔个跟头”,还没等“爬起来”又“碰”上了看上去代码一堆一堆的结构体、共用体、文件,得!这一路,真是跌跌撞撞,没准很多人上了考场还是“鼻青脸肿”呢!

针对初学者的这种状况,结合多年的教学经验,我认为在《C语言程序设计》的教学过程中应着重贯彻以下几点。

2 几个教学观点

2.1 从“过去”到“现在”

每每看到学生被C语言“折磨”的心力交瘁的样子,就会联想起当初自己学习C 语言时的“迷茫”、“无助”。此时我就愈发体会到教师的作用有多么重要,如果教师在教学中多注意学生的感受,多反思自身的教学[1],多换位思考,多回忆一下“当初自己学习C语言时处在什么样的知识结构状态?对课程存在哪些疑虑?”,那么你可能就会给出他们心坎上的答案,及时消除了他们的困惑。因此,经常从“过去”的自己联想到“现在”的学生,备课时教师就会自然地多想想自己第一次学习C语言时存在什么疑惑?如何从学生目前所学的知识出发引出新的教学内容?用什么样的例子能形象说明重点、难点?诸如此类的问题我们想得越多,上课时就越游刃有余。

2.2 从“宏观”到“微观”

没有学过任何编程语言的人刚接触入门时,可以说一点感觉没有,他们不知道要学的是个什么东西,“长”成什么样,有什么用。因此C语言教学之初,先应该从全局上概述C程序的框架,让学生能从宏观的角度把握即将学习的内容,对新内容有个大体轮廓,形成全局意识,为以后有的放矢的学习作个良好的铺垫。等到所有内容学完之后,一定再强化一下所有内容的内在联系,为原来的框架“填血加肉”,使其更加丰满、更加鲜活,毕竟学活的知识才更加有意义。

所以教学中,应把握以下几点:(1)C程序由若干函数组成,函数无外乎三大类:主函数,库函数和自定义函数;(2)每个函数都可能涉及决定机器操作流程的三种结构(其实也就是人解决问题的思维过程);(3)机器干活时,首先需解决原材料、加工过程中的中间产物和最终结果的存放空间问题,即数据的存储问题,通过定义不同类型的变量来解决。如果想长期存放数据,用文件解决;(4)在以上向机器下达指令的过程中,需要一套完整的语言体系以达到让机器能“看懂命令”的目的,这就是编程语言的基本语法。

2.3 从“看程序”到“编程序”

学习程序设计很大程度上要求学会编程思想,能自己编出实用的程序来。不过一提到编程,恐怕大部分学生就会头疼,即使课程学完了,能将典型程序独立编出来的也是凤毛麟角。

其实,编程序跟写文章一样,一开始谁都不会编。回想我们小学时写作文,不都是先看很多优秀作文选里的文章,然后慢慢自己模仿着写吗?所以在让学生自己动手编程前也应该鼓励学生多看书上写好的程序,特别是经典的程序。看懂后自己一定试着编一遍,然后与原程序比较,看看自己有哪些地方没想到,哪些地方有问题,人家又是怎么处理的。

2.4 从“用程序”到“编程序”

很多学生看程序时总会感叹于编程人思维的缜密,“人家怎么就能想到,我怎么就没想到呢?”,于是有部分人就开始自怨自艾,唉!我不是编程的料!其实,人家的缜密思维除来自大量程序的积累外,还有很重要一点就是编程人一定要站在用户的立场上看程序,把自己想象成用户正在使用这个程序,那么在程序运行过程中自己可能会有什么样的操作呢?比如选择结构部分有一道根据收入计算纳税的问题(假设变量income存放收入)。思路代码如下:

这个思路再正常不过,但是如果自己操作时不小心将数据输错了,可能输了负数,那么程序应该有个信息提示告诉用户输错了。思路代码修改如下:

这样改完之后,即使输入有误,计算机也不至于还“傻乎乎”地按错误输入进行计算,同时屏幕上不但有错误信息提示,还给用户改正机会,而且机会还是无限次。瞧!如果编程人始终从用户的角度考虑问题,那么缜密性思维不也就逐步形成了吗?

3 结束语

printf(“Input error! ”);/*收入是负数时,输出错误信息提示*/

}

虽然有错误信息提示,但是进一步思考,光让计算机不再计算、用户知道自己输错了就万事大吉了吗?犯错在所难免,总得给人家改正的机会吧,鉴于此,作如下修改:

世上没有医治百病的灵丹妙药,更没有医治教育百病的灵丹妙药,所以不可能单凭几个教学经验总结就能解决所有学生的学习问题。因此,我们教师应该在教学中不断地发现每个学生的特点,具体问题具体分析,在一些总的原则下因人而异,因为教师的真正本领,不在于他是否会讲述知识,而在于是否能唤起学生的求知欲望,让他们兴趣盎然地参与到教学过程中来[2]。

while(1) /*第一次输入或重新输入收入时无条件进入循环体*/

[1]闫林,刘慧.反思性教学在C语言教学中的应用研究[J].福建电脑.2007(11):211-212

[2]http://www.360doc.com/content/11/0110/16/5451058_85515092.shtml

10.3969/j.issn.1001-8972.2011.005.084

猜你喜欢
C语言程序设计C语言程序设计
基于Visual Studio Code的C语言程序设计实践教学探索
51单片机C语言入门方法
从细节入手,谈PLC程序设计技巧
基于C语言的计算机软件编程
高职高专院校C语言程序设计教学改革探索
以“学生为中心”的《C语言程序设计》教学设计探究
基于翻转课堂的《C语言程序设计》课程教学系统的实现与研究
浅谈《C语言程序设计》课程的教学改革
《C语言程序设计》课程的教学改革与实践
PLC梯形图程序设计技巧及应用