“C语言程序设计”课程教学改革的研究与实践
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
“C语言程序设计”课程教学改革的研究与实践
摘要:本文结合学生的学习心理和认知规律,分析了C语言教学问题的主客观原因,提出了“先过程,后对象”的教学理念,从教材建设、教学内容安排上阐述了教学内容的具体组织实施过程,从教学思路、教学观念、教学手段几方面探讨了教学方法的改革。关键词本文来自:计算机毕业网:C语言;教学方案;教学组织;教学改革
C语言程序设计是一门难学、难懂、难以应用的课程,对学生越来越缺乏吸引力。传统的C语言教材大都存在着内容陈旧、缺乏现代编程思想、过于偏重语法、难度高等缺点,难以提起学习兴趣,学生有畏难情绪。传统的教学观念,强调先打好基础,然后再进行实践、学习技能。教学实践证明,基础和技能的教学可以同步进行,甚至先教技能再教理论,在不断实践中掌握技能,在技能学习中提高基础理论。这样更适合学生的成长。为此,我们以社会对学生编程和软件开发能力的需求为依据,参照人才培养模式和专业课程体系改革,对C语言课程教学进行了探索实践。
1教学方法的改革在C语言程序设计教学中,我们不再局限于单纯介绍C语言基本语法,而是本着面向未来的精神,把C语言作为一种实践工具,以程序设计方法为主线,
以语法和结构为核心,以能力培养和提高学习兴趣为目标,注重理论与实践的结合、先进性与基础性的统一,变应试为应用。 1.1先过程、后对象的教学方法考虑到绝大部分学生今后不会去搞程序开发,所以思维能力的培养是首要的。从这一角度来说,先过程、后对象的方法更符合学生的认知规律。而过程化的程序设计方法和解决问题的思路更切合学生已有的认知结构,甚至可以说就是我们日常分析问题、解决问题思路和步骤的一种计算机的代码化,更易于被学生接受。 1.2采用一体化教学方法,以程序案例为主教学,通过案例讲解语法要点和难点“案例驱动”教学法应用在C语言程序设计教学中,就是讲解语法时不停留在理论讨论上,不是教会这一语法现象是什么,而是通过实例教会学生某一语法现象如何应用。比如,算术运算符中的求余运算和整除运算是比较有特色和应用较多的运算,在讲解这两个运算符的时候,就不能只停留在写两个表达式让学生计算出结果来,而应该结合实例让学生知道这样的语法特色用在什么地方,怎么用。如通过求1到5的倒数和这样一个小例子使学生认识整除运算的特点及在今后级数求和运算中如何避免可能引起的误差;通过一个求两位整数的逆序数的小程序,学生就会明白整除运算和求余运算可以用来将一个整数的各个位数分解出来,待后续循环结构介绍完毕时,又可将问题扩展到求任意位数整数的逆序数;当介绍到函数
的概念时,又可将问题引申到回文数的判别,这样将一个对学生来说很难的算法问题分散到各个部分来处理,不仅降低了算法讲解的难度,也使学生能真切地体会到学习语法知识的必要性。教学始终贯穿一个核心实例——学生成绩管理系统的开发。选择这样一个系统的原因是学生比较熟悉有关成绩的业务和功能,同时开发学生成绩管理系统将涉及到C语言程序设计课程的全部知识点。 1.3教学模式特色集课堂、实验、网络教学于一体,教、学、研有机结合、相互促进,形成了“课内教学+课外俱乐部”、“常规教学+实验教学+网络教学”、“开放实验室+自编教材+教学网站+教辅系统”、“课上现场编程互动+课后作业练习+课下实验练兵+机上考试实战+课外创新实践提高”的立体化教学模式。2教学的组织实施C语言课程的教学目标突出培养学生的编程能力,为实现这一目标,在教学内容上抛弃了过多的语法细节和非通用的或实际用途很少的语言特性,注意强调基础性、实用性、先进性和系统性,兼顾教学和自学两方面的适用性。精简过程化部分的内容、降低其难度、衔接面向对象的方法是关键。主要特点如下:(1)以结构化程序设计为重点,面向对象的概念和编程思想为扩展,MFC编程基础为补充,体现了先进性和系统性的统一。(2)淡化语法,对语法难点通过实例具体而分散地介绍,舍弃不实用和过于复杂的内容,如位运算、共用体、
多继承等概念,体现了基础性和实用性的统一。(3)在内容上降低难度,淡化了过于繁杂的指针概念,简化了字符串的处理方法,体现了基础性和先进性的统一。(4)将面向对象的一些概念有机地渗透到过程化的内容中,如引用、函数重载、默认参数,这样避免了在面向对象部分集中介绍过多的概念而使学生产生畏难心理。(5)强调算法的分析训练,有利于在学时紧张的情况下学生通过自学提高分析问题、解决问题的能力。3教学内容安排
结构化的程序设计是本课程教学的基础和重点。结构化程序设计强调按照一定的结构形式来设计和编写程序,不仅可以让学生养成良好的程序设计习惯,而且可以有效地培养学生思维的条理性和逻辑性,这正是程序设计课程的主要教学目的所在。面向对象的程序设计也是以结构化为基础,这充分表明了结构化程序设计的基础地位。这部分内容在讲解上强调算法分析、淡化语法细节,语法内容是程序实现的手段和工具,而不是学习程序设计的目标。通过类和对象的介绍使学生了解面向对象方法的实质是强制通过函数来对数据进行操作,从而保证数据操作的安全性,这就是数据隐藏和封装的思想;通过介绍派生类的继承关系,使学生深刻认识面向对象方法对代码重用的支持;而介绍多态性的关键在于让学生了解基于虚函数的多态性的实质是允许将派生类的对象当作基类的对象使用,因而不必为每一个派生类编写
功能调用,从而实现接口的复用。这部分内容强调从实用出发,着重介绍基本的、主要的概念。而对从纯理论研究着眼的一些概念,如继承关系中的私有继承以及多继承中的诸多概念等,对于初学者来说过于复杂,要么不做展开讨论,要么就干脆舍弃。从结构化程序设计到面向对象的方法过渡时,要解决学生思维方式的转换和衔接的问题。由于思维惯性,学生会将面向对象方法和结构化方法的比较贯穿于所设计的程序中。授课时要从学生的认识规律出发,不必急于空泛地强调面向对象方法的好处,要让学生清楚面向对象的程序设计和结构化程序设计一样,只是一种程序设计方法,它是为解决程序复杂性而产生的。就解决简单问题而言,并非一定要采取面向对象的方法,也并非面向对象方法一定比结构化方法更好。结构化程序设计是从一个个具体的局部入手,描述问题的解决过程;而面向对象的方法是从全局的角度抽象出问题所涉及对象的整体框架,再来描述各层次、各部分的内在联系。方法虽然因着眼点不同而不同,但面向对象的方法仍然是以结构化程序设计方法作为其代码基础的。这样学生既了解了它们之间的区别,又认识到了其间的联系。4考核体系课程考核评价方面,建立了全新的考核评价体系,注重过程考核、编程实践能力考核,改革后的课程评价考核体系主要体现了考核形式多样化、考核标准合理化以及考核试卷个性化三大特征。5实