李雪飞+李晶+余琍+代永平
摘 要:针对面向对象程序设计课程的教学现状,分析当前教学中存在的教学目标不明确、教学内容陈旧、程序设计课程不连贯等问题,提出合理组织教学内容、激发学生学习兴趣的方法和改革教学方法、教学手段、课程评价等措施,旨在提升教学质量,提高学生的实践能力。
关键词:面向对象程序设计;实践教学改革;MASON;计算机编程
文章编号:1672-5913(2017)07-0118-04
中图分类号:G642
0 引 言
在计算机及相关专业课程中,面向对象程序设计类课程是学生必修的核心课程,在整个培养方案中,面向对象程序设计课程占据着举足轻重的地位。面向对象的程序设计思想从提出到现在,一直是程序开发的主流思想,在未来很长一段时间也将是一种主要的编程思想,是所有计算机软件开发人员必须掌握的关键技术。
根据国家对应用型人才的培养标准,在实践教学过程中应当先明确对应用型人才的基本要求,主要体现在以下几个方面:①具有较强的文化素质,专业基础知识掌握较好,能够掌握计算机学科主干课程的内容;②实践动手能力强,能够快速掌握软件、硬件的使用,充分理解计算机运行机制;③具有很强的分析问题、解决问题的能力;④要掌握一门或多门程序设计类语言,并充分理解程序设计原理,特别是面向对象程序设计的思想。
1 面向对象程序设计类课程在教学中的问题
1.1 教学目标不明确
理论课与实验课泾渭分明,使理论课的知识难以运用到实验课中,造成了难以学以致用、学用脱节的状况,在实验中不能达到巩固理论和检验理论的目的。
面向对象程序设计课程不是单纯的理论讲解,其主要目的是增強学生的程序设计能力。首先需要选用适合的理论课教材,然后配合教材设置实验课内容,使实验课和理论课相辅相成。
1.2 教学内容陈旧
面向对象程序设计课程通常包括编程语言语法、面向对象程序设计、标准类库等内容。课程涵盖的教学内容很多,但存在实际教学课时过少的问题。同时,面向对象语言课程学习难度比较大,包含各种不同需求的应用框架,而传统的教学内容主要偏向基本理论学习,导致学生不能真正掌握面向对象的核心思想,对知识点理解困难,学习热情降低,教学效果不够理想[1]。
移动互联大背景下应用开发的理论与实践教学模式,要求学生既要掌握扎实的计算机理论知识,又要掌握大数据、云计算等新理念、新技术。学生只有结合教学实践,学习运用新技术,提高知识储备,才能提升自己的实践开发能力和项目管理能力。
1.3 程序设计类课程缺乏连贯性和一致性
当前面向对象理论教学中各章节之间的关联性较小,实践操作注重验证性实验,且前后实验没有连贯性和一致性,导致学生不能整体把握面向对象程序设计思想,缺乏对面向对象思想的宏观认识,实践动手能力很难提高,更没有参与大型软件项目的能力。
考虑到近年来,云计算、移动互联网、大数据、人工智能等技术的飞速发展,计算机专业毕业生的就业市场前景广阔。这对高校计算机专业学生培养,尤其是计算机软件开发人员培养来说,既是机遇也是挑战。
2 教学改革的措施和方法
2.1 合理组织教学内容
在实践教学的初始阶段和中间阶段,按照学生对事物的普遍认知规律,可以采用从宏观到具体的认识方式,合理组织教学内容。首先,通过一个或多个覆盖知识点广的应用程序,让学生构建对面向对象程序设计课程较完整的认识[1],提高学生学习编程设计的兴趣。然后,把实际应用程序各部分功能的实现原理,合理分解到教学的各章节知识结构中,使学生建立整体概念,然后逐步细化,掌握知识点,由点到面、由浅到深地学习。这种层次化的学习方式,能够满足学生学习课程的兴趣。实践证明,带有目的性的教学,能够有效提高学生的学习效率。在教学的最后阶段,要求学生在掌握全部知识后进行总结,构建宏观的程序设计思维,利用掌握的知识和方法重新思考教学初期提供的完整程序,并鼓励学生动手解决类似问题,以实现对知识的融会贯通,进而提高学生的实践能力。
2.2 激发学生的学习兴趣
兴趣是最好的老师。在实际教学中,只有激发学生主动学习的热情,才能获得更好的教学效果[2]。教师在安排教学内容时,需要注重以下几点。首先,要注重学生对面向对象程序设计类课程的第一印象,在第一堂课上激发学生对该课程的兴趣。比如C++程序设计教学,在第一堂课上教师给学生演示常用的软件程序(QQ、微信、游戏等),让学生认识到这些程序就是将要学习的内容,学习完本课程也能写出如此实用的程序 [1]。其次,在往后的教学中,要避免照本宣科地给学生解释知识要点,特别是比较枯燥、难以理解的知识点,例如继承、多态,可以通过生活中的类似案例来讲解,不仅让学生明白编程语言的思想来源于生活,更能加深学生对知识点的理解。最后,在课程结束前,带领学生重新学习第一堂课的内容,介绍知识点在具体程序中如何运用,使学生明白课堂所学的知识点是构成复杂程序的基本元素。学生在课程学习完成后,要注意归纳总结,深入理解面向对象的核心思想,在实践中不断提升自己的动手能力。
2.3 教学方法改革
在实际教学中,应当以学生自主思考学习为主,教师起指引方向和介绍方法的作用,调动学生积极性,让学生敢于表达自己的见解。教师可以引导学生相互讨论[3],让学生成为课堂的主角。程序设计是一门实践性强的课程,当学生做课程设计遇到错误时,教师要真正给学生讲清楚错误的原因,让学生动手调试,错误能够加深学生对知识点的理解。同时,每做完一个任务,教师就要对学生进行评价,站在学生的角度,帮助学生理清思路。这样,学生不仅可以清楚问题的本质,还能获得更多的自信,增强对程序设计课程的学习兴趣。
2.4 教学手段改革
针对面向对象程序设计课程抽象不易理解的特点,在实践教学中可以采取多媒体的教学方式,有利于学生对知识点的理解。教师借助网络通信工具,通过开设微信和QQ课程学习交流群[4],鼓励学生相互帮助。学生遇到问题,可在交流群中提出,请其他学生回答问题。对有见解、态度端正的学生,可以给予奖励, 以构建良好的学习氛围。课堂时间有限,教师在课余时间可以通过网络通信工具加强与学生的沟通交流,给学生发送课件、参考书、源代码等资料,以弥补课堂课时太少的问题[5]。同时,要注重利用网络资源,例如MOOC、网易云课堂等在线学习资源,鼓励学生自主学习。
2.5 课程评价改革
合理的课程评价是对学生学习效果的客观反映。面向对象程序设计是一门实践性很强的课程,课程评价要采用全面的评价方式,结合学生的课堂表现,对学生的程序设计能力做出评价。针对面向对象程序设计课程的特点,可以根据学生的课堂表现、课程设计和综合程序等几方面综合评价。课堂表现可以在回答问题次数、上课出勤率、课后作业完成等方面对学生进行评价;课程设计考核可以通过参与课程设计次数、课程设计报告质量、实验代码质量等方面考核;综合程序练习可以通过团队成员互评、程序验收答辩、项目综合评价等给学生打分;最后再综合这几方面的分数,给出一个能够真实反映学生程序设计实践水平的分数评价,更好地激发学生的学习热情,实现学生专业技能和学科应用能力的提升。
2.6 面向需求设置实验教学内容
在教学中,首先要注重讲解理论知识,但更要注重将面向对象程序设计中的理论知识与具体程序设计相结合,让学生在实践中强化对理论知识的理解,提高学生分析、解决问题的能力,并培养学生对程序设计的兴趣。
在面向對象程序设计教学中,将配套一个完整的面向需求的实验设计。课程实验设计基于MASON仿真平台,MASON是由George Mason大学用Java开发的离散事件仿真库,全称为Multi-Agent Simulator of Neighborhood[6]。选择MASON平台是因为该平台的设计具有以下优点:①性能高效,MASON的设计思路是为了使软件更小且运行速度更快;②易上手,MASON仿真平台操作简单,官方亦提供了完整的操作文档,即使初次接触面向对象课程的学生也能快速入门,不必花费过多时间了解框架平台的使用方法,可将学习精力集中在程序设计,更好地将课程知识运用到实践操作;③拥有可视化GUI选项,MASON仿真平台提供了GUI接口,方便操作者使用[7]。根据学生反馈,在初次接触面向对象程序设计时,就能自己动手写出带有GUI的程序,更容易提升对面向对象程序设计的兴趣和学习热情。
在教学实验中,参考面向对象程序设计教学内容和MASON平台的特点,笔者设计了配套的课程实验,实验题目见表1。学生在课程初期可以根据兴趣选择一个实验题目,独立完成实验。随着课程不断进行,对实验的程序设计要求由浅入深、层次推进,每个阶段将需求与最新的知识点相结合,既深化了课堂的理论知识,又强化了动手能力和解决问题能力,让学生切身体会到面向对象程序设计的优点。
具体来说,应采用从整体到局部的方式组织教学内容,将课程分为4个层次:①面向对象语言基础;②类与对象,继承与派生;③设计模式;④软件工程理论及大型软件的研发和维护。在教学中将围绕这4个层次的知识体系进行课堂教学和实验设计。随着理论教学的推进,学生在课堂和试验中学到的知识越来越多,实验也将逐步扩展成为一个小型项目,完成对学生程序设计综合能力的训练。
教学实验的设计将采用滚雪球的叠加方式[8],设计思路见图1。实验的设计应该将不同层次的知识点贯穿起来,随着知识层次的深入,将现阶段实验逐步迁移到下一知识层次,并不断对实验提出新的要求和改善目标。表2是其中一个实验的概要设计描述。
在实验课程的实际运行中,还将对实验的管理、考核方式进行改革。实验课程的时间安排将采取分阶段检查的方式,每一阶段在前一阶段已完成的情况下,由教师对当前的阶段性成果进行评估;然后再根据实验选题设置新的需求或对已完成的需求提出修改,让整个实验进度循序渐进,由易到难;最终将综合各个阶段的成果进行综合考核,将实验考核分数作为最后总评成绩的重要参考之一。
3 结 语
本文针对面向对象程序设计课程的教学现状,根据学生对事物认知规律,合理组织教学内容,旨在教学过程中不断激发学生的学习乐趣。学生对面向对象程序设计的思想有了清晰的认识,在实践过程中能够运用面向对象程序设计的方法,编写出扩展性强、实用性强的软件。利用MASON仿真平台完成课程设计,能够更好地锻炼学生的动手实践能力。近一年的实践证明,采用这种教学方式,学生的学习热情明显提高,教学效果得到了显著提升。在今后的教学过程中,我们将不断改进这种教学方式,以提高学生的实践动手能力为目标,顺应时代的需求,不断完善教学模式。
参考文献:
[1] 黄素萍. 面向对象程序设计教学改革模式研究[J]. 教育教学论坛, 2013(2): 264-265.
[2] 叶恒舟, 牛秦洲. Java教学实践与编程思维培养[J]. 计算机教育, 2009(21): 115-116.
[3] 朱玲, 宋虹. 英语学习需求视角下的理工类高校大学英语课程设置[J]. 教育教学论坛, 2013(2): 265-267.
[4] 孙丽君, 邹红艳. 以应用和创新能力培养为目标的Java开发技术与应用课程建设与教学实践[J]. 计算机教育, 2016(12): 38-41.
[5] 赵玲玲, 邵秀凤, 李丹丹.“Java程序设计”平台课建设课程改革[J]. 北京城市学院学报, 2016(5): 80-85.
[6] Luke S, Balan G C, Panait L A, et al. MASON: A Java multi-agent simulation library[EB/OL]. [2017-05-26]. https://wenku.baidu.com/view/b2d2572b453610661ed9f4f3.html.
[7] 陈悦峰, 董原生, 邓立群. 基于Agent仿真平台的比较研究[J]. 系统仿真学报, 2011(1): 110-116.
[8] 尹义龙. 数字媒体技术专业的教学实践体系探讨[J]. 计算机教育, 2008(15): 23-27.
(编辑:孙怡铭)