浅谈“C语言程序设计”教学体会.doc

上传人:3d66 文档编号:1838912 上传时间:2019-01-11 格式:DOC 页数:12 大小:23KB
返回 下载 相关 举报
浅谈“C语言程序设计”教学体会.doc_第1页
第1页 / 共12页
浅谈“C语言程序设计”教学体会.doc_第2页
第2页 / 共12页
浅谈“C语言程序设计”教学体会.doc_第3页
第3页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《浅谈“C语言程序设计”教学体会.doc》由会员分享,可在线阅读,更多相关《浅谈“C语言程序设计”教学体会.doc(12页珍藏版)》请在三一文库上搜索。

1、浅谈“语言程序设计”教学体会中国分类号G642 A Simply discussing C language program design teaching experience Yu Jiu-jiu (AnHui WenDa Information And Technology CollegeHefei231201) Abstract C language program design is one of the courses for computer specialty in colleges, the effect on teaching affects the application

2、 for aspect of computer for students directly. The article is about the character on C language combined with theteaching practice for three years, and discusses some teaching experience for the course. Keywords C language;program design;teaching experience “C语言程序设计”课程是高等院校计算机专业开设的专业基础课程之一。近几年笔者先后承担

3、了高校计算机网络技术、软件应用技术等专业的C语言程序设计课程的教学任务,但在教学过程中却发现了一些问题,也总结了一些经验。现就C语言课程的教学,浅谈几点个人体会,仅供大家借鉴。 1由实验入手,培养学生的学习兴趣 “C语言程序设计”课程是学生所接触的第一门计算机编程方面课程,所以很多老师采用理论教学2周后开始上机实践,从介绍C语言的语法算法开始,然后讲书写程序,最后进入程序调试的教学过程。由于程序设计语言贯穿于由设计算法到书写程序与调试运行的一连串过程,复杂且抽象,再加上有些学生的逻辑思维能力不强,这也就是导致部分学生在上课伊始反映C语言难懂、难学的主要原因。 在学习之初,教师应注意教学的方式方

4、法,要设法调动学生的学习兴趣,教学过程才不会枯燥无味。“C语言程序设计”课程的核心是将现实中的数学问题转化为具体的C源程序,并调试实现,因此第一次课最好定为实验课。通过给出几个简单且学生熟悉的数学问题以及它们所对应的C语言程序源代码,边介绍程序运行平台(如Turbo C, VC+等)的操作边指导学生自己编辑调试,观察运行结果。当程序成功的输出结果时,学生对这门课的学习兴趣自然产生了。在此基础上,教师可对程序进行一些简单的修改,使程序输出不同的结果,并解释原因,然后提出新问题,让学生参与思考。第一堂课通过实验教学,使学生明白如何分析并解决实际问题,完成从数学逻辑到计算机语言程序的转变,从而逐渐培

5、养学生对程序设计的兴趣。 2教学中应避免过分强调某些容易引起副作用的知识细节 一般而言,C语言是高校所开设的第一门程序设计课程,所以学生一般都没有计算机语言的基础,对计算机语言的认识也非常有限,很多基本概念都不知道。由于C语言牵涉到的概念比较复杂,规则繁多,使用灵活,容易出错,所以在C语言教学过程中,要应该要遵循由易到难,抓主要矛盾的原则,加强对学生C语言基础知识、基本运算的强化练习的同时又不拘泥于某些易产生副作用的细节。例如在介绍C语言自加自减功能时,假设有程序 main() int i=5,j=5,p,q; p=(i+ +) + (i+ +) + (i+ +); q=(+ +j) + (+

6、 +j) + (+ +j); printf(“p=%d,q=%d,i=%d,j=%d”,p,q,i,j); 程序结果却是p=15,q=24,i=8,j=8 。为什么是这个结果呢?这对于初学者来说很难理解。因为这里产生了有关自加自减运算副作用功能。对p=(i+ +) + (i+ +) + (i+ +)而言,应理解为三个i相加,故p=15。然后i的值自加1三次,故i=8; 对于q则不然,q=(+ +j) + (+ +j) + (+ +j)应理解为j先自加1三次后值为8,三个8相加后值为24,j的最后值为8。 所以说,教师在介绍C语言自加自减运算功能时,一定要加强与其相关的基本知识点的教学及运用,不

7、宜强调与上例类似的易产生副作用功能的程序。 同样,在介绍C函数调用时,也应该避免向学生介绍如下程序 main() int i=2, p; p=f(i, + +i); printf(“%d”, p); int f(int a, int b) int c; if(ab) c=1; else if(a=b) c=0; else c=-1; return (c); 为什么最后程序结果是1而不是-1呢?这是因为Turbo C下printf( )函数参数的求值顺序是自右向左的。介于C语言中有些细节牵涉到的副作用问题很多,教学时不必在每个细节上过于死抠,应把教学精力放在最基本、最常用的那些部分,待学生有一定

8、基础后再深入到一些非主要的细节上。C语言有些细节是需要学生通过长期实践才能熟练掌握的。教学过程中切忌过早的向学生反复强调C语言中某些容易引起错误的细节,例如+ +和- -运算符的副作用,逻辑表达式中的“逻辑短路”问题,Turbo C平台下printf( )函数中由右至左的参数输出原则等。 3阶梯法举例 为培养学生的学习兴趣,大部分教师在C语言教学过程中,都不一味地按书本去讲,而通过多举些实际的例子来巩固学生所学习的知识点。但是教师对所教授的知识点如何举例,例子的难度如何,学生能否从所举的例子中更好的掌握相应的理论知识等一系列问题却摆在教师面前。笔者在三年多的C语言教学实践中采用阶梯法举例方式,

9、取得了不错的教学效果。 阶梯法举例是指在课堂上把同类型问题归结出来,将这些问题按难易程度排列举例,让学生从理解最简单的例子开始,按照由易到难的顺序依次理解所学知识点。例如在讲述C语言中求若干数中最大值的知识点时,举出 第一层问题2个数的最大值求法 第二层问题3个数的最大值求法 第三层问题4个数的最大值求法 第四层问题n个数(4个数以上)的最大值求法 第一层问题的解决采用简单if语句 main( ) int a,b,max; scanf(“%d%dn”,a,b); if(ab) max=a; else max=b; printf(“max=%dn”,max); 第二层问题的解决采用简单if-el

10、se复合语句 main( ) int a,b,c,max; scanf(“%d%d%dn”,a,b,c); if(ab) max=a; else if(cb) max=c; else max=b; printf(“max=%dn”,max); 第三层问题的解决采用条件语句加上if语句 main( ) int a,b,c,d,max; scanf(“%d%d%d%d”,&a,&b,&c,&d); max=(ab)?ab; if(maxmax)max=ai; printf(“max=%dn”,max); 这样通过阶梯法举例教学,学生对同类问题的解决有了比较深刻的认识。这样使不同程度的学生,尤其是学

11、习有困难和问题较多的学生,都能够得到提高和发展。阶梯法举例的主要特点是目标具体,升级适度,符合学生的心态,使学生有成就感,形成积极向上的学习态度。 4强调程序语法规则,淡化程序算法设计思想 C语言语法规则繁多,且使用灵活,很容易出错。这样使得学生调试程序过程变得更难。因此,教师在C语言的教学过程中,一定要强调C语言中语法细节问题,把一些经常会犯的错误总结出来,例如在C语言里,赋值运算符是“”,而“”是关系运算符的相等比较,但是很多学生在编程时经常会误把“=”当成“”;对于算数运算符“/”,当两个整数相除时结果是整数商而不一定是实际的结果;在判断语句中,例如if (a = 1),因为“”是赋值操

12、作,括号中的条件则会永远为真,程序在编译时不会提示有错,可以编译通过,但这明显不是所要的结果等。以上这些语法细节和现实中的数学问题是不一样的,对于初学者而言,教师在授课时一定要强调语法细节,避免出现不必要的错误。 任何语言程序在组织结构上都遵循一定的算法,算法是程序设计的灵魂。好的算法能使程序运行高效。但是算法在讲授C语言程序设计课程中所占地位如何却是有争议的。根据笔者的教学体会,认为C语言的教学过程中应该强调程序语法,淡化程序算法。淡化算法并非忽视算法,只是在完成某一程序的同时不必过分强调其别的算法的实现。例如在讲授一维数组中的冒泡排序问题时,应避免强调各种不同的其它排序算法(例如插入排序,

13、二分排序,快速排序等),因为“C语言程序设计”课程本身的性质是专业基础课程,是以后所开设的“数据结构”、“算法设计”等专业课程的先行课,其重点是放在语法的使用上,及如何运用C语言编写简单程序。至于有关程序算法的研究和实现,可以放在“数据结构”、“算法设计”等专业课程中。加之C语言通常是学生所接触的第一门语言设计课程,大多数学生是没有算法设计基础的,教学中淡化算法可以使学生集中精力消化C语言本身,取得不错的听课效果。当然,在讲授某一具体程序实例时,首先要给出程序的算法流程图(这一块让学生完成是不适宜的),然后着重强调程序的语法组织结构,至于程序所采用的算法思想可以简单介绍一下,不必作过多研究,也

14、不必讨论有关该算法所实现程序的效率。课后布置学生完成的程序(例如求两数公约数、公倍数等程序),教师一定要事先给出算法流程图,以程序最终能否调试运行为考核标准,不宜追求程序算法实现的难易程度。 5传授编程技巧,养成良好的编程规范,培养学生独立调试程序的能力 C语言是一门实践性相当强的课程,上机实验是C语言教学的重要组成部分,针对不同的学习对象和学习要求布置好上机作业是教学成功的重要保证。教学中,教师应该传授学生一些编程技巧,例如一些典型数学问题的运用等,让学生学会如何熟练应用C语言行动编程。由于C语言语句书写灵活,教师在实验课上应重视学生书写程序规范问题。例如,强调变量命名应顾名思义,一行只书写

15、一条语句,每一小段程序要有中文注释等。养成这些良好的编程规范对学生今后从事软件开发工作是大有裨益的。此外还应引导学生多读程序,多编程序,多上机调试程序。当然,教师光教会学生如何编写程序还远远不够,教会学生如何高效地调试程序也是很重要的一点。由于学生第一次接触语言设计课程,编写一个程序,无论大小,最初不可能一点错误都没有,无论是出现语法错误还是逻辑错误,哪怕是一点笔误,编译器都会报错。在这里,教师应发挥学生的自主能力,指导学生如何根据编译器所报错误的类型找到程序中出错的地方,并加以改正。而非学生在编写程序时一发生错误教师就越俎代庖,帮学生解决问题。“授之以渔,则享其生”,这个环节尤其重要,否则让

16、学生养成了依赖心理,对学生今后的职业发展是不利的。 最后教师在实验课中,应该把一些常用的程序调试方法总结出来,教给学生,让他们自己去学习如何找错纠错,最后把程序运行成功。学生只有通过反复上机操作,在教师的指导下找错纠错,才能对C语言有更深、更全面的认识和理解,逐步提高实际操作和学习的能力。 总之,在C语言实践教学中,就是要让学生养成良好的编程规范,培养学生独立调试程序的能力。 6采取多元化的考核方式 为了保证课程的教学质量,课程的考核方式也很重要。要想真正科学全面的考查学生是否建立了严谨的程序设计思想,是否具备一定的上机编程能力,必须采用多元化的考核方式,针对C语言中不同的知识类型采取不同的考

17、试形式。如考查C语言中常识性的知识可以采用闭卷考试形式;考查学生知识转化能力、应用能力等可以采用开卷考试形式;考查学生的程序调试、改错等可以采用上机考试。当然在课程教学的同时,鼓励学生积极参加与该门课程内容相关的全国计算机等级考试(二级C语言),获取证书,并宣布通过二级考试可以代替该课程的学期总成绩,以激发学生们的学习兴趣。这样,学生们为了能为今后就业增加筹码,确定了学习目标。 7结束语 以上是笔者三年来C语言教学中的一点心得体会,在教学过程中应注意的问题还是有很多的,但是关键在于对教学内容(教什么)和教学方法(如何教)的合理组合,是否能调动学生学习的积极性。在具体的教学过程中,只要教师能理解C语言本身的特点,有比较丰富的实践经验,并在教学中采取相应的措施与教学手段,一定能取得理想的教学效果。 参 考 文 献 1 谭浩强. C语言程序设计(第三版). 北京清华大学,2018. 2 方少卿. C语言程序设计. 北京中国铁道,2018. 3 程奎文. C语言教学方法探析J. 科学时代,2018,(12)111-112.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1