摘要:《面向对象程序设计》这门课程理论性与实践性较强,学生要循序渐进地理解教材内容,逐步掌握各个知识点;教师要分过程、分阶段引导学生学习,包括学习过程的辅导、教学过程的控制、复习考试的策略等。实践证明,这样的教学模式有独到之处,对本课程的教学效果有明显的提升。
关键词:面向对象程序设计;教学模式;实践
《面向对象程序设计》是开放教育计算机科学与技术专业(本科)的一门必修课程,按照教学计划安排在第一学期开课。学生在学习这门课程之前,必须掌握一些前导的专业知识,如c语言、程序设计基础、软件工程等,同时,这门课程也是计算机本科其他专业课,如数据结构、操作系统及计算机网络等课程的先修课程,所以,在整个教学体系中,该门课程占据非常重要的地位。
开放教育计算机本科的学生都是专科升本科的,有部分学生专科阶段读的并非计算机专业,这部分学生都没有学过《面向对象程序设计》这门课程的前导基础课,如c语言、程序设计基础等,这就给该课程教学带来了相当大的难度。
“面向对象程序设计”的思想是当前一种全新的程序设计理念。它具有传统结构化程序设计思想不能比拟的优点。
面向对象程序设计思想的基本概念
对象对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。
类具有相同或相似性质的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说,类的实例是对象。wwW.133229.COm类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。类具有可操作性,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。
消息和方法 对象之间进行通信的结构叫做消息。在对象的操作中,当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的信息。发送一条消息至少要包括说明接受消息的对象名、发送给该对象的消息名(即对象名、方法名)。一般还要对参数加以说明,参数可以是认识该消息的对象所知道的变量名,或者是所有对象都知道的全局变量名。类中操作的实现过程叫方法,一个方法有方法名、参数、方法体。
面向对象设计的核心思想
面向对象的核心就是类的继承,可让类的代码以非常方便的方式的重使用。有时候,为设计合理的面向对象的编程,都是围绕继承来进行设计的,这里面最为重要的就是方法的继承,于是有了.net中的许多关键字,如virtual,override,new,abstract等。
设计的过程其实就是对现实世界事物建立合理的关系,使得处于这些事物中的人(用户)可以合理、简单、高效地工作。所以我觉得最重要的就是处理事物和关系,面向过程的核心是功能调用,这并不能很好地应对现实的变化需求,而面向对象的建模真正体现了现实世界的这种特征。
任何事物都有共性与个性,并且不是孤立的。分类后找出共性就是类和接口的模型。关系自然就是类之间的通信。所以说,面向对象是把自然界的物体和概念直接映射到程序界的一种比较优雅的手段。
面向对象就是把数据及对数据的操作方法放在一起,作为一个相互依存的整体——对象。对同类对象抽象出其共性,形成类。类中的大多数数据,只能用本类的方法进行处理。类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信。这就是面向对象的大概思想。
通过以上内容的介绍,我们不难发现《面向对象程序设计》这门课程理论性与实践性很强,学生要循序渐进地理解书本内容,逐步掌握各个知识点,教师要分过程、分阶段引导学生学习,主要抓好以下几个步骤。
(一)课程导学
课程一体化导学 开学初的面授课,针对学生对课程缺乏了解的情况,教师应对学生进行该课程的性质、学习目的和任务、学习重点内容和要求、多种媒体资源的配置情况、教学活动整体安排等内容的教育和指导。讲解课程使用的软件工具和安装、使用方法,要求学生学会在自己的机器上安装和使用。另外,辅导教师要进行网上资源建设与整合、面授辅导、指导小组协作学习、实践教学、网上教学、作业批改讲评、课程教研、课程教学质量与效果分析及维持正常的教学秩序等。指明每章的重点、难点,给出导学提纲:明确应该理解哪些基本概念,熟记哪些语法结构,会编写哪些程序,学员自学中有疑点,可以带着问题利用录像、网上资源学习,也可以在辅导课中解决或进行网络、电话答疑。其实辅导教师不仅仅是导观念、导课程内容,更要导技能、导方法。
课程章节导学 在教学过程中,课程辅导教师应针对某一门课程中某一章节对学生进行预习指导。让学生了解本章的基本概念、基本知识、基本技能和重点、难点以及教学要求的层次、网上资源的地址等。
课程考核导学 课程辅导教师对本课程形成性考核、自评自测、期中考试、期末考试等进行指导并提出要求。
(二)自主学习
自主学习是远程教育教学过程中主要的学习阶段,是在完整的学习支持服务体系下的主动学习。但由于学生学习的基础和自主性参差不齐,学习过程中会遇到的问题各异,所以,需要教师进行“助学”,这就要求教师既要注意学生的整体水平,又要照顾个体差异,体现个性化助学服务,提高学生学习效率,保证学习质量。具体的实施方式如下。
个体自主学习 学生根据自己的个别化学习计划,结合相应的教学资源和教学支持服务体系,实现个体自主学习。在自主学习过程中,辅导教师提供的学习过程设计及相应的资源使用建议均只起参考作用,在总体完成学习任务的前提下,学生可以依据自身知识结构、学习偏好和学习时间,自主选择学习进程和学习资源。《面向对象程序设计》课程第九、十、十二章的内容都可以纳入学生自主学习,教师只需要对这些章节内容简单讲解,学生就可以根据网上视频资源和电子教案自主学习。
协作学习 协作学习有两种类型,一种是学生自行开展的小组协作学习,一种是教师直接组织的主题性小组活动。开放教育教学实质是一种基于网络的教学,需要做到现实与虚拟两个课堂相结合,充分利用适应个别化需求的虚拟课堂开展交互教学,是提高开放教育教学质量的有效途径。为此,教师应从引导入手,认真组织学员开展网上交互教学活动。以网络为媒介组成网上学习小组,消除学员协作学习中交通和场所的制约;小组长事先在qq群上发布小组学习活动的安排,确定时间与交流主题,然后,各成员准时上网进行协作学习。通过小组协作学习不仅能解决学习中的问题,强化学习效果,而且能相互交流学习体会和经验,提高自主学习能力。成人学习特别是网络学习往往是“孤独”的学习,而协作学习可以克服这一不足,有利于发展学生个体的思维能力、增强学生个体之间的沟通能力以及对学生个体之间差异的包容能力。
(三)重点与难点讲解
《面向对象程序设计》课程整个教学量是非常大的,整个教材实际上由三个部分组成:c++过程化语言基本概念和方法(第一章到第六章);基本数据结构(第七章、第八章);面向对象的概念、方法和技巧(第九章到第十四章)。因此,对于教师来说,进行教学内容改革首先必须仔细分析这门课程各章节的特点、全书重点章节、考试考点范围、平台已有资源情况等等内容,从而能在不影响专业计划培养要求及考试前提下,对全书教学内容进行分解,部分内容弱化,部分内容重点讲,需要说明的是弱化不等于不讲,而是选择重点、难点内容进行讲解,只是一个讲解点密度问题。对于c++过程化语言的基本概念和方法部分,由于其本身难度小,并且有完整的直播课堂资源,所以,这部分的内容就可以弱化介绍,将第一章c++编程基础、第二章基本c++程序结构、第三章数据类型、第四章程序流程控制以及第六章简单程序设计的主要学习任务与内容留给学生自主学习。这部分内容教师只需要告诉学生每章节的重点是什么,难点是什么。
可以准备几个简单实用的经典案例,通过vc++环境实际运行给学生看。让他们觉得c++程序用有实用价值,并且也不复杂。然后,详细介绍vc++的开发环境使用的几个关键步骤,包括项目建立、关闭、打开、程序调试(错误定位及常见的错误提示信息)。这个环节应该走在课程教学的前面,这样学生在边看教材、边看直播录像的自主学习中遇到的很多感兴趣或困惑的内容,都可以放到vc++下去测试,这既能有效地帮助他们克服自学中的问题,又能帮助他们锻炼动手能力。