赖均
【摘要】软件工程作为工程技能培养的重点课程,如何有效地把实践能力培养与基础理论结合起来,是软件工程实践教学中需要急切解决的问题。本文结合课程设计的教学实践与教学经验,总结出“课程设计与科技竞赛相结合”的软件工程课程实践教学方法。从教学的效果表明,它是能够强化学生对软件工程基础理论系统理解并转化为软件工程基本技能的有效实践教学方法。
【关键词】实践教学 课程设计 科技竞赛
【中图分类号】G642 【文献标识码】A 【文章编号】2095-3089(2014)02-0243-02
一、软件工程课程实践教学现实情况
长期以来,由于软件工程课程偏重于方法学理论的讲授,其中心是软件生命周期的工程技术方法。然而这些技术和方法,对于缺乏工程开发经验和管理知识的在校学生来说非常难以理解。在实践教学中学生感觉软件工程理论对软件开发的帮助作用不大[1]!尽管实践教学对学生有严格的要求,但是他们往往为了能完成任务的考核,只能按照要求粗略地完成或者收集现成的文档来充数,而未能通过实践对所学的知识进行理解与消化。此外,靠死记硬背的知识、概念常常未能得到有效理解,从而难以转化为软件工程技能。多年来,各个学校在不断地探索和改进其实践教学方法,当前也有些对传统实践教学改进的方法并且取得了一些效果[2][3]。经过对这些方法的分析,可知其大致可分为两类:一类是直接套用软件工业界的要求,但学生缺乏技能和实践条件对任务根本无法完成,只能敷衍了事,达不到对软件工程知识理解和应用的目的;而另一类则是要求不明确且缺乏规范,因要求过于简单而无法达到增强对软件工程理论应用的目的。
鉴于这样的情况,学校迫切需要对软件工程实践教学加以改革,逐步建立实践与理论紧密结合的教学方法,着力培养学生的工程化开发能力,进而形成一个融基础理论、实践教学和参加软件科技竞赛的一种培养机制。因此,使课程设计成为对课堂教学的有效补充是实践教学改革的一个重要任务[4]。
二、“课程设计与科技竞赛”相结合的实践教学方法
课程设计与科技竞赛相结合就是要打破传统实践教学法的不足,充分调动学生学习的积极性和主动性,极大地激发学生的学习兴趣,以实践教学活动带动软件工程理论的学习。这样实践教学就能改变成为对理论知识的巩固应用和对工程实践能力培养的主动学习方式,从而使教学出现可喜的变化。它能把教师要求转变为以学生自主要求,把常规工程文档写作转变为以任务为驱动的分析、设计和实现的学习。
该实践教学是在教师的指导下由学生实施的一个较为完整的“项目”而进行的实践教学活动。参照科技竞赛题目的特点,并依据软件工程理论、方法的特点,制定了本课程设计的知识要求结构如图1所示。在软件工程理论知识的基础上,挑选某种易于扩展、应用的工程技术方法,在软件工程规范文档的要求下进行课程设计。从而使其按需求分析、总体设计、详细设计、实现和测试的流程来开发软件。这样,经过课程设计较为完整的项目训练,能有助于对学生工程技能的培养和对工程理论的理解,最终使学生在有限的时间内,对软件工程的核心理念有较好的把握。它能帮助学生有效地参与各级软件类科技竞赛,提高自己就业时的信心和社会竞争力,使其毕业后能够顺利过渡到实际的软件应用开发中,并在实践中对软件工程理论加以检验和完善并逐步锻炼成为社会急需的各类软件人才。
课程设计与科技竞赛相结合的教学方法是以学生为主体,教师为辅助,在课程设计实践中加深对软件工程理论的理解,培养学生在工程实践中发现知识与分析、解决问题的能力。要达到这样的实践教学目的,软件工程课程设计要做到以下的要求。首先,关于课程设计与科技竞赛相结合的教学内容的设计上,要以学生兴趣为中心自由选择题目。针对实践教学要求,学生选择合适的题目是保证该实践教学顺利开展的关键。因此,题目要以理论教学内容为依据,同时要考虑学生的知识结构特点和实践教学的要求。此外,题目要注重以解决身边的软件需求为背景,充分使其既包含教学知识点,又能激发学生软件开发的兴趣,达到培养学生软件工程能力的目的。其次,实践指导老师要提供合适的示范案例,并不断地引导学生向正确的方向前进。由此,在课程设计的准备阶段需要对为完成设计所需的基本知识进行明确且扼要地讲透。这样学生在遇到困难时,才知道行进的方向而不至于迷茫和不知所措!在课程设计中,要使学生明确课程设计的要求,并尽快地掌握工程的基本方法和使用工具的基本技能。同时,应尽量使学生独立地解决设计中所遇到的问题,而教师则需要对学生进行全程的指导和监督。再次,应确定合适评价标准,客观考核学生的学习效果。主要方法是以学生完成课程设计的情况来评价学生的学习效果,要求各课程组定时汇报开展的进度和情况,并及时地对各阶段性成果进行评价。
三、课程设计的教学实施
根据实践教学的具体要求,对课程设计与科技竞赛相结合的教学方法开展了研究,并总结出该方法的大致流程如图2所示。其基本指导思想是以案例示范为核心,不断地引导学生对其选定的课程设计进行改进,使其能满足掌握需求分析、软件设计与实现以及测试的基本技能,并把不断改进贯穿到整个设计中。由此,课程设计应从课程设计准备,精选小项目案例文档示范,课程设计题目的选定,课程项目的设计与改进,教师和学生一起对设计结果的评价与改进进行精心地组织。因此,准备阶段就是对训练内容所涉及的工程知识进行精炼概括与总结,使学生知道如何去应用这些知识。此外,示范的项目案例要进行精心的选择,使其能够覆盖课程设计实践教学要求,又要精干有效,易于参照与模仿学习,切忌过于庞杂。教师应把课程设计准备知识与项目案例进行参照讲解,让学生彻底了解训练的要求。在题目的选择上,可以适当地提供一些精选的小应用软件题目,让学生参照选择或根据生活经验自拟题目。并在项目设计中进行全程的监督和引导,并随时指出其设计和参照示范项目和实践要求的差距。对各阶段结果,应组织一些志愿学生和做得好的学生对各阶段结果进行评价并给出改进建议。如此不断地迭代改进,能够使学生较好地掌握软件工程的基本技能,并巩固对应的软件工程理论知识,从而取得举一反三的示范效果。这样就能够使学生理解并掌握一些基本的需求获取与分析、系统分析与设计等软件生命周期的技能,并学会软件工程规范文档的编写与应用。
在与科技竞赛相结合的问题上,可根据学院、学校和省市以及全国举办的一些科技竞赛题目来进行课程设计。通过小组成员的共同努力,把课程设计完成的作品,加以整理、改进并完善作为参赛作品,这样参赛作品往往在各类软件竞赛中具有较强的竞争力。而且,获奖对于学生在就业市场上信心的形成具有巨大的影响力,而且对于他们今后走向社会,对自己的发展定位有着较好促进和帮助作用!
总之,实践教学的目的是通过软件工程课程教学的软件知