《C语言程序设计教学研究与实践探索.doc》由会员分享,可在线阅读,更多相关《C语言程序设计教学研究与实践探索.doc(7页珍藏版)》请在三一文库上搜索。
1、C语言程序设计教学研究与实践探索 摘要:从三本程序设计实践教学出发,在教学中坚持“以学生为主体,教师主导”的原则,通过多种教学方法并用,全方位调动学生参与的积极性,使学生的学习目标不再单纯定位全国计算机等级考试,而是能充分理解和掌握计算机语言学习的方法和规律,从专业发展角度重视计算思维的培养,逐步体验计算原理的相互影响,享受问题有效解决的愉悦。 The Teaching Research and Practice in C Programming LUO Kai-yun, ZHU Cheng-biao, LV Yuan-fang (Furong College of Hunan Univers
2、ity of Arts and Science, Changde 415000, China) Abstract: From the practical teaching of three-base programming design,insisting on the principle of student-centered,teacher-led in the teaching,using various teaching methods together to mobilize comprehensively the enthusiasm of students to particip
3、ate in, making the students aim at understanding and mastering principles and laws of computer language instead of National Computer Rank Examination simply, emphasizing on cultivating the computational thinking from the perspective of professional development,experiencing gradually the interplay of
4、 calculation principles and enjoying the happiness of problems solved effectively. Key words: c language; programming; teaching methods; computational thinking; non-computer speciality 1 概述 “C语言程序设计”作为大学程序设计的入门课程,理论性和实践性要求较高,是一门既难教也难学的公共基础课。C语言所涉及的概念和语法规则较多,面对不断压缩课时的现状,传统的“满堂灌”教学法使学生始终处于被动接受状态,学习积极性
5、和主动性下降,不利于学生分析问题和解决问题能力的培养。如何在C程序设计教学中引导非计算机专业学生克服编程畏惧感,培养计算思维能力,是我们此次针对独立学院非计算机专业C语言教学的改革选题之一。 2 精心设计第一堂课,激发学生的学习兴趣 “C语言程序设计”是大学新生进校后接触的第一门程序设计语言课程,第一堂课上得好不好,直接关系到学生对课程的认可度。我们从五个方面入手: 2.1 从日常小事入手 和学生一起探讨英文字典中查找单词SUM的方法:第一种,依次翻页找到;第二种,采用顺序法,先找到字母S,在范围内依次找U和M;第三种,翻到字典中部,判断当前页字母与S的顺序,并通过反复使用对数级的方式查找、判
6、断,直至找到单词。通过这样的方式让学生了解:程序是解决问题的过程。但计算机技术的重点不全在编程,而是充分利用计算机的运算能力,将各领域所关心的问题转换成许多简单的子问题并进行求解,程序设计是其中的手段。 2.2 让每个人都参与的游戏 和学生一起统计教室人数:第一步,全体起立,每个人都代表“1”;第二步,位置最近的两人将各自的数字相加求和,先报出结果者坐下,另一个则带着结果继续战斗;第三步,重复第二步。如此循环,最后一位得到的结果就是教室的总人数。这个过程不仅渲染课堂气氛,而且在教师的引导下让学生具体感知程序、算法和处理方法。 2.3 展演C语言编写的小游戏 向学生展示并让他们试玩诸如俄罗斯方块
7、、贪食蛇、五子棋等多款C语言编写的游戏程序,并鼓励学生只要愿意,每个人都可以编写小游戏。通过发掘游戏的乐趣,激发学生学习C语言程序设计的热情。 2.4 精典咒语“Hello,C!” 通过对输出“Hello,C!”程序代码的分析,让学生明白C语言程序设计入门并不困难,从而打消他们心中的畏惧,增强学习的自信心。 2.5 总结C的上天下地的超能力 C语言不是“很高级”的语言,但因为限制少,所以可以处理大部分计算机能够处理的对象:比如字符、数字和地址;也不“庞大”较小的篇幅即可描述,表示能力很强,非常高效;C语言简洁的表达式,流行的控制流和数据结构,及丰富的运算符集适合编写各种软件,通用性强,已成为公
8、认的令人愉快的通用程序设计语言。 3 根据学生特点,在教学过程中多种教学方法并用 第一堂课后,我们会针对学生的特点,并参照专业特性,多种教学方法并用,进一步提高学生学习热情及课堂教学质量。 3.1 案例教学法 我们选用教务管理系统中的学生成绩管理部分作为案例,以便让学生在理解项目功能及开发过程中不出现盲点,且有机会提出建议并实现。案例的实现贯穿了整个C语言的教学过程(如表1): 通过这样的方式,改变了传统教学中理论与实践脱节的局面。每一阶段教学中都呈现一段相对完整的程序,前一阶段的结果成为下一阶段教学的基础,下一阶段的工作又对前一阶段的成果进行改进和完善。学生也在知识点的反复使用中不断加深对基
9、础理论的理解,并借助案例和技能训练,逐步学会思考,有效提升问题求解能力、动手能力及团队协作精神。 3.2 问题教学法 由于学生的整体知识架构不稳固,我们创建问题时既要考虑巩固已学知识点,又要尝试通过学生解决问题时在认知上的冲突,来激发他们的学习兴趣,并主动进行探索求解。比如我们在探讨“条件语句表达式”时,创建了如下程序: #include main() int a=0,x=35; printf(条件判断之前x的值为:%dn,x); if (!a) x=3; else x=4; printf(条件判断之后x的值为:%dn,x); 大多学生的答案是:条件判断之前x值为35,之后x值为4。而正确结果
10、是:条件语句之前x值为35,之后x值为3。 答案完全出乎学生的意料。这种“冲击”让学生的学习欲望高涨,他们会主动向教师阐述对已学知识点的理解及得出答案的理由,并请求教师共同分析原因,为教师的知识讲述埋下了绝佳伏笔。学生也在解决问题的过程中,不断巩固知识点、领会计算思维方式并运用所学解决问题,最终完成自我构建知识的过程。 3.3 类比式教学 指针是C语言中的一个重要概念。因为涉及内存的动态分配,加之经常与链表等动态数据结构搭配使用,其强大灵活的数据操纵方式一直让学生望而生畏。通过实际教学,我们发现在讲解存储单元、存储单元地址及存储单元内容等基本概念时运用类比法效果较好学生宿舍恰似一个个存储单元,
11、宿舍号就是存储单元的地址,宿舍里的学生就是存储单元的内容。当我们要找到某位学生时,只要知道他(她)所在的宿舍号即可。相应的,要使用存储单元中的数据就必须知道存储单元的地址,只不过指针地址用了一个变量存放,这个变量即指针变量。通过类比,将抽象的问题具体化,学生在理解指针即地址时更容易。在此基础上,可以进一步对比指针类型和一般数据类型的特性,让学生发现指针操纵简单变量的用处,更好地理解指针如何处理多字节变量等内容。 3.4 启发式教学 教学过程中根据教学任务和学生的实际情况,适当采用启发法,能调动学生的学习积极性和主动性。比如,我们会利用求1+2+3+100的值来讲解程序循环结构。这是一个循环累加问题,每次循环累加一个递增的自然数,经过100次循环后,得到这个数列之和。我们会让学生思考后再表述他们的想法,自然引出课堂的知识点循环和嵌套循环,然后让学生根据知识点,确定循环条件(i