面向对象程序设计课程中自主学习模式的研究与探讨

时间:2022-10-12 07:51:52

面向对象程序设计课程中自主学习模式的研究与探讨

摘要:本文阐述了面向对象程序设计课程的重要地位,并就如何培养学生的自主学习模式,帮助学生真正掌握面向对象的软件开发技术提出了一些创新的想法。

关键词:面向对象;自主学习;教学改革;程序设计

中图分类号:G642 文献标识码:B

1引言

采用传统的面向过程的程序设计方法开发的软件通常可读性较差,系统的可扩充性不高,尤其是后期维护非常困难。而面向对象程序设计具有抽象、封装、继承和多态性等特征,以此技术开发的软件模块化程度高,可读性、可扩充性、可维护性和可重用性都得到极大地改善,代码结构更为合理,可以直接在程序中映射问题空间的结构。所以面向对象程序设计是一门非常重要的计算机专业必修课程,它是为满足计算机应用领域对计算机应用人才的需要而设置的。面向对象程序设计已经在各个领域得到了广泛的应用,尤其适用于中等和大型的程序开发项目。例如,大量事实已经证明,C++能应用于C语言曾经使用过的所有场合,其效果比C语言要好得多,从开发时间、开发费用到形成的软件的可重用性、可扩充性、可维护性和可靠性等方面,都显示出了面向对象程序设计的优越性。通过学习面向对象程序设计课程,学生不仅掌握面向对象程序设计语言的基本词法、语法规则,还可以更深入地学习面向对象的软件开发技术,培养开发大型面向对象系统的能力、系统分析的能力和项目管理的能力。

但是,学生的语言类课程往往首先学习的是面向过程的C语言,当学生接着学习面向对象的C++语言时,虽然能比较轻松地掌握一些面向对象的基本概念以及简单的程序编写方法,但在开发较大的系统时,却容易受C语言的影响,往往还是从非面向对象的角度去分析、设计并实现系统。因此,面向对象程序设计课程的教学效果不甚理想,让学生感觉学了等于没学,这对于学生今后的工作与进一步的学习是不利的。

如何才能使学生吸收并创造性地运用面向对象的程序设计思想,开发真正的面向对象系统?如何培养学生的

自主学习模式,变被动学习为主动参与?如何在教学过程中充分发挥学生的主动性,体现学生的创新精神?这些几乎都是讲授面向对象程序设计课程的教师普遍面临的共同问题。笔者结合自己多年语言类课程的教学实践,尤其是面向对象程序设计课程,以及其他专家的优秀经验,认为面向对象程序设计课程的教学改革应重点培养学生的自主学习模式。所谓自主学习是一种建立在建构主义学习理论指导下的教学设计方法。这种理论强调学习是教师指导下的,以学生学习为中心的学习,知识是通过学生的主动意义建构而不是通过教师向学生传播信息来获得的,教师只对学生的意义建构过程起促进和帮助的作用[1]。

2自主学习模式的培养

教师讲、学生听,教师不讲、学生不懂的传统的灌输式的教学方式已经无法满足课程教学要求,自主学习模式培养的关键在于培养学生树立依靠自己学习的信念,不断探索适合自己的学习方法,充分利用已有的知识基础和实际工作经验,最大限度地发挥自己的潜能,这主要通过在课堂教学、上机实践、辅助教学等各个教学环节进行改革得到实现。

2.1改革课堂教学方法

传统单一的课堂教学手段已经不能满足学生团队合作与个性化学习的需要,教师应积极改革课堂教学方法,注重采用启发式教学,讨论式教学,项目驱动式教学等多种教学形式,通过丰富灵活的教学模式以及直观生动的教学课件使教师和学生充分互动起来。教学内容应面向应用,不能单纯地只讲授面向对象理论,应重点突出面向对象的软件开发方法,并在课堂教学中适当穿插介绍实用的软件开发工具,例如Visual C++。利用多媒体课件使抽象

内容可视化,枯燥内容形象化和兴趣化,例如,使用多媒体课件演示复杂程序的详细执行过程或多重函数的调用过程。另外,教师还可以鼓励学生参与制作、修改和完善教学课件。采用这种方式,不但使学生对抽象概念的理解变得容易,一些复杂的调用一目了然,而且极大地调动和激发了学生参与学习、主动学习、相互学习的意识和热情。这些与教材配套的多媒体课件,不仅在课堂上演示,在开学初就交给学生,有助于学生进行自学和复习,以加深对所学知识的理解。

学科教育强调能力培养和素质培养,教学活动是师生双方共同的研究活动。如今随着开放源代码运动的开展,我们可以轻易地找到各种优秀的面向对象系统,获得它们的源代码。因此在教学中可以采用实例教学,把学生分成若干组,由各组学生分别来分析讲述他们所找到的各类真正实用的面向对象系统,介绍其中所采用的面向对象程序设计思想及设计技巧。鉴于时间问题,学生可以选择某一个专题进行介绍和讨论,例如一个小组负责介绍类和对象的使用,一个小组负责介绍用面向对象方法建立概念模型,另一个小组负责介绍通过继承实现代码重用等。学生先学会阅读理解程序,再试着模仿编写,从小程序到大系统,一步一步地循序渐进,最终将对面向对象编程有一个完整的整体认识,并初步掌握实用程序的编制方法以及大程序的设计方法,为课程设计打下基础。教师在一旁辅助指导,收集学生遇到的共性问题,集中讲解。这样学生不再是被动的学习者,而是教学活动的参与者与实践者,是学习的真正主人。在教学中,教师最好从学生的观点来指导学生,没有必要在课堂上讲清楚每一个问题,而是应该帮助学生学会如何自主地学习,鼓励学生自己学习课堂上没有讲过的内容,让他们自己找到那些使他们困惑的问题答案。其实学生潜移默化学到的东西要比教师课堂上教给他们的多得多,而且对于自己潜移默化学到的知识更容易吸收[2]。

2.2调整实践环节内容

程序设计是一门实践性很强的课程,学生的实际编程能力是非常重要的培养目标,加大实践环节的比重,调整实践环节的内容,有助于培养学生独立解决问题的能力,以及加深对概念的理解和编程能力的训练。面向对象程序设计不仅仅作为一种语言,更作为一种方法论贯穿于软件设计的各个阶段。该专业课理论和实践紧密结合,理论知识抽象,实践方面要以多门专业基础课、专业课为基础,因此普遍被认为是较难掌握的程序开发语言。而且教师在教学过程中通常容易偏重于理论的介绍,忽视实践环节,因此学生对于面向对象程序设计的理解多半只停留在书本概念上,很难真正掌握抽象编程的本质。

一个完整的面向对象系统通常是由多个完成不同功能的子程序组成的,通常学生能够基本实现各个子程序的功能,但对如何衔接各个子程序,如何组成一个完整的面向对象系统感到困难,缺乏总体认识。基于此,面向对象程序设计课程的实践性环节应该是开放式的,在掌握系统总体构成和基本概念、基本方法的基础上开展实验,系统训练学生思考问题和解决实际问题的能力。实践环节的重点是使学生在透彻理解面向对象思想的基础上,能有多种机会在不同的情境下应用所学知识,在学习的同时积累编程经验,在解决问题的活动中学会解决问题,在实际的锻炼中掌握面向对象技术,能够进行简单的面向对象系统的设计,并进一步培养学生开发大型软件的能力,积累项目管理的经验,为今后从事大型软件开发及管理奠定基础。

只是读别人的程序是难以真正掌握面向对象技术的,那完全是纸上谈兵,即使花上许多的时间反反复复地读上很多遍,也难以真正深入地理解它掌握它。相反,如果自己亲自动手编写一个面向对象系统,即使只是一个小规模的系统,却往往能达到事半功倍的效果。许多实践知识的获得都是上机操作的结果,上机操作反过来又巩固和促进书本知识的学习。因此可以将学生分成若干个团队,随着课程学习进度,结合正讲授的面向对象概念和技术,从简单到复杂,循序渐进地进行设计,最终实现一个较大的完整实用的面向对象系统。教师要适时严格地进行监督检查,帮助学生发现错误,并在课堂上对实验中存在的典型问题进行点评,推荐学生中有创意的编程,鼓励学生的创新精神。教师还要注意各小组内学生的分工情况,保证力量均等,每个小组成员要有强有弱,不能一组全是精英,一组水平全都很差。

上一篇:讲者思路清晰 听者情绪饱满 下一篇:大学计算机基础教学经验谈