PC版
搜索导航
论文网 > 教育论文 > 学科教育论文

C语言程序教学新探

  0 引言
   程序设计对于各个计算机类高校而言,都是非常重要的一类课程,尤其是理工类院校的必修课。而要进行程序设计,必须掌握一门计算机语言来做为编程工具。目前,很多计算机类高校都把C语言作为程序设计的入门课程来教学。我们知道可供选择的计算机语言是非常多的,如C++,C#,java等等,之所以选择C语言是由于C语言功能丰富,表达能力强,使用灵活方便,应用面广,目标程序效率高,可移植性好,它既有高级语言的优点,又有低级语言的许多特点。可以说,学好C语言对打好程序设 计基础起到至关重要的作用。
   由于很多高校在学生进入大学学习的第一学期就开设C语言课程,大多数学生在高中时因为高考的压力而没有接触过计算机,对计算机的基本操作并不了解。这就导致了学生在学习C语言的过程中,感觉C语言语法枯燥,难以掌握;对基本概念能够理解,但是当实际应用到程序编写的时候又感觉无从下手;学生没有养成良好的程序编写习惯,使写出来的程序漏洞百出……等等这些问题都跟教师的教学方法、学生的学习方法有很大的关系。针对学习C语言中的种种问题,根据笔者多年的C语言教学经验,下面提出C语言教学中的一些新思路供大家共同探讨。
  1 掌握基本要求,打好学习基础
   在学生阶段,C语言的学习主要是学习程序设计的方法,训练程序设计的思维,为以后进一步的学习和应用打下良好的基础。但在实际教学当中,很多学生改变不了高中时期的学习方法,对课本上的概念和程序死记硬背,总以为把书背熟了就能够学好C语言,而没有把精力放在最基础、最常用的内容上,以至于基础薄弱,在程序的编写时经常会出现一些不应有的错误。笔者在教学中发现学生经常会出现以下一些问题。
   (1)编写程序时不区分标示符的大小写。例如,int myname和int MyName就是完全不同的两个变量。在C语言里面,对标示符大小写敏感,但是很多同学就是会忽略这最基本的要求,造成程序出错。
   (2)对“=”和“==”混淆使用。“=”是C语言里的赋值符号,把右边的值赋给左边的变量;而“==”是关系运算符,它的作用是判断“==”两边的值是否相等,返回的结果是一个逻辑值,即“真”或“假”。例如:a=1,是把1这个数据放在变量a里面,而a==1,表示a变量的值是否跟1相等,如果相等返回“真”,如果不相等就返回“假”。
   (3)颠倒printf()函数值的输出顺序。直接看个例子:
  
   输出的正确值应该分别为10,11,10,10。
   很多学生出现错误是因为不理解printf()函数执行的顺序,printf()函数在执行时是从右到左,而输出时是从左到右。
   从以上3个学生容易出错的例子我们可以看出,正是由于学生对基础知识掌握的不理想,导致这些极其简单错误的出现。在我们的教学当中,教师也必须把最基础的知识跟学生讲透,让学生改变学习观念,对学生加以引导,懂得学习C语言并不是一朝一夕就能够一下子变成编程高手,而应该脚踏实地,实事求是地打好基础。
  2 重视算法的学习
   算法是程序的灵魂,没有好的算法,就编写不出好的计算机程序。在C语言教学中,教师在很多时候都不注重算法的教学,导致学生上课时候能听得懂,看得懂课本上的程序例题,但是当布置作业让学生自己去完成程序编写的时候,学生又感觉无从下手。这些都是由于学生只注重去背课本上的程序例题,而不注重程序的算法思想照成的。教师在教学中要注意对学生算法逻辑思维的培养,在讲解程序时,应该首先分析程序中所需要用到的算法,要把重点放在例题的解题思路上,一步一步地引导学生,让学生知道程序为什么要这样编写。在授课阶段初期,我们也可以给学生举一些简单的、有生活气息的例题来引发学生对算法的兴趣。例如,我们可以举这样的一些例子。
   (1)家里有个微波炉可以同时烧烤2份牛排,每份牛排有两面,每面需要烧烤2分钟才可以食用,问用微波炉烧烤3份可以食用的牛排需要多少时间?这个问题用算法来解答的话,我们可以有2种方案。第1种,先把第1份牛排和第2份牛排放进去烧烤2分钟,然后再把这2份牛排翻一面过来再烧烤2分钟,接下来把第3份牛排放进去,烧烤两面共花去4分钟,由此可知整个过程一共要用掉8分钟。第2种,同样的把第1份牛排和第2份牛排放进去烧烤2分钟,然后把第2份牛排先取出来,把第1份牛排翻一面过来跟第3份牛排一起放进去烧烤2分钟,最后把第3份牛排翻一面过来跟第2份牛排的另一面一起烧烤2分钟,这样3份牛排就都烤好了,这种方法,我们只需要6分钟。很显然,用这样一个简单的例子,可以让学生知道算法的重要性,好的算法可以节省程序大量的执行时间。
   (2)有甲乙两人,甲现在26岁,乙现在8岁,求多少年之后甲的年龄是乙年龄的两倍?对于这个问题,我们可以引导学生使用循环体来解答。我们知道年龄是逐年增长的,假设甲为变量m,乙为变量n,则循环体就是m++、n++的一个过程,当甲和乙的年龄相差两倍时,循环结束。所以我们设定循环体的执行条件应该是m!=2*n。最后当循环体结束时输出m和n的值。通过这样的一个分析过程,相信学生很快就能够写出这个问题的程序。
  由此可见,通过一些例子的算法讲解,一方面能够让学生理解解题的过程,一方面还可以锻炼学生的算法思维,让学生感受到算法的重要性。
  3 上好实验课
   上机实验也是C语言教学中的一个重要环节,学生仅仅听课是学不好C语言的。学生不仅要能够掌握基础的概念,还要自己动手编写程序,最后要亲自上机调试程序的运行并对程序进行修改。所以,如何上好C语言课程的实验课,也是教师要思考的一个问题。在笔者平时的教学中遇到这样的一些问题,如很多学生在上实验课时,没有把精力放在学习上,而是在玩游戏看小说;还有些学生上实验课前没有很好的预习,浪费了大量时间在知识的复习上;在实验过程中,学生一遇到问题就会向老师提问,以至于老师疲于解答甚至由于问的人数过多而无法一一进行解答。这些问题都影响到实验课的效果,甚至会影响到部分学生的学习积极性。如何改变这种状况,笔者采用以下几种方法。
   (1)在上实验课之前就把实验题目布置给学生,学生在上课之前就需要提交给教师一份预习报告,这份报告里面应该包含学生对实验题目的解题思路及初步的解题程序。然后让学生带着这份报告上机调试程序。这样就可以避免学生在上实验课时无所事事的情况。
   (2)对于有条件的学校可以配置多名实验指导教师。学生在实验中经常会遇到一些问题需要教师帮助解决,当问的人比较多的时候,教师就没有办法一一解答,而部分学生由于得不到解答而会停止程序的调试转做其他事情,如果一直得不到帮助的话,就会影响他们的积极性,所以配置一到多名指导教师是很有必要的。如果没有足够教师的话,我们可以让班级里面学习比较好的同学,组成一个学习兴趣小组。让这些学生在实验课时对一些有问题的同学进行帮助,这样既能够增进学生之间的友谊,又能够完成教师布置的实验任务。
   (3)改变实验的考核方式。很多教师一般都是在下课的时候让学生提交作业,这样可能会让一些学生钻空子,拷贝别人的作业提交。所以建议在课堂上当场对学生的作业进行评分,遇到有雷同的作业,要求学生重做。在期末的时候,也必须要强调平时的成绩,不能把期末成绩作为衡量学生成绩的唯一指标。
   通过以上的一些措施,可以有效地促进学生对C语言的学习效果,对巩固C语言的课堂教学起到了巨大的作用。
  4 结语
   以上笔者就平时的一些教学经验跟各位同仁一起探讨,主要目的还是希望能够改变当前C语言程序教学中的一些不足之处,对以后的教学能够起到一定促进作用。应用本文中的一些措施,对我校C语言程序的教学有明显的帮助,但各个学校的软硬件水平都不尽相同,希望各位同仁能够从中得到一定的启发,共同把C语言程序这门课上好,让学生学好。

相关论文

语言程序教学
新闻传播政策与法规“课程思政”案例
医疗保险本科专业人体解剖学教学研究
浅谈心理学理论在初中数学教学中的运
浅谈初中英语教学中“教育戏剧”的实
汉语言文学对传统茶文化的作用研究
写生课程融入学前教育美术教学的应用
电商直播课程教学融入思政教育构想
课程思政融入“保险学”教学的路径及
浅谈茶文化的旅游管理教学改革模式
高校商务英语教学中的思政融入构想