时间:2024-07-29
(大连大学 信息工程学院,辽宁 大连 116622)
信息化时代,程序开发是理工科研究生从事科学研究和实际工作应具备的基本技能。近年来,信息工程学院招收的非计算机专业的研究生在本科阶段大多选修了结构化程序设计语言课程,如C语言。因此,他们具备基本的编程技能,但对于主流的面向对象编程思想,多数学生在本科阶段并没有学习。
《面向对象技术》是我校针对信息工程学院非计算机专业的研究生开设的一门专业选修课程,旨在让非计算机专业的研究生掌握面向对象的编程理念和面向对象程序开发技能,这对学生今后的科研和工作大有益处。
《面向对象技术》是一门实践性很强的课。在以往的教学中,我们侧重理论讲解,教学内容和教学模式上存在许多问题,主要表现为:一是,大量的课时用于理论讲解,忽视了对学生实践技能的培养。二是,学生对填鸭式的理论学习缺乏兴趣,学习效果大打折扣。针对上述问题,我们进行了反思和改革,重新设计了教学内容和教学模式。
以往,我们在教学中主要是讲解面向对象基本思想和UML(United Model Language,统一建模语言)的使用。36学时的课程下来,学生虽然掌握了面向对象技术的原理,但不会在实践中运用。为了实现“学为所用”,我们重新设计了教学内容,编写了新的教学大纲。
改革后的教学内容包含理论学习和项目实践两个方面。这两部分在实际教学中并不是相互孤立的,而是相互融合。面向对象技术涉及的原理和知识点很多,不可能在课堂上面面俱到的讲解。同时,研究生已具备一定的自学能力,很多内容完全可以在课下自行学习。因此,我们选取最重要的知识点作为理论教学内容。重点抓住类、对象、封装、继承、多态性等知识点,同时,简要介绍C++的基本语法和UML的基本使用。这些内容作为课程的理论先导部分,属于纯理论教学,只分配6个学时,每个知识点都有相应的课堂测试题目作为学习效果的检验。理论先导部分之后是课程实践部分,在这一部分,每次课堂教学都围绕具体的实践项目,同时,点明所涉及的知识点,目的是培养学生实践能力,将所学和所用结合起来。
在项目实践部分,我们在教学内容设计上侧重如下三个方面。
一是,学生在开始学习面向对象编程时,总是习惯性的回到面向过程的编程方法。为此,我们设计实践项目,让给出面向过程的编程实现,然后让学生使用面向对象思想对程序进行改写,帮助学生进行编程思想上的转变。
二是,设计小型课堂演练项目,辅助主要知识点的理解和掌握,以及综合实践能力的培养。例如,为了帮助学生掌握派生类,以及构造函数和析构函数的使用,要求学生编写一个点类Point,然后由它派生线段类Line,并演示构造函数、析构函数的作用和调用顺序,画出line类的UML图。
三是,设计综合性实践项目——学生成绩管理,通过实现学生成绩的统计、查询、删除以及文件存取等操作,培养学生综合所学知识点解决实际问题的能力。
我们共设计了5个设计题目[1],前4个设计主要检验学生某几项知识点的综合使用,同时,引导学生建立面向对象的思维方法。最后一个设计是一个综合设计项目,几乎涵盖所学的全部知识点。此外,我们还将综合设计项目进行了分解,并将这个综合设计项目中涉及到的知识点融合到基本理论的讲解中。
该课程共36学时。我们为新的教学内容编制了教学大纲。表1是教学大纲的概要。
表1 教学大纲概要
以往的教学模式是以老师讲解为主,课堂气氛沉闷,学生主动性不强。本次教改中,我们要让学生成为课堂的主体。由于研究生已具备较好的学习能力,因此,教师完全可以只授之以渔而非授之以鱼。即,采取学生课下自学,课上互动,教师引导的教学模式。重点如下:
(1)课下自学与课上测试
在以往授课中,课堂学习以教师讲解为主,这种授课方式不利于学生主动性的发挥。我们发现,听老师讲解知识点时,学生的兴趣并不高,可一旦抛出某个问题让大家抢答时,往往课堂氛围一下子活跃起来,这说明学生更愿意运用所学的知识点解决问题而不是单纯的知识点记忆。为此,我们一改传统的老师讲解为主的教学模式,将每节课的知识点以课下阅读材料的形式发给大家,学生通过自学掌握知识点。课堂上,老师只花少量的时间对本次课的知识点进行串讲和总结,然后用事先准备好的测试题目考核学生对知识点的掌握程度,再对普遍存在问题的地方,进行纠正和详细讲解。这种方式不仅能调动学生学习的积极性,同时,也有助于学生了解自身学习中存在的问题。
(2)项目跟进式教学模式
面向对象技术是要学生掌握面向对象的程序设计原理,将这种程序设计理念运用到实际编程中。以往的教学只侧重面向对象理论学习,教师投入大量的时间在课堂上讲解理论,学生虽然掌握了这一理论,但如何在实际项目开发中运用这一理论却不得到很好的认证,这不利用学生实践能力的培养。本次教改,我们一改以往理论教学为主的教学模式,将理论学习与编程实践相结合,将理论知识点的学习放到课下自学,将大部分的课堂学习时间留给动手实践。教师在课堂上抛出针对知识点的单项测试性项目或综合运用性项目,让学生真正动手编程实践,培养学生运用所学知识解决实际问题的能力。
(3)要求学生自带笔记本电脑进课堂
在笔记本电脑普及的今天,几乎所有学生都有笔记本电脑,因此,我们要求学生上课自带笔记本电脑。这一要求是为满足课堂测试和课堂演练项目的教学需求。有了笔记本电脑,教师可以在课堂上随时布置知识点考核题目或编程演练项目,及时了解学生对知识点的运用能力和综合解决问题的能力。带笔记本进课堂是实施课堂测试和项目跟进式教学模式的硬件保障,保障学生对所学知识点随学随用,激发学生的学习兴趣,提高动手实践能力。
(4)采取小组协作的形式
由于课堂时间有限,一些综合性项目不可能在课堂上单人完成。为此,我们将学生分成3~5人的小组。老师在课堂上公布题目后,每组组长组织大家进行分析、设计、模块分解和对接,每个组员实现各自的编程任务。对于课堂演练项目,如表1中的序号5——辨别真伪问题的课堂演练,可在一次课程中协作完成。对于综合性小型项目,如表1中的序号9——学生成绩管理,课时通常控制在8学时,由于设计内容较多,需要组员利用课下时间继续协作,共同完成,最后再以小组汇报的形式展示给大家。教师在课堂上对各组项目进展进行及时把关和指导。通过小组协商,分模块进行,不仅可以让学生对项目实践有整体认识,同时,也锻炼学生团队协作能力。
针对研究生具有较高的学习能力这一特点,此次教改,我们压缩了教学中的理论讲解部分,加大了项目实践部分。从整体教学内容来看,教学起点较高、覆盖面广、知识含量大,在有限的课时内尽可能的提升了学生实践技能的培养,使本课程与常见的本科教学区别开来,更符合研究生这一学生群体的授课对象。教学模式上更加开放灵活,充分发挥学生潜能,锻炼学生的实践能力和协作能力。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!