|
||
|
||
| 程序设计语言是计算机专业的一门重要专业基础课,因此必须重视这门课程的教学效果。迄今程序设计语言课程的教学主要还是以教师讲,学生听,教师写,学生记的传统教学方法进行的,改革教学方法和利用现代化手段进行教学,提高教学效率,变学生被动学习为主动学习,已是一项非常迫切的工作。 一、教学方法 教学方法是为了实现既定的教学任务,师生共同活动的方式、手段、办法的总称。 (一)传统教学法 传统教学法以教师为中心,更多的只是注重教的过程,而忽略了学生学的过程。尽管课堂上也有教师的提问,但面授仍占满了有限的课时。因此传统教学方法缺乏直观性、生动性,容易形成忽视学生的接受程度而“满堂灌”的局面,教学效果并不是很理想。 (二)交互式教学法 交互式教学法最早由Palincsar于1982年提出。区别于传统教学法的以教师为中心,交互式教学法以学生为中心组织教学的各个环节,让学生参与教学活动的全过程,真正成为教学活动的主体,同时发挥教师在教学中的主导作用,真正实现教师与学生、学生与学生的双向交流和互动。 二、程序设计语言课程 (一)教学目标 程序设计语言课程的教学目标为:通过该课程的教学,使学生了解语言本身的一些基本概念和语法规则,让学生掌握有关程序设计的一般方法、思路,培养学生的程序设计及软件开发能力,为计算机后续课程的学习打下坚实的基础。 (二)课程特点 c++是一门高效实用的程序设计语言,它既可进行过程化程序设计,也可以进行面向对象程序设计。c++强调对高级抽象的支持,实现了类的封装、数据隐藏、继承及多态,使得其代码容易维护及高度可重用。c++从c进化而来,是c语言的超集,在程序结构的本质上与c是一致的,都是用函数驱动机制实现。 笔者在教学中使用的教材是钱能编著的《c++程序设计教程》(清华大学出版社,1999)。该教材分为两部分,一部分是c++过程化语言基础,主要介绍c++程序设计、程序结构和过程化基础,难点在于算法设计。第二部分是面向对象程序设计,讲述了面向对象程序设计的方法。面向对象程序设计(OOP)是一门新的程序设计方法学,应该让学生在掌握了面向对象技术基本内容之后,重点掌握c++中面向对象的重要特征:类和对象、继承和派生类、多态性和虚函数等内容。 (三)教学特点 c++语言的内容繁多,在有限的课时内不可能也不必要面面俱到,所以必须突出重点,突出实用性,主要教导学生能正确运用c++语言编写程序,一些细节具体的规则和进一步的知识可以让学生在今后的应用中查阅有关的书籍。 三、交互式教学法在c++课程中的实践 笔者通过这几年c++程序设计语言的教学,对怎样利用交互式教学法提高程序设计语言课程的教学效果浅谈一下自己的体会。 (一)利用多媒体手段 多媒体技术在教学上的应用是教育现代化的需要和趋势。由于课件是课前已制作好的,所以可以省去了不少板书时间,可以在很短的时间内给学生许多与教学内容相关的周边知识,拓宽学生的知识面,加深对所学知识的理解,也是交互式教学法在有限的课时中实施的前提。例如在函数调用机制的讲解中,可以引入数据结构中的栈的相关知识,为以后数据结构的学习埋下伏笔。而且,多媒体可以通过精彩的画面,生动形象的动画,优美的音乐等以提高学生的学习兴趣。程序设计语言本身是一门实践性比较强的课程,利用多媒体手段还可以在授课的过程中插入一些程序的编译演示,可以利用编译器的单步执行等手段让学生对程序的运行一目了然。当然了,多媒体课件的制作并不是越细越好,内容过于全面容易导致教师上课时只按课件讲授,教学效果反而不好。例如在讲解结构体的定义时,课本上列出了三种定义形式,但还可以进一步细分为六种,在制作课件时没有必要六种都列出,可以在课堂上引导学生思考,导出六种定义形式。 (二)课堂自学,教师提问 在课堂上规定好学生的自学内容,然后由教师以提问的形式抽查自学情况。这种方式适用于学习文字叙述性内容或识记内容。例如在讲解变量、常量时,可以让学生自学十分钟,然后教师针对课本的内容设置一些初学者容易犯的错误,让学生指出对错以及错误的原因,这样比教师直接讲解更能加深学生的印象,从容避免以后在编程中犯类似的错误。也可以找一些比较典型的源程序让学生自学,然后就程序的执行顺序和运行结果提问来加强课本知识的理解。 (三)分组讨论,总结发言 分组讨论适用于学习那些与前面课程有紧密联系的内容。这种形式使每个学生踊跃把自己的问题提出来,通过团队的力量加以解决,这样更能让学生真正感受到团队力量在软件开发中的重要作用。不论是组内还是组间的讨论,都可以让学生对本课程内容和相关课程内容有进一步的深入了解。在实际教学中可以结合书上的例子、作业、或相关命题展开讨论,讨论结束后教师作一些总结和点评。例如在讲解用引用返回值时,书上列出了四种情况,可以据此把学生分成四组,每组讨论一种情况,然后别组的同学提问。通过这种形式鼓励学生参与,增强课堂气氛,提高学生的积极性。也可以通过这种形式的教学,引导学生阅读大量的优秀程序,从中学习别的程序员的丰富经验。 (四)设置命题、作业 这种方式可以很好地引导学生利用高校图书馆的丰富资源,培养他们的解决问题的能力。教师在设置命题、作业时应注意要与教材内容联系,要有一定的理论深度,能够联系实际,难度适中,目的是提高学生继续学习的能力和主动性。学生在学习c++课程的同时会学习高等数学、英语、线性代数等课程,那么教师就可以设置一些和以上课程相关的命题、作业,让学生切实感觉到程序设计的实用性。例如设置一些编程求级数,用牛顿法解方程,编程找出数组或字符串中的单词个数,编程求矩阵倒置、相加和相乘等。 (五)加强实验 程序设计语言课程是一门实践性较强的课程,所以一定要加强实验的环节。第一次上实验课可以时先让学生熟悉c++程序的集成开发器,如Borland c++Builder 4.0或Visual c++6.0,然后对书上的一些简单例子进行上机验证,从中掌握好c++程序的整个开发流程。在讲授理论课时也可以对某些例题、作业设一些悬念,引导学生上机验证程序结果,以此提高学生的兴趣。等学生有了一定的基础后,例如在讲解教材的第二部分时,就不再允许学生带书进机房,而强调实验课前的复习和上机报告的编写。只有让学生真正的调试自己编写的程序,才能提高学生的程序调试改错能力和了解到学生对所学内容的掌握程度。教师也要及时收集学生的错误信息,设置一些普遍学生都容易犯的改错题进行课堂讨论或统一进行课堂纠正演示。 在课程的后期,可以引导学生阅读一些较大的优秀程序,了解程序的开发方法,从而设置一些综合的实验命题。笔者在实践中让学生独立完成一个图书馆管理系统,在这个系统中,较好的运用了面向对象的类、继承等知识,效果还是不错的。 四、小 结 虽然教学上提倡“教无定法”,但通过笔者这几年的教学实践证明交互式教学法在程序设计语言的教学中效果不错。希望通过教师间的互相交流,不断探讨,切实提高程序设计语言课程的教学质量! 【参考文献】 |
||