C语言教学中的难点探讨.doc

上传人:3d66 文档编号:1787073 上传时间:2019-01-07 格式:DOC 页数:7 大小:14.84KB
返回 下载 相关 举报
C语言教学中的难点探讨.doc_第1页
第1页 / 共7页
C语言教学中的难点探讨.doc_第2页
第2页 / 共7页
C语言教学中的难点探讨.doc_第3页
第3页 / 共7页
亲,该文档总共7页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C语言教学中的难点探讨.doc》由会员分享,可在线阅读,更多相关《C语言教学中的难点探讨.doc(7页珍藏版)》请在三一文库上搜索。

1、C语言教学中的难点探讨 摘 要:C语言能培养学生的算法(也就是解决问题的步骤)思想、严谨的科学态度和自己动手解决问题的能力,教师怎样在问题“难”和“易”之间抓好突破点,是教学成败的关键。文中就几个重难点问题的教学思路进行了探讨。 计算机作为二十一世纪最重要的工具之一,已经深入到了人们的工作、生活、学习、娱乐等各个领域。掌握计算机应用技术成为了每个人的基本素质,也是今后工作中的一项重要技能。实践证明,在学习人类通用智力工具并掌握有关计算机知识与技能后,能够促进学生的智力开发,为学生的成才打下坚实基础1。计算机应用基础是对学生基本技能如:文件基本操作、文字排版、简单数据处理等的培养,而计算机的编程

2、语言,特别是C语言更多的是培养学生的算法(也就是解决问题的步骤)思想、严谨的科学态度和自己动手解决问题的能力。C比其他的编程语言 (C+, Java)更底层一点,掌握底层编程能使学生从整体上更好的理解和使用电脑。C程序比其它任何不同语言产生的程序都要更小更快。如果你学过C,再学其它任何现代编程语言时,都会如鱼得水,因为所有现代编程语言 (Java, C+, C#等)都是基于C的,很多规范、机制是相通的。因此现在许多学校都将C语言作为公共选修,甚至必修的课程。 1 “难”和“易”的关系 但是由于不同学校的学生层次不同、文理专业不同、本科和专科的不同,在C语言的教学中教师将会面对不专业,不同层次,

3、不同需求,不同基础的学生,教学难度较大。在教学方法上把握不当,将会造成难的问题更难,易的问题却又让学生听得索然无味。怎样把握住C语言教学中的难、易,并因材施教是恒量一位教师教学水平的重要标志。好的教师即能将“难”的问题变“易”,也能将“易”的问题变“难”。这貌似是一个悖论,但这实际上体现了一位教师对学生知识基础、学生的知识盲点、问题难易、知识的前后关联、教学设计等整体把握的能力。当学生面对一个难题,而他们的知识点,能力处于一个相对较低的层次上,怎样攀上这座高峰,教师就需要在中间加入“梯子”问题。“梯子”问题的难度适中,以保证学生能解决“梯子”问题,当学生解决好“梯子”问题后,水平能力有一定提高

4、后,再解决难题就成为了可能。这个由易转难的过程中,“梯子”问题的选取是最关键的一步,它的好坏直接影响到最后难题的解决。当然,教师开始时不提难题,考虑从简单的问题入手,然后一步步引入新的有一定难度的问题,最后多个中等难度的问题合成一个复杂问题。实际上教师的教学完全可以灵活地根据学生的知识层次、学习兴趣、习惯等来决定是由“易”入“难”,还是先提出难题,再分解而成一个个相对较易的问题。先“易”后“难”学生更易接受,先“难”后“易”却能更多地培养学生主动思考、发散思维的能力,更具挑战性。也就是一个“顺推”思维和“逆推”思维培养的过程。 2 “难”和“易”的教学实例 2.1 内层循环次数变化的双层循环

5、在C语言中双层循环是一个难点,特别是内层循环次数在变化时,学生难于理解,难于掌握,这个时候教师给学生一个“梯子”方法,同时要求学生要学会自己搭“梯子”解决问题。如要求学生用双层循环来实现如下“*”的输出(当然可用很多种方法来输出): * * * 学生在分析时,感到茫然无措,不知从何下手。可考虑如下的方法分析(实际就是一个解决问题的“梯子”): 行号: 列号: 1 1 2 1 2 3 1 2 3 总共输出三行,所以告诉学生外层循环很好写,控制循环三轮就好了: for(i=1;i int fac(int n) if(n=1|n=0) return 1; else return n*fac(n-1)

6、; void main() printf(“3!=%dn”,fac(3); 不少教师用下面的示意图1分析: 图1 因为fac 函数调用多次,上图中的分析方法,学生会由于多个局部变量n的定义和值的传递而昏头转向,让学生的理解愈发困难。学生理解困难的关键是几次调用重叠在一起,很难区分每次调用时变量的变化情况。我们在分析时可以用展开分析法来看,如图2(实线表示调用,虚线表示返回)。 图2 分析理解时,将递归函数代码“展开”,这样学生对n变量的定义和赋值情况清清楚楚,递归调用和返回的过程可以轻松掌握并将这样的思想应用到其它的递归问题中,对更复杂的递归,如双层递归打下坚实的基础。 2.3 指针 C语言的

7、另一大难点就是指针。学生对这一部分内容的学习产生的问题是比较多的,但在讲这一部分时,把握好由易到难的度,还是能让学生很好地掌握这个难点的。指针部分开篇非常重要:(1)要讲清楚内存地址的划分方法,内存中每一个字节就像一个寝室一样有房间号,即地址。并且强调在内存确定后,每个字节的地址编码的长度是一样长的,如16位地址进行编号,为学生理解“不同类型的指针变量所占内存长度是固定的”打下坚实基础。(2)简单整型变量的起始地址是16位的(假设内存用16位编址),整型变量本身所占空间是16位的。再引入浮点型变量的起始地址是16位的,浮点型变量所占空间是32位的。再引入双精度浮点数的起始地址也是16位的,双精

8、度浮点数变量本身所占空间是64位的。通过这样的对比,让学生清楚知道指针变量所占的空间大小与所指向的数据类型无关,只与内存固有的结构有关。从而很好地区分指针变量和普通变量的关系。(3)再引入指针变量本身也是一个“容器”,也存在着自己的起始地址,从而引入二级指针的概念。 由于教师在教学中做了很多知识的分解,像这样将难题分解成由易到难的一个一个小知识点,攻克一个难点后,再攻克另一个更难的知识点,学生并不会觉得很难。 3 结束语 在C语言的教学中,有着“难”和“易”的转换关系,实际上任何课程都存在着这样的关系。只要教师在“难”到“易”,或者“易”到“难”之间找到合适的“梯子”问题,那么难题不再是学生学习中的拦路虎,而成了学生攀登知识高峰的一步步台阶。当然,“授人以鱼,不如授人以渔”,教师即要会给学生搭“梯子”,也应该教会学生应该怎样自己搭“梯子”,只有这样,当大学生不再有老师呵护并走上工作岗位时, 也能主动发现问题、分析问题、并独立地解决问题,从而成为一个有益于社会的人。

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

当前位置:首页 > 其他


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