摘要:阐述了在高职软件工程教学中采用项目驱动的软件工程课程教学模式的必要性和合理性,对项目驱动的高职软件工程教学模式进行了设计,还介绍了该教学模式下的考核方案,最后指出了为完善该教学模式需要进一步解决的问题。
关键词:项目驱动;软件工程;教学模式
中图分类号:G712文献标识码:A文章编号:1009-3044(2012)24-5828-02
软件工程是用工程、科学和数学的原则与方法研制、维护计算机软件的有关技术与管理方法[1]。其研究范围十分广泛,既包括软件开发中的方法、技术,也包括软件开发工具及软件项目管理等[2]。
软件工程课程是高职院校计算机软件专业的核心课程之一,它对学生多方面的专业能力养成起到了重要作用,如系统分析设计能力、编程能力、沟通协作能力、软件项目管理能力等。该课程的教学效果直接决定了学生能否胜任毕业后的软件开发工作。这些都对软件工程的授课提出了很高的要求,但这一要求与高职软件工程课程的现实授课情况有较大的差距。该文将探讨项目驱动的高职软件工程课程教学模式在高职软件工程教学模式中的应用,以期为提高高职软件工程教学效果提供可行方案。
1采用项目驱动的高职软件工程课程教学模式的必要性和合理性
虽然目前各高职院校软件专业普遍开设了软件工程这门课,但授课效果不尽如人意,这其中很大一部分原因在于课程教学模式不合理,主要存在如下问题:
1)教学以讲授理论知识为主,且各个知识点缺乏有机联系,学生难以对各知识点有深刻的理解。
2)实验多为单一的工具实验,且为单人完成,学生难以通过实验培养软件工程要求的核心能力。
3)教师对软件项目管理的介绍较少,且对于这一部分缺乏有效的实验环节,故学生难以掌握软件项目管理的技能。
要解决以上问题,需要对课程教学模式进行改革,完全颠覆以往传统的软件工程课程教学
模式。经过教学实践,笔者认为,采用项目驱动的课程教学模式是一个合理、有效的举措。项目驱动的课程教学模式是指用一个完整的、真实有效的软件项目的开发过程贯穿、牵引软件工程课程的整个教学过程,该软件项目的开发是以学生为主体,在教师指导下完成。
众所周知,软件工程中最重要的原则是工程化原则。传统的教学模式由于缺乏真实的项目来驱动,各理论知识点、实践技能点之间缺乏有机的联系,学生不可能通过课程学习掌握工程化原则所需的技能。而引入项目驱动的教学模式后,将众多的知识点和技能点融合在一个完整的软件项目开发中,开发一个软件项目的过程基本囊括了软件工程化所需的绝大多数知识和技能目标。
特别是,软件项目由多名学生组成项目组,分工合作完成,这极大培养了学生的沟通合作能力,而沟通合作是工程化原则所要求的重要能力。
此外,由于学生要完成真实的项目,且有时间、成本、质量上的制约,故需要掌握软件项目管理的众多技能,而项目管理亦是工程化原则所要求的重要能力。
所以,项目驱动的教学模式能有效地解决上文中列出的当前软件工程教学中存在的几个问题,或者简单地说,项目驱动的教学模式有利于培养学生在软件开发过程中应用工程化原则的能力,亦即达成软件工程课程的核心目标。实际上,项目驱动的教学模式与当下流行的CDIO工程教育理念的“做中学”的精神是十分类似的。
总的来说,在高职软件工程课程教学模式改革中,采用项目驱动的课程教学模式是合理的。
2项目驱动的高职软件工程教学模式的设计
项目驱动的高职软件工程教学模式包括课堂教学环节、实验环节、实训环节三个有机组成部分。对该三部分详细介绍如下。
2.1课堂教学环节
虽然项目驱动的教学模式强调以学生为主体来完成项目,但是考虑到高职学生的自主学习能力稍显薄弱,以及软件工程课程本身的复杂性,为了提高教学效率,让学生能尽快掌握众多的知识目标和技能目标,课堂教学环节仍是不可缺少的重要教学环节。课堂教学环节一般应采用一体化教学,在机房进行。教师应从来自合作企业的众多项目中精选一个项目作为主教学案例贯穿课堂教学的始终,这可以有效避免过去教学中众知识点和技能点分散、缺乏有机联系的问题,让学生系统、全面地掌握软件工程的各知识和技能目标。
教师还可在课堂教学的不同阶段根据需要适当补充一些案例,如在讲授人机界面设计时,可在主教学案例的基础上补充一些网站或应用系统作为案例,引导学生对之进行分析、评价,提出改进方案。
主教学案例的选择应特别慎重,应是贴合实际、难以适中的,且有一定的规模,能基本覆盖本课程的所有知识目标和技能目标。主教学案例是来自合作企业的项目,但教师必须结合教学的需求对其作适当的调整和裁剪。这对教师驾驭项目的能力提出了较高的要求。
值得注意的是,主教学案例对应的项目与该文所说的“项目驱动”中的“项目”不是一回事,后者是以学生为主体,主要是通过课堂外自主学习以及实训环节来完成,其时间跨度为整个学期,各项目组学生在学期初就选定项目,在学习软件开发相关阶段的知识和技能的同时完成选定项目的初步开发,在实训环节再做最后的一些调整和优化,这将在后文中加以详述。
课堂教学是以主教学案例为主线进行,但最终目的并不是让学生掌握该案例对应的知识和技能,而是通过案例的深入学习,为学生自主进行选定的目标项目的开发奠定坚实的基础。所以可以这样认为,不管是课堂教学环节、实验环节(其作用是帮助学生掌握教师在课堂教学环节讲授的知识点和技能点,将在后文中介绍),还是实训环节,都是为学生自主完成选定项目的开发而设置的。用项目组选定的目标项目的开发来驱动所有的教学环节(包括课堂教学环节、实验环节和实训环节),这就是项目驱动的软件工程的课程教学模式的实质。
2.2实验环节
实验环节是课堂教学环节的重要补充,实验环节的作用是帮助学生掌握教师在课堂教学环节讲授的知识点和技能点。这里所说的实验主要是指章节实验,章节实验以验证型实验为主,还包含少量综合型和设计型实验[3]。并不要求实验环节以一个项目作为主线来进行。实验环节的内容可由教师根据教学需要灵活安排,应注重培养学生的独立思考能力和解决问题的能力。
实验环节与课堂教学环节都是在机房即一体化教学环境中进行,可以很方便地进行切换。一般说来,如果讲授的某技能点比较简单,教师可压缩课堂教学环节的时间,以实验环节为主;相反地,若某技能点比较复杂,课堂教学环节的时间则应相应延长。但应做到对所有的技能点,都有实验环节作支撑。
实验环节应该规范化,要通过实验任务书来规范和指导学生的实验过程,实验任务书应详细列出实验学时、实验目的和要求、实验任务、实验方法和步骤、应提交的电子(或纸质)文档等。
2.3实训环节
实训环节安排在学期靠后,以一个学期16个教学周为例,可将14周左右时间用于软件工程的课堂教学环节、实验环节,2周左右用于实训环节。各项目组在实训环节最终完成学期初选定的软件项目开发的全过程。
值得注意的是,表面上看,实训环节时间很短,但实训环节对应的软件项目的开发过程其实在学期初就已经开始了。在学期初,教师就从来自合作企业的项目中挑选3~4个项目作为备选项目,这些项目难易适中,规模与主教学案例对应的项目相仿,或比后者稍小。学生自由组合成5~6人的项目组,从备选项目中选择其中一个项目来完成。教师可对项目组的成员进行适当调整,确保每个项目组都有能力较强的学生和能力一般的学生,有顺利完成项目开发全过程的可能性。
在课堂教学和实验环节的每一阶段,项目组在学习教学案例的相关知识、技能点的同时完成选定项目的相应阶段的开发工作。比如说,教师在讲授UML建模之后,各项目组就会尝试对选定项目进行UML建模;又如教师在讲授使用某种工具对软件进行功能测试后,项目组会尝试对选定的软件项目使用该工具进行功能测试。这些工作主要是在课后完成,即项目组成员在充分掌握教师讲授的该阶段开发对应的相关知识点和技能点后,有针对性地利用图书馆或电脑查阅一些资料,再利用项目组成员自己的电脑来完成选定项目的相应阶段的开发工作。
到课堂教学及实验环节结束的时候,各项目组的项目开发已经基本结束,但为了给各项目组创造一个集中实践、交流的环境,实训环节是不可缺少的,只是这个实训环节不是一个严格意义上的实训环节,因为项目开发的大多数工作都已在之前完成。在实训环节,各项目组经过了几乎是一个学期的学习和实践,完成软件项目开发的各方面能力已经比学期初有很大提高,对选定项目的阶段性任务的解决方案或成果文档可能会进行一些调整,还有可能对软件功能进行进一步的扩充及对系统性能进行进一步的优化,又或是通过更合理的测试方案发现软件系统中更多的问题并加以纠正等等。以上这些均是在实训环节中可做的工作。此外,项目组的所有成员可以通过集中的实训环节充分交流意见、取长补短、共同提高。
在实训环节的最后阶段,应组织项目验收,在项目验收之初,每个项目组应提交项目的各种文档资料,项目验收首先由各项目组的组长向教师及其他项目组介绍展示项目的整体功能及特点,特别是展示有创造性的工作成果,然后项目组中每位学生都应陈述和展示自己所做的具体工作,最后是项目答辩,教师以及其他项目组的学生可对该项目进行有针对性的提问,项目组成员负责解答。教师根据每位学生的工作成果质量和答辩情况给出综合评分。
3项目驱动的高职软件工程课程教学模式的考核方案
采用项目驱动的软件工程课程教学模式后,考核方案也应做相应的调整。可采用如下的考核方案:出勤和课堂表现占10%,项目评分占40%,平时实验和作业完成情况占20%,期末考试占30%。
其中,对学生实践能力的考核应主要放在项目验收和平时实验考核中进行,而对学生理论知识的考核则应主要放在期末考试中进行。
4结束语
教学实践表明,项目驱动的高职软件工程课程教学模式收到了较好的教学效果,学生学习该课程的积极性明显提高,利用软件工程的原则进行规范的软件开发的能力大大提高。但为了收到更好的教学效果,在采用项目驱动的高职软件工程课程教学模式时,还有大量的工作要做。如,教师应建立具备一定规模的教学案例库,才能在软件工程各阶段的教学中更加深入浅出、收放自如;又比如,为了让学生完成的软件项目既贴合实际,又难易适中,需要教师在选择项目、裁剪项目上下功夫;而且软件工程是一个飞速进展的学科,因此教师在选择教学案例和供学生完成的项目时,应注意及时调整,以融入最新的理论知识和技能目标。
参考文献:
[1]齐治昌,等.软件工程[M].北京:高等教育出版社,1997:7.
[2]曹薇.高职院校软件工程课程改革探析[J].高教论坛,2008(2):134-136.
[3]李彤,赵娜.基于CDIO的软件工程国家精品课程建设[J].计算机教育,2012(1):14-19.