软件工程的重要性已经逐渐被大多数软件开发企业所承认.成功的软件项目除了技术、工具等因素之外,更多的依赖于一个好的软件工程方法和过程.好的软件工程方法和过程,带来的是更低的风险、可控的管理和较低的开发成本.
正是基于大家对软件工程重要性的清醒认识,如今大量的软件开发企业在招聘时强调考察应聘人员对软件工程的了解和掌握程度.于是各大软件学院也纷纷加大了对软件工程这门课程的重视,以适应企业新的需求,培养出符合企业要求,深受企业欢迎的合格软件人才.
然而在传统的软件工程教学中,强调按部就班的理论教学,而伴随着以程序设计为引导的编程实践活动通常是以学生个体为单位进行的,学生并没有真正的机会去理解和融会贯通这些从事软件开发工作所必需的方法和技巧.
而且在这样的情况下,学生不仅无法了解团队合作的原则和技巧,所经历的实践活动和他们将要在企业里经历的也是大相径庭.
1 实践驱动 激活教学.
当前比较流行的软件工程教学方法,是在授课之后以小组的形式进行验证式或考查式的软件开发,目的是让学生对软件工程过程有一个亲身体会.但是最终的结果往往是,一组学生把任务完成了,得到的仅仅只是一个可执行程序和一堆源代码,并没有真正实践软件工程的过程.也就是说,在实践活动中,仍然是基于任务的思维方式而不是基于过程的.学生没有在获取知识后加以实践运用,导致对知识掌握不牢,所以有些学生反映软件工程这门课学完就忘了,并没有对今后的软件开发活动造成实际的影响.
针对这种情况,采取“实践驱动”的方法,将实践嵌入到教学中,把实践活动提升到与课堂教学同等的地位,用实践活动驱动课堂教学,边练边学,边学边教,让实践活动和课堂教学同步进行,贯穿软件工程实践领域,包括制定计划、需求分析、软件设计、程序编写、软件测试等整个生存周期.
为了提高教学效果,将实践活动提前到授课之前开始,而不是授课之后的简单验证或者考查,力图让学生在思考中进行实践,带着问题听课,充分激发学生学习的主观能动性,同时让学生在听完课后有豁然开朗的欣喜感.总而言之,就是让学生练而有惑,学以解惑.
在课程刚开始的时候,把学生酌情分成若干人为一小组(通常以 6 到 8 人一组),提供一定数量的课题做为选择,课题不应该太复杂,毕竟是软件工程课而不是编程课.每个小组根据自己的喜好选择一个课题.第一堂课,通常会向学生讲授软件工程概论,软件生存周期的六个步骤.课后,可以要求学生开始自己的课程实践.这时候学生虽然知道软件生存周期的第一个步骤是制定计划,却又不知道从何下手,如何制定计划以及计划的内容.这种情况下大多数学生会对教材的相应章节进行学习,并在课堂上积极提问.于是将课堂教学的效果最大化,最大程度地聚焦了学生的注意力.
学生先在实践中遇到疑难,然后在课堂上提出疑难,最后在实践中解决疑难,这样才能保证学生牢固掌握所学到的知识,并能在今后的学习生活中加以运用.
2 针对企业,模拟实战.
仅仅强调以课程实践驱动课堂教学,还远远不够.
比如就曾有学生说:“到底为什么要做需求分析呢,我在项目中并没有觉察到需求分析的作用”.也有学生觉得制定计划很没有必要,可有可无,相应的文档也处理得很简单.
相对于软件设计和程序编写来说,其他步骤都受到了一定程度的忽视.这又间接使软件工程课变成了一门加强版的编程课.
然而在企业的现实应用中,情况并非如此.制定软件项目计划,做好需求分析,恰恰是决定一个项目成败的至关重要的因素.软件工程课讲授的知识应该是面向企业,面向实战的,不是纸上练兵,也不应该是闭门造车,应该让上过这门课的学生都知道,实际企业中的软件工程是什么样子的,他们以后参与的可能是一个什么样的过程,而不是上完这门课以后只是会用 Rational Rose 画几张用例图、活动图.
针对这种情况,采取“模拟实战”的方法,在每个软件生存周期的阶段,老师将模拟不同的角色来推动课程实践向实战靠拢.在制定计划阶段,老师将担任“上司”的角色,对风险分析,开发计划都要进行评阅,如果此阶段进行得不成功的话,老师可以对此课题喊停,该小组将不得不另选一个课题重新进行课程实践.在需求分析阶段,老师将摇身一变为“用户”,各小组需要制定相应的调查纲要,对用户的需求进行调查了解.同时仍然拥有“上司”的身份,各小组需要向上提交一份可行性研究报告,以决定该课题是否继续.在软件设计阶段,老师将以“用户”的身份对需求随时进行调整,让学生充分理解迭代的过程,这时候过程不规范的小组将深受其苦.在其后的编程和测试阶段,老师都将以“上司”的身份参与实践,使实践过程受控.
每个小组都需设一名组长,并将小组的集体讨论贯穿整个课程实践,同时进行讨论纪录,附在文档之后.这样能使小组所有成员对开发过程有一个清晰一致的认识,从而实现整体能力的提高,获得更佳的效果.这对强调团队精神的软件开发尤为重要.
参考文献:
[1] 熊川武.学习策略论[M].江西教育出版社,1997
[2] 尹俊华,等.教育技术学导论[M].北京:高等教育出版社
0引言.软件工程专业的课程体系可以分为理论系列、系统系列、工具系列、工程系列、管理系列及其他课程共6个系列.课程体系的总体结构体现了课程之间的纵横关系,考虑到了授课内容的阶段性、连贯性和完整性.横向各系列课程之间交叉的内容较少,而纵向同一系...
在十几年之前,高校还没有进行扩招,高校的学生数量还比较少,学生的素质也相对较高,学校的学习氛围比较浓厚,学校的计算机教学工作开展得比较顺利。随着高校的扩招,学生的数量越来越多,学生的综合素质比以前有所下降,学习氛围也不再像以前那样浓厚。...
随着科技的发展以及现代化教学手段的不断地完善,我国高校在计算机教学方面的力度不断地加强,力争为我国培养更多优秀人才。在计算机教学中,传统教学方法存在许多弊端,影响教学质量。本文基于计算机教学特点,分析了高校在此方面存在的一些问题,并针对这...
0引言随着科技的发展和进步,计算机课程已经成为高等院校学生的必修课程。鉴于在计算机教学中,电脑是不可缺少的教学工具,所以通常情况下是在多媒体教室利用互联网进行教学的,但计算机这门课程是一门多动手操作的学科,这使得操作能力很差的学生对课程的...
一、引言中职学校的职责是将学生培养成应用型的技术工人,而教学目标是学以致用。项目教学法这种教学方式提倡教师以及学生共同参与,教师起到导师或者引导者的作用,对情境进行设计并分析,让学生对有关知识进一步了解,并且设定任务,引导着学生顺利完成。...
当前在中等职业学校中,在计算机教学上并不是非常完美,就学生方面而言,学生的自主学习能力比较差,过多的依赖于老师和家长,在学习过程中自己无法独立自主的学习,这给计算机的学习带来了一道道的障碍。那么要想解决这个问题,就要从教师,学生,家长三个...
计算机专业目前已经在教育体系中发展了二十年,并且也培养出来了大量的人才,为社会和国家做出了非常大的贡献,但是现在,在计算机教学的时候还存在很多问题,老师本身的教学水平很难跟上时代发展的需要,并且由于教学比较枯燥,很多学生根本没有兴趣学习计...
随着社会文明进步和科学技术的迅猛发展,知识总量的激增和信息传播方式的变化,高等院校必须改变传统的教育方式和培养模式.工科院校作为培养工程师的摇篮,要求它所培养的学生不再是传统意义上的工程师毛坯,而应该是具备现代工程意识、熟悉工程背景与环境、掌握...
0引言.随着知识经济与科学技术的发展,高等学校以传承知识为主的传统教育模式正向强调知识、能力与素质培养的创新教育模式转变.大学生创新能力的培养作为高校创新教育的基本价值取向,成为当代高校的重要任务,创新能力的培养对现行的高校教学管理提出了新的...
软件开发能力是计算机相关专业学生从业的基本能力之一,其培养需要通过一系列理论学习和实践环节的锻炼逐步形成.如何加强理论和实践课程之间的联系,缩短学生软件开发能力培养的周期,是一个非常现实和重要的课题.本文在分析课程群内涵的基础上,提出一种以软件...