美章网 资料文库 面向对象程序设计教学范文

面向对象程序设计教学范文

面向对象程序设计教学

作为一名主要担任面向对象程序设计课程教学与研究的高校教师,在多年的教学实践中,我发现要组织一堂富有意义的课堂教学,在强调课程功能上,要从单纯注重知识的传授转变为体现引导学生学会学习、学会做人、学会生存;在强调教学过程中,要从更多的关注学习结果转变为也要关注学生学习的过程和方法。

根据这个原则,我在组织有关面向对象程序设计的课堂教学过程中,在了解该课程的特点及培养目标的同时,充分考虑了学生的知识背景和接受水平并结合社会行业对软件人才知识结构的要求去精心设计好每一堂课。在反复的教学过程中,我根据授课经验所学来的事物(它让我可以长时间快乐教学),形成自身的教学特色,总结出一套教学方法,并取得了良好的教学效果。

一、采用实例教学法,使学生在模仿中掌握对抽象概念的感观认识

面向对象程序设计是应用性很强的一门课程,它既有理论又有实践,既讲方法又讲动手能力。往往在面向对象程序设计的教材中前几章多数都是先介绍对象、对象的属性、方法和事件及程序设计语言基础等等一系列的在程序设计中比较抽象难懂的概念,然后才介绍程序的建立和运行。从知识的逻辑结构体系考虑,这样安排无可非议,但从学生的认知规律考虑,学生在毫无知识背景的前提下,要完全理解这些概念比较困难,同时也容易挫伤学生学习编程的积极性,教学效果可想而知了。因此在教学中,我打破课本原有以知识的逻辑结构体系为顺序组织课堂教学的方式,改用从现场操作简单的实例入手,通过让学生观看、模仿,在实际操作中去探究和领悟这些概念,并适时地加以归纳总结,让学生在轻松愉快的气氛中接受新知识。

例如,在一开始学习对象及对象的属性、方法和事件的有关概念时,我设计了一个点击按钮显示“hello,World!”信息的简单程序实例,让学生和我一起做:

(1)在当前窗体内添加了一个标签和一个命令按钮。

(2)按照给出的要求设计各对象的属性。

(3)在对应事件过程内编写相应的代码。

(4)保存并运行程序。

在操作的过程当中,教师不用讲解每件事的含义,通过完成任务后,教师通过设问,让学生思考:什么是对象及对象的属性、方法和事件?并让学生找出本例中各对象的名称、不同对象的属性、方法和事件过程名称,教师再适当加以归纳和小结。在此基础上,再引导学生归纳总结出创建应用程序的基本步骤,及如何在界面内添加对象、设置事件等等,一切问题都迎刃而解。实例教学法打破了以教材为中心的传统教学模式,不按教材的顺序授课,而是以精选出的程序实例为中心,把学习的重点放在具体实例的讲述上,把要学习的语法和概念融入到具体实例中来讲解。要特别注意,示例必须尽可能简短、单纯,这么一来也许会在某种程度上远离了真实世界的问题处理方式。尽管如此,我发现,对初学者而言,详尽理解每个示例所带来的愉悦胜过于了解它所能解决的问题范围。整个教学过程中强调学以致用,在应用中学习,从而避免了枯燥、繁杂的理论说教,不仅能增进学生的学习积极性,而且对提高学生综合分析和解决实际问题的能力也大有帮助。

二、采用问题驱动法,激发学生的学习主动性和积极性

在面向对象程序设计课程中,有一些概念之间的差别和程序的设计步骤如果只通过教师讲述,学生在字面上可以接受,但在理解深度上往往难以达到令人满意的效果,如果能设计出一系列问题,让学生在实践和解决问题的过程中自己去探究和体验,情况将完全是另一个样子。比如,变量和常量在程序设计中的使用。我首先安排提问:在日常生活当中,请大家说出有什么事物是经常发生变化的,又有什么事物是永远不会发生变化的呢?对后一个问题,往往多数同学会心存怀疑,甚至回答不上来。然后我再安排一个问题来引导:圆周率π的值约等于3.14159,请问,圆周率π的值会不会发生变化呢?也许有学生会质疑:“老师,哪天万一发现算错了,它并不一定等于3.14159而要改过来时,这岂不是也成了可变的?”此时再适当的进行总结:“不管结果如何,圆周率π的值永远只有正确的一个,而且是不会变的。在日常生活当中的这些变与不变,在程序设计中,我们往往采用变量和常量来描述。”至此,既成功引入对这两个概念的学习,又加深了同学们对这些概念的理解。另外,采用一些有趣的问题来引入对某些语句结构的学习同样有相同的作用。比如,在学习循环语句前,提问:如果对一张普通的纸张进行不断的对折,请问,对折了多少次后,纸张的厚度就能达到珠穆朗玛峰的高度呢?同学们纷纷说出自己的答案,其实对于普通纸张来说(纸张的厚度往往是0.1毫米),这时真正的答案是只需要对折27次就可以实现题目要求。答案的结果往往令多数学生觉得有些不可思议,这时再引入对循环语句的学习,并通过实例来解决该问题,由于同学们的兴趣提上来了,所以在讲解该语法结构时,很轻易的地就使得学生掌握了该语法并留下了很深的印象。再比如,在学习循环的嵌套时,我采用了《算经》里有名的“百鸡问题”来引导学生学习,通过能够吸引学生兴趣的程序代码进行教学,同样取得了良好的教学效果。采用问题驱动法,一切都要求学生自己动手动脑设计,他们在操作过程中探究和解决问题的积极性和主动性得到了调动,从而达到了我们的教学目标。

三、采用焦点教学法,使学生迅速掌握知识要点并达到学以致用

一次呈现一个阶段的课题,并使得每一节课的内容有足够的焦点,让学生在移至下一课题前,轻松消化每个知识。在教学过程中,我只给学生那些我认为对学生了解此程序设计十分重要的内容,而非将所有涉及的一切都倒给学生。某些课题对学生学习程序设计来说并没有太多的必要,这些信息往往只会混淆他们的观念,并加深他们对程序设计的复杂感受而已。举个C语言的例子好了,如果你能清楚记得运算符优先序,撰写出精巧的程序代码想必轻而易举。但这么做却有可能造成学生的困惑。所以,忘了运算符优先顺序吧!在任何可能混淆的地方使用圆括号不就得了。另外,实践证明焦点教学法能缩短授课和练习之间的空档,让学生始终踏在扎实的基础上,通过对各课题的充分了解,面对更困难的作业和书籍。这么做不仅为了让学生的心态更为主动,融入“自己动手做”的学习气氛,而且让学生更具有成就感。

四、采用举一反三教学法,培养学生的创新思维和促进学生综合编程能力的提高

在教学过程中,注意通过在书本原有程序的基础上逐渐改变和增加条件的方法来提高同学的综合编程能力。例如某例题是使用了do…while循环来解决,则可以要求学生改为使用do…until来解决;某例题教给大家求最大公约数的方法,则要求同学们课后思考求最小公倍数的方法;故意给出一些错误的程序,给同学们设计一些陷阱,让同学们自己去发现并把程序编写错了的地方改正过来等等。要注意的是,必须谨慎安排课题的呈现顺序,让学生不至于突兀地碰触到任何未曾见过的内容,万一在某些情形下无法达到此理想,必须进行简要的引导。举一反三的教学方法,能引导学生在学习编程的过程中养成运用动态思维来解决问题,对培养学生的逻辑思维能力、抽象思维能力以及促进学生综合编程能力有非常重要的作用。

五、采用多媒体辅助教学法,通过丰富多彩的教学方式提高学生的学习兴趣

传统的教学方法是“黑板+粉笔”。多媒体辅助教学法的优点是:节约了板书时间,加大信息量,开阔知识面。并能挖掘出课本文字达不到的直观、动态效果,使难以理解的抽象理论形象化、生动化,将学生带入模拟场景,达到提高教学效率、增强学生学习兴趣的目的。

面向对象程序设计教学中涉及到大量的算法和结构流程的描述,为此,我充分发挥自身的专业优势,运用多媒体辅助教学手段,通过计算机图形显示、动画模拟及文字说明等,营造一个全新的图文并茂、生动直观的教学环境,从而大大增加了教学信息量,提高了学习效率,有效地刺激和培养了学生的形象思维。对一些重要的结构流程和算法,如分支结构的执行原理、循环结构执行原理等,我制作了专门的教学课件,通过实例动态演示和模拟程序的执行过程,并让学生在课堂上进行自主探究式的学习,从而加深了学生对抽象原理的理解及方法的运用。与此同时,让学生在接受理论知识的过程中还能体会到现代化信息技术的魅力,达到了传统教学无法实现的教学效果。

总之,教学有法,教无定法,只要教学得法。实践证明,在教学过程中,学生知识的获得、能力的培养、智力的发展,不可能只依靠一种教学方法,必须把多种教学方法合理地结合起来,并根据教学过程的实际情况,灵活地、创造性地掌握教学过程,以争取获得最大的教学效果。面向对象程序设计课程教学的主要目标是为了使学生了解现代程序设计理论中的面向对象编程和结构化程序设计等基本思想,培养现代程序设计过程中所需要的一些基本能力,如逻辑推理能力和抽象思维能力等,养成尽可能严密、合理和逻辑地思考和解决问题的习惯。围绕着这个目标,在充分发挥学生学习积极性的前提下,按照学生的认知规律组织教学,一切可行的教学方法都可以在我们的教学过程中加以运用。