大学代写论文网专业提供代写毕业论文、代写本科论文服务
您现在的位置:首页 > 计算机论文 > 软件工程论文 >
类比教学法在程序设计教学中的实施
发布时间:2019-10-15
摘要

  0 引 言

  面向对象程序设计课程是电子工程学院计算机及相关专业的一门基础课程,这门课程对于培养学员的编程能力,提高利用计算机解决现实问题的能力具有很大帮助[1].同时,这门课程是后续很多重要的专业课程如数据库、操作系统等的基础,是学员毕业后顺利走上技术性工作岗位的重要基础,因此,学好这门课程对于计算机及相关专业的学员具有重要意义,教员必须精心设计教学方案,力争取得较好的教学效果。

  1 课程教学面临的主要问题

  (1)面向对象程序设计课程一般安排本科学员在大一开课。该阶段学员所学专业课较少,主要是高等数学、英语、物理等课程,学员较少有使用计算机语言描述现实问题的概念和经历,例如在数学和物理的学习过程中,解方程的时候根本无需关心变量要用几个字节表示。这就导致教员在给学员讲授各种数据结构和类型时,学员由于初次接触,且与以前学习到的物理和数学知识不一致,感到难以理解。

  (2)学员的计算机基础水平高低不一。学员来自各个不同的中学,有些中学在信息技术课程投入较大精力,学员对计算机及网络技术已经比较熟练;有些中学则以高考为指挥棒,全力应付高考,对高考之外的课程重视不够,使学员对计算机的了解相对较少。此外,即使是同一所学校的学员,由于家庭经济能力、个人喜好等方面因素的影响,学员的计算机水平也存在较大差异。

  (3)该阶段学员刚刚结束高中学习,还受一定的高中应试学习模式影响,想通过大量做题来提高自身的解题熟练程度,但是这种学习思路对于面向对象程序设计课程的学习来说并不是非常适用。本课程的主要教学目的是培养学员利用计算机语言对现实世界建模的能力。通过大量练习的确能够提高学员运用某一知识点的熟练程度,但是本课程更注重学员灵活运用知识的能力,即创新思维。此外,本课程的知识点非常多,难以一一练习。

  面对这些问题,可以在具体的教学实施中引入类比教学法,注重从现有知识出发,从学员熟悉的事物出发,推移到要学习的新知识[2],降低学员理解难度,提高学习效果。

  2 类比教学法的实施

  在教学过程中,依据类比的角度不同,可分为依据生物学知识、依据已学知识、依据生活常识、依据社会关系等类比方法。

  2.1 依据生物学知识进行类比

  生物课是学员在初中和高中均需学习的一门课程,而且学员通过日常生活观察,已经掌握了不少生物知识。依据生物学知识进行类比,不仅有利于学员理解,而且使课程讲述生动形象。

  在讲授类的继承与派生的时候,我们指出该概念类似于生物学的遗传和变异。由父代生出子代,父代可以将自身的一些生物学特点遗传给子代,所以儿女长得像自己的父母,对应在面向对象程序设计中指的就是子类拥有父类的数据成员和函数成员,这就是继承。同时,子代在遗传的过程中,为了适应新环境,往往会有一些新特性即产生变异,对应在面向对象程序设计中指的是子类往往会产生一些新的数据和函数成员。如果没有变异,那么新生命就无法不断地适应环境,不能够进化,同样的,不增加新成员,那么子类(派生类)就与父类(基类)一样,无法解决新问题。在讲授单继承与多继承时,指出该概念类似于单性繁殖和双性繁殖。每个人都有父母,孩子一般会同时具备父母的某些特性,多继承也是如此。

  在介绍派生类构造函数的调用顺序时,我们指出该过程类似于一个婴儿的诞生。首先必须有父母,即在派生类的生成过程中首先调用基类的构造函数;然后婴儿的器官逐个形成,即调用派生类内嵌对象成员的构造函数;最后婴儿形成并诞生,即调用派生类的构造函数,形成一个具体的对象。依据生物学知识进行类比,我们通过课堂提问、上机练习等环节观察到学员们普遍容易理解并掌握相关知识。

  2.2 依据已学知识进行类比

  该类比方法指的是在讲授新知识的过程中,将新知识与学员已经学过的知识联系起来,使学员在一个较高的起点上学习新知识。学员在课程前期的学习中已经学习到“类是对具有相同属性和行为的一组对象的抽象”[3],即对多个个体进行抽象,以便统一对其描述。因此,在介绍类模板的概念时,我们指出该概念与之前学习过的类的概念类似,类模板的目的也是为了对一组具有相同属性和行为的对象进行抽象,只不过此时的抽象对象是类。利用类能够声明多个个体,在面向对象程序设计中将其称为对象,利用类模板同样能够声明多个个体,此时的个体称为模板类。在声明的过程中,给类传递参数的接口是构造函数,给类模板传递参数的接口是模板形参表。依据已学知识进行类比,不仅易于学员理解新知识,而且能够及时复习已学知识,具有双重效果。

  2.3 依据生活常识进行类比

  该类比方法指的是将面向对象程序设计知识与学员的日常生活知识联系起来。在讲授数据类型的时候,我们指出数据类型类似于日常生活中的衣柜。衣柜的用途在于装衣服,数据类型的用途在于存储数据。对应于不同的房间大小和衣物量,应该选用不同的衣柜,太小,衣物装不下;太大,房间的空间又不允许。同样,在面向对象程序设计过程中,选择何种数据类型取决于待存储数据的范围和内存的大小,应该尽量选用恰好能够表示待存储数据范围的类型,避免存储空间的浪费。在讲授静态联编与动态联编时,我们指出静态联编只能调用到指针所对应类型的函数,而无法调用到指针所指向具体对象类型的函数,这在很多情况下会产生不便。就像举办主题演讲比赛时,虽然每位选手都是围绕同一个主题(调用同一个函数名),但是观众希望选手能够根据自身单位特点来演讲,不同单位的选手讲不同的故事(实现动态联编),而不希望所有的选手讲同一个故事。

  2.4 依据社会关系进行类比

  该类比方法指的是采用社会关系类比讲述面向对象程序设计中的数据关系。在讲述派生类对基类的访问权限控制时,我们指出这类似于父母(基类)对孩子(派生类)的访问控制。父母对孩子总是大公无私的,因此不管是使用公有继承、私有继承还是保护继承,孩子总是能自由访问父母可以公开的事情(公有成员),但是父母总有一些个人隐私(私有成员),这些隐私无论采取何种继承方式,都无法被孩子访问。在讲授类的友元函数时,我们指出这类似于人的好朋友。人总是有很多隐私和不便公开的事情(私有成员和保护成员),这些事情人们不希望其他人知道,对应地,私有成员和保护成员不能够在类外访问;但是人们也会有好朋友,会对他们知无不言,告诉他们自己的秘密,并且有时候告诉朋友秘密能够带来很多便利。友元函数就是类的好朋友,利用它能够自由地访问类的私有成员和保护成员,带来操作上的便利。

  3 类比教学法需要注意的问题

  3.1 类比对象与程序世界的差异

  引入类比方法能使课程讲授变得生动易懂,但是也要注意类比指的是相似,而不是相同。虽然面向对象程序设计课程中有很多概念与现实事物存在相似性,但是仍在某些方面存在较大差别,教员在使用类比法时需要指出这些差异,以免学员照搬类比对象,从而产生误解。例如,派生类对象的构造就好比婴儿的形成,构造函数的调用顺序与婴儿的形成顺序一致,首先是父母,然后是器官,最后是自身。派生类对象的析构就好比生命的消亡,但是派生类对象析构函数的调用顺序则与生物界不同。在生物界中,生命的消亡一般从父辈开始,然后是子辈;但是对于派生类对象的析构而言,析构的首先是自身,然后是内嵌对象成员,最后才调用基类的析构函数,与生物界正好相反。STL 中的 vector 类似于现实生活中的容器,能够用来存储物品即数据,但是现实生活中的容器容量是固定的,而 vector 的容量则可调整,因此在讲授这些概念时,教员必须及时指出它们与类比对象的相似和差异。

  3.2 与其他教学手段的配合

  类比教学法虽然比较直观易懂,但是也要与其他教学手段配合才能取得较好的效果。一要特别注意与多媒体技术的配合。在使用类比方法时,可以通过图片、视频等多媒体技术形象展示两类事物的共同点,例如使用图像展示子辈与父辈的相似性,使用视频展示细胞到婴儿的整个变化过程。应用多媒体技术不仅能够使学员获得震撼的直观印象,使教员的类比过程易被学员接受,而且能够使课堂变得生动活泼。二要与案例教学相配合。在课程中期,学员掌握一定的编程技巧后,教员可以布置一些小项目[4],让学员通过编程解决问题,并对学员的程序进行点评,指出优点和不足。通过实践提高学员的动手能力,加深其对知识的理解。三要让学员阅读和分析知名开源项目。目前网络上有许多开源的面向对象程序项目,这些项目多由资深的程序员编写,项目文件组织合理,代码编写规范。学员通过阅读这些代码,能够学到很多编程知识和技巧,而且有助于培养良好的编程习惯。

  4 结 语

  类比教学法降低了学习难度,容易记忆和理解,使学员能够在已有知识储备的基础上学习新知识。通过采用该教学法与其他教学手段相结合,电子工程学院面向对象程序设计课程教学取得了较好效果。近 3 年来,学员计算机二级考试通过率维持在 90% 以上并逐年提高,参加全国软件专业人才设计与创业大赛有 14 人获得赛区一、二等奖,参加全国大学生信息安全竞赛多次获得全国二、三等奖。

  类比不是简单的比喻,它对教员提出了较高的要求,需要教员充分理解面向对象程序语言的本质,并对课程前后知识非常熟悉,因此教员在上课前必须充分备课,努力提高自身素质,其次要加强类比教学法的素材库和示例库建设,努力使学员乐于学、易于懂、会运用,进一步提升教学效果。

  参考文献:

  [1] 毛新军, 毛晓光, 周会平, 等。 以能力为导向的计算机程序设计课程教学改革[J]. 计算机教育, 2013(22): 36-39.

  [2] 杨恒伏, 孙光,田祖伟。 类比教学模式在操作系统教学中的应用[J]. 计算机教育, 2008(24): 76-77.

  [3] 陈天华。 面向对象程序设计与Visual C++6.0教程[M]. 2版, 北京: 清华大学出版社, 2013: 88-92.

  [4] 李骏扬, 魏海坤, 许倩茹, 等。“程序设计与算法语言”实践课程中的项目教学[J]. 电气电子教学学报, 2014, 36(4): 90-93.

对应分类:
版权所有:大学论文网专业权威的论文代写、论文发表的网站,秉承信誉至上、用户为首的服务理念,服务好每一位客户
本站部分论文收集于网络,如有不慎侵犯您的权益,请您及时致电或写信告知,我们将第一时间处理,邮箱:82274534@qq.com