项目教学法在面向对象程序设计实践教学中的应用
2017-07-20杨雪
杨雪
摘 要: 面向对象程序设计课程是许多高校计算机专业的一门必修课。针对目前该课程实践教学中存在的以验证性实验为主、学生积极性不高,编程能力得不到充分锻炼等问题,提出基于项目教学法的面向对象程序设计实践教学模型。通过选取有吸引力的项目引导学生编程实现,以期达到增加学生参与度、提高学生程序设计能力的目的。在项目实施过程中借助思维导图工具,驱动学生发散思维和探究、设计并完成项目。实践证明,采用基于项目教学法的实践教学模型能有效提高面向对象程序设计课程的实践教学质量。
关键词: 项目教学法; 面向对象程序设计; 实践教学; 思维导图
中图分类号:G642 文献标志码:A 文章编号:1006-8228(2017)07-101-04
Application of project-teaching method in object-oriented programming practical teaching
Yang Xue
(Department of Computer and Information Technology, Zhejiang Police College, Hangzhou, Zhejiang 310053, China)
Abstract: Object-oriented programming(OOP)is one of the compulsory courses for computer science specialty in many colleges and universities. In order to solve the problems in the practical teaching of the course, such as most of the experiments are for verifying and insufficient for exercising students' programming ability, and students have little enthusiasm for these programming tasks, this paper proposes the application of project-teaching method in OOP practical teaching. Through the selection of attractive projects to guide students programming, with a view to increasing students' participation, improves students' programming ability. In the process of project implementation, the mind mapping tools are used to drive students to divergent thinking and explore, design and complete the project. The practice shows that the application of project-teaching method can improve the practical teaching quality of OOP.
Key words: project-teaching method; object-oriented programming; practical teaching; mind mapping
0 引言
“面向對象程序设计”是计算机科学与技术相关专业的一门专业基础课,其主要任务是培养学生利用程序设计语言解决实际问题的系统能力[1-2]。传统的教学方式往往是教师精讲语法及例题,学生编写小程序对所学知识点进行验证。这种教学方式的主要问题是知识点细碎枯燥,学生不知道面向对象程序设计课程的现实意义,因而对编程热情不高,系统能力得不到充分锻炼,教学效果与教学目标相背离。
传统的以知识传授为核心的静态实验教学方式(即教师在课堂上把实验原理、目的、步骤及注意事项均详细讲解一遍,学生只需按部就班地操作,用不着查资料,也不思考实验中还有没有需要改进的地方。)会使学生完全处于被动状态,压抑他们的学习兴趣和主动参与实验的积极性[3]。因此,我们在面向对象程序设计实践教学中引入项目教学法,选取覆盖知识点多、对学生有吸引力的项目,并在项目实施过程中借助思维导图[4]工具,引导学生编程实现,以达到提高其编程能力的目的。
1 基于项目教学法的实践教学模式
项目教学法是师生通过共同实施一个完整的项目而进行的教学活动,是一种在构建主义教学理论的指导下,通过对“项目”的选取和创设情境,主要由学生独立或合作完成预定“项目工作”的学习方式[5]。项目教学法旨在培养学生学会独立或合作分析、解决实际问题的能力,其特点为:教师选取一个综合型项目对前一阶段课程知识和技能的传授进行总结、升华,且项目内容中需包含学生从未遇到但通过分析和努力可以解决的问题。在项目的实施过程中,教师指导学生的成分较少,主要由学生独立或合作完成项目。在实验评价时,教师需要注重学生参与项目各环节的表现以及项目完成的质量。表1总结了实施项目教学法的各环节及特点。
项目教学法的目标是培养学生独立或合作分析、解决实际问题的能力,这与面向对象程序设计课程的培养目标相一致。因此,我们在面向对象程序设计实践教学中尝试引入项目教学法,根据其特点把教学过程分解为确定项目、项目实施、考核评估和总结反思四个环节,构建了一个基于项目教学法的面向对象程序设计实践教学模式。该模式下教师和学生各自的主要任务如图1所示。图1中,实线箭头代表任务流程,虚线箭头代表教师与学生之间的互动。其中右向虚线箭头①表示在“项目实施”环节教师引导学生绘制项目的思维导图;右向虚线箭头②表示教师监控整个编程过程并帮助学生解决难以克服的问题;左向虚线箭头③表示学生向教师提交已完成的项目等待教师进行考核评估。需要说明的是,在项目完成后教师和学生都应对整个项目进行全面的总结,对项目的完成情况以及学生在整个项目流程中的表现进行评比,对项目实施过程中遇到的问题进行梳理,并根据实践教学中的不足对项目内容进行适当调整。
2 项目教学法在实践教学中的应用
实践活动是教学改革的灵魂。本文以实践教学过程中的“扫雷游戏”项目为例对基于项目教学法的面向对象程序设计实践教学模式进行详细介绍。
2.1 确定项目
我们在讲授面向对象程序设计中类和对象的概念以及图形用户界面设计等内容之后进入实践教学环节。根据项目教学法的要求,教师需选择一个能够总结前期教学内容并包含学生此前未遇到过的问题的项目让学生去完成。因此,我们选择了一个既涉及图形用户界面设计又包含底层算法编写的项目——设计并实现一个类似于Windows平台上的“扫雷游戏”[6]。对该项目有以下5点具体要求。①显示扫雷区域,用户鼠标左键单击任何一个方块按钮启动游戏。②单击某方块按钮,若有雷则提示游戏结束,无雷则显示一个代表该方块周围八个方块中有几颗雷的数字。③如果用户认为某方块下有雷,可以单击鼠标右键进行标记,方块按钮上显示“?”。④游戏结束后,弹出“恭喜通关!”的对话框。⑤游戏界面含有“新游戏”、“获取帮助”、“关于扫雷”、“退出”等菜单。点击菜单中的“获取帮助”,会提示用户游戏规则;“关于扫雷”菜单提示游戏的开发者信息;单击“退出”菜单退出扫雷游戏。
以上项目要求中,①④⑤考查学生对图形用户界面设计知识点的掌握情况,②是要求学生在掌握对象和类等概念的基础上进行算法设计,③是“响应用户点击鼠标右键的操作”,属于前期未讲授的知识点,需要学生自主学习。满足项目教学法“在一定范围内学习新的知识技能,解决过去从未遇到过的实际问题[7]”的要求。
2.2 项目实施
由于项目教学法在实施阶段以学生动手为主,教师指导为辅,因此,在具体教学过程中我们通过思维导图工具引导学生进行项目主题划分,学生在教师的指导下,独自规划、设计并实现项目。
思维导图使用特定的图形来组织和表征关系,能够帮助学习者进行有效的思维和记忆[8],一般由一个中心主题发散多个分支主题,各分支主题又由多个关键词组成,能够形象地展现人脑的思维过程[9]。正因思维导图具有能够跟随大脑思考过程,分级进行主题划分的功能,因此非常适合在项目实施的初始阶段进行思路的梳理。常用的思维导图有Inspiration[10]、Mindmanager[11]、Freemind[12]和XMind[13]等。
图2为教师引导学生在“扫雷游戏”项目中利用XMind绘制的实现方案。在此思维导图的指导下,学生能够快速预估实现项目所需的时间,设计思路清晰,完成项目的速度也较快。此外,思维导图能够帮助部分学生改善刚接触实验项目时头脑中一盘散沙、完全不知从何下手的局面,提高了他们的学习效率和对待实验项目的积极性。
最后,学生在该思维导图的引导下独立进行编程实践。在此阶段,教师应监控整个实验过程,在学生遇到难以克服的问题时及时给予帮助。
2.3 考核评估
学生完成项目后,向教师提交完成的作品和绘制的思维导图。具体方式为学生公开作报告并展示,教师在学生报告结束后对实现项目过程中的一些技术细节进行提问。如果学生的答辩中存在某些问题或错误,教师会进行分析及更正,以保证项目完成的质量。学生答辩结束后,教师根据项目完成情况及其在项目各环节中的表现给予综合评分。
2.4 总结反思
总结与反思是实践教学的最后一个环节,教师和学生都要参与其中。项目完成后,教师应总结学生在项目实施过程中存在的普遍性问题(学生在实现当用户点击一个周边无雷的方块时,系统会自动点开其周边八个方块这一功能出错最多),分析问题产生的原因(对递归的思想理解不透彻),帮助学生更正这些错误,为其重构所学知识提供便利,此外,教师还要对项目整个流程进行反思,并在此基础上完善项目的目标和内容,以便今后更好地开展实践教学。最后,学生要总结在此次项目中的收获并反思自身的不足,进而对所学知识进行重构。
3 结果评价
为验证基于项目教学法的面向对象程序设计实践教学模式的有效性,我们在2015级网络安全与执法专业学生中选取学风相近、学生数相同(均为30人)的A、B两个班级作为实验班(A班)和对照班(B班)。在实践教学中,对实验班的学生采用项目教学法,要求他们两人为一组合作实现“扫雷游戏”项目,而只要求对照班的学生完成验证型的实验。
我们对这两个班级的期末测试成绩分别进行考察(试题以应用性题目为主,重点考查学生对类和对象的理解以及利用面向对象程序设计语言进行图形用户界面编程的能力)。实验班(A班)和对照班(B班)学生的期末成绩分布如图3和图4所示。
从成绩分布情况可知,实验班有1人成绩在90分以上,36%的学生成绩良好(80~89之间),共有58%的学生成绩超过70分;而对照班成绩良好以上的学生比例为27%,比实验班低12%,且成绩超过70分的人数只有50%,也比实验班低8%。此外,实验班有1人不及格,对照班有3人不及格。采用项目教学法的实验班同学与对照班同学相比总体成绩要好。
值得一提的是,两个班级成绩在60-69区间的学生比例比较接近,我们分析是由于项目教学法在整个项目实施过程中对学生独立分析并解决问题的能力要求较高,而部分同学由于前期基础知识掌握不够扎实,因此在这种实践教学模式下学习比较吃力,未能获得预期受益。因此,教师应在今后教学过程中对这部分学生给予更多关注。
4 结束语
基于项目教学法的面向对象程序设计实践教学模式能有效帮助教师对前期讲授的知识进行总结、升华,提高学生独立分析和解决实际问题的能力,使他们从知识的被动接收者变为项目的主动探索者和知识的构建者。实践教学证明:采用项目教学法施教的班级获得了更好的效果,项目实施过程中思维导图工具的使用有助于提高学生的思维品质和实验效率。然而,该教学模式对教师的要求也更高,主要体现在如何合理选择综合性项目,引导学生实施并对他们在各个环节中的表现给予客观评价。因此,教师需要在日常教学中不断总结、反思和积累,从而确保教学改革顺利开展。
参考文献(References):
[1] 王志英,周兴社,袁春风等.计算机专业学生系统能力培养和
系统课程体系设置研究[J].计算机教育,2013.9:1-6
[2] 辛运帏,饶一梅,马素霞.Java程序设计[M].清华大学出版社,
2013.
[3] 杨雯雯,张小岗.高校实验教学改革的问题及对策[C].北京高
教学会实验室工作研究会,2007:327-330
[4] 陈云辉,谢百治,赵丽.思维导图与学生创新思维能力培养[J].
中国医学教育技术,2006.2:10-12
[5] 徐肇杰.任务驱动教学法与项目教学法之比較[J].教育与职
业,2008.11:36-37
[6] 耿祥义.Java课程设计(第二版)[M].清华大学出版社,2008.
[7] 邱荣生.运用项目教学培养合格人才[C].新世纪中国教育发
展论坛,2007.2.
[8] 郭艳霞.基于思维导图的教学模式研究[D].湖南师范大学,
2011.
[9] 陈静.概念图/思维导图在计算机软件类课程中的教学行动
研究[D].华中师范大学,2012.
[10] Inspiration Software [EB/OL]. [2017-02-10] http://
www.inspiration.com/.
[11] Mindmanager [EB/OL]. [2017-02-10] http://www.
mindmanager.cc/.
[12] Freemind[EB/OL].[2017-02-10] http://freemind.source-
forge.net/wiki/index.php/Main_Page.
[13] XMind [EB/OL].[2017-02-10] http://www.xmindchina.
net/