您好, 访客   登录/注册

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

来源:用户上传      作者: 温建峰

  摘 要: 《C语言程序设计》在中职计算机专业课程中起着举足轻重的作用,职业学校的学生素质偏差,学生理解、接受能力较低,倘若教师的教学方法不能很好地吸引学生,势必会造成学生厌学的情绪,使教学陷入困境。
  关键词: 中职计算机专业 《C语言程序设计》 教学方法
  
  《C语言程序设计》在中职计算机专业专业课程中起着举足轻重的作用,也是对口高考技能考核和理论考试的必考科目。学生素质偏差是中职学校普遍存在的共性,由于学生素质一般不高,学习兴趣不浓,学习态度不端正,学习目的不明确,再加上学生刚刚接触计算机语言类的专业课,该课程本身难度较大,枯燥无味,又存在传统教学的弊端,教学设施设备落后,这些因素造成学生学习困难,没有兴趣去学,甚至有些学生望而生怯,不愿意去学;教师上课也无精打采,照本宣课,课堂氛围死气沉沉,教学效率不高,教学质量上不去,使教学陷入困境。如何使教师的教与学生的学走出误区,已成为当务之急。
  一、培养学习兴趣,提高学生的学习积极性
  爱因斯坦曾经说过:“兴趣是最好的老师。”一些老师往往不注重学生兴趣的培养,在第一课简单介绍完自己后就步入正题,开始按部就班地教学了,认为早点让学生接触本课程的相关基础知识,可为后面紧张的学习争取时间。其实不然,中职学生素质不高,学习兴趣不浓,甚至有厌学情绪,如果一开始就讲授课本知识,容易使本就厌倦学习的学生产生抵触情绪,从而为后面的教学带来诸多不利因素。
  教师首先应想方设法调动学生的学习积极性,不要急着去讲解书本知识,把学生学习积极性调动起来,让学生感觉学习C语言程序好玩,把C语言的研发当成一种游戏,产生强烈的求知欲望,进而挖掘出巨大的学习潜能。
  其次在C语言教学中应多采用通俗易懂的例子,避免抽象问题挫伤学生学习积极性。比如在讲解两个变量值互换时,很多学生采用数学中的解法:A=B,B=A,不理解为什么要引入中间变量C,使用C=A;A=B;B=C语句。[1]此时教师如果用生活中看得见摸得着的实物来比喻,学生就很容易理解了。假设A和B两个盒子里分别放满白色粉笔和彩色粉笔,现要求在不借助第三方载体的情况下将两盒粉笔交换,请同学演示,能否成功?如果再拿一个空盒子来并允许使用第三个空盒,能否成功?由此得出必须借助第三个盒子,才能交换成功。这样学生理解起来就容易多了。
  二、重新整合教学内容,分类汇总
  教材一般先介绍数据类型、表达式、算法、函数等抽象难懂的C语言基本概念,然后才介绍程序的编辑和运行。如何利用现有资源重新整合教学内容打破教材原有的顺序章节,将各知识点按先分类后汇总的原则重新组织?这就要求教师对整本教材的内容非常熟悉,能前后照应、融会贯通,而不是为了上课而上课,照本宣课,不能尽信书,也不能无书,这样会取得更好的教学效果。例如在讲解命名规则时,老师可以把变量和数组放在一起,使学生感觉到知识间的关联,记住了一个,另一个也记住了,提高学习效益。再如利用C语言把一系列杂乱无章的数据按照一定顺序排列,此时我们可以把顺序法、选择法、冒泡法放在一起,让学生能直观地看出各种方法的区别,举一反三,有利于加深对知识的理解。
  如学习循环结构时,举例:sum=1+2+3+4+5+…+n;让学生建立两个概念:装和的变量sum(初值为0),表达式:sum=sum+n;例题变化:p=1*2*3*4*5*…*n;装乘积的变量p(初值为1),表达式:p=p*n;深化例题:s=1!+2!+3!+4!+5!+…+n!;引导学生分析并发现这是前两个循环的合并,得出循环体语句:p=p*n,s=s+p,[2][3]使学生掌握一题多变的思维模式,举一反三、触类旁通。
  三、改变传统单一的教学方法
  C语言和其他计算机专业课不同,它要求初学者要具备较好的数学和英语基本功,而数学和英语是职业中学学生普遍感到头疼的“老大难”课程。针对这种现状,我们要根据学科间的联系,以及学生的个性差异因材施教,要改变过去单一、乏味的以教师讲为主的传统教学方法,采用适应时代需求的符合学生客观规律的“项目教学”、“自主学习”、“任务驱动”、“案例学习”、“合作学习”[4]等多种方法。
  例如:输入5个学生的3门课程成绩,求每个学生的平均成绩和每门课程的平均成绩。学生拿到题目感觉无从下手,我把题目拆分成两个任务:1.求每个学生的平均成绩;2.求每门课程的平均成绩。再将学生分成A、B两组,分别将任务1交给A组学生完成,将任务2交给B组学生完成。这样学生感觉轻松多了,轻而易举地完成了各自的任务。最后我把两个任务再组合在一起,此题就迎刃而解了。在教学过程中我改变了过去一个人讲的传统教学方式,采用项目教学和合作学习相结合的复合法使问题得以解决,学生对二维数组有了进一步的认识,加深了理解。
  求学生平均成绩程序段如下:
  For(i=0;i<5;i++)
  Aves[i]=0
  For(j=0;j<3;j++)
  Aves[i]+=scor[i][j];
  Aves[i]/=3;
  求课程平均成绩程序段如下:
  For(i=0;i<3;i++)
  Aves[i]=0
  For(j=0;j<5;i++)
  Aves[i]+=scor[i][j];
  Aves[i]/=5;
  C语言程序设计课程本身要求培养学生的动手能力和综合运用知识解决实际问题的能力,这就要求学生要多动手上机练习。教师要采用多媒体技术,多形式地运用教学方法激发学生的学习兴趣,引导学生的发散性思维的形成。例如:打印杨辉三角形,由于学生对杨辉三角形不了解,教师可以借用Flash动画形象地打印出杨辉三角形,帮助学生找出其中的规律:第一列的数都是1,各行最后一个数也是1,从第3行第2个数起,为上行同列数与前一列数之和,例:a[i][j]=a[i-1][j-1]+a[i-1][j];(i>=3,j>=2)。教师借助动画,可使得原本抽象难懂的概念变成形象直观的动态模型,为学生在练习的过程中发现问题、探讨问题、解决问题,积累丰富的经验,使学生体会到成功的喜悦。
  只要我们能从学生的实际出发,充分调动学生的学习积极性,运用科学有效的适应时代要求的教学方法,就一定能使学生学好这门课程。
  
  参考文献:
  [1]林东,陈琳.编程语言基础――C语言.高等教育出版社,2006.6,(2).
  [2]黄煜编.程序设计语言课程教学方法探讨.山西农业大学学报,2006,(1).
  [3]谭浩强.C程序设计题解与上机指导.清华大学出版社,2000.9,(2).
  [4]王吉庆.信息技术课程与教学论.浙江教育出版社,2003.8.


转载注明来源:https://www.xzbu.com/9/view-907643.htm