日期:2023-01-24 阅读量:0次 所属栏目:软件技术
0 引言
近年来,应用型IT人才的社会需求日益增长,社会、企业急需高素质、具有较强实践能力的IT工程师人才。在国家“十二五”发展规划纲要中,将软件行业定位为我国国民经济中重要的战略性新兴产业。教育部提出了“卓越工程师教育培养计划”(简称卓越计划)。该计划旨在培养造就一批创新能力强、适应经济社会发展需要的高质量各类型工程技术人才,为国家走新型工业化发展道路、建设创新型国家和人才强国战略服务,对促进高等教育面向社会需求培养人才、全面提高工程教育人才培养质量具有十分重要的示范和引导作用。
“卓越计划”的提出获得了以培养合格IT工程师为主要目标的高校计算机学科的高度关注和积极响应,各高校计算机专业、软件工程专业纷纷开始针对包括教学理念、教学大纲、教学目标、教学内容、教学方法、考核方式等在内的教学体系改革探索。作为计算机课程体系中唯一讲授工程化、系统化、可量化的设计实现软件系统的课程,软件工程是高校计算机学科教学改革的重点内容。
软件工程是一门理论与实践并重的课程,具有综合性、实验性极强的特点,旨在提升学生的编程能力、分析与设计能力、工程素养及团队协作精神,为后续的系统分析与设计、毕业设计等课程乃至成为一名合格的软件工程师奠定良好的理论、技术及工程基础,因此该课程的教学效果对卓越软件工程师的培养起着举足轻重的作用。
1 面向应用型IT人才培养的课程教学中存在的问题
1.1 单纯引入案例教学法,学生未“身临其境”
案例教学法是指在课堂中运用案例进行教学的方式,最初兴起于美国,上世纪80年代进入中国。案例教学法的兴起,改变了传统的“黑板教育”,有利于提升学生分析解决问题的能力,提高教学效果。在软件工程教学改革中,积极引入大量企业优秀案例并纳入日常教学内容中。案例教学法的引入改变了传统教学中知识内容枯燥、陈旧、无法与企业需求接轨等现象,新的、优秀的企业案例为陈旧的知识内容输入了新鲜血液,在一定程度上激发了学生的学习兴趣,活跃了课堂氛围,提高了教学的质量。但是案例教学法的效果很大程度上需要师生角色的转换,并做到“身临其境”,真正的深入案例并体验角色。目前,在软件工程教学改革中,只是单纯的引入案例教学法,课堂更多是为了案例教学而教学,学生处于旁观者的角色。案例教学法的价值在于基于角色的深入体验,软件工程要求学生参与完成一个软件项目从需求分析、设计、编码、测试到维护的全过程体验,“身临其境”的角色体验对于学生对该门过程的把握和理解是非常重要的,这也是案例教学法应用于软件工程课程教学中的价值所在。目前,没有深入案例角色体验的教学法与其本身意义相悖,也失去其应用价值。
1.2 项目实践组队完全自由化,导致两极分化,学生学习兴趣消极
软件工程是一门以编程语言为基础的课程,在软件开发的生命周期中,编程是重要环节之一,因此编程能力的优劣在一定程度上影响学生对该门课程的学习。软件系统的复杂性决定其必须以团队化的模式运作,软件工程实践教学改革中,倡导项目驱动、任务驱动模式,以团体为单位进行项目实践,而项目组队多以学生自由选择的方式进行。在教学实践中,我们不难发现,完全自由化的组队方式容易造成“强强自愿优先联盟、弱弱淘汰被迫联盟”的两极分化。编程能力较强或者人际关系较好的学生容易走到一起优先结成团队,编程能力较弱或个性孤僻的同学“被抛弃”,最后被迫结盟。显然这种组合结果打击了后者对课程的学习兴趣,对学习产生消极影响,基于目前统一的考核标准,后者从一开始就输在了起跑线上;部分教师在教学中基于学生成绩和平时表现所产生的“不对等关注”,也会影响学生对该门课程的学习。
1.3 项目驱动教学模式缺乏引导和监督,项目开发未完全遵循软件开发生命周期过程
软件系统的完成,包括从需求分析、设计、编码、测试、维护。软件工程的“工程化、系统化”决定了软件工程实践教学中必须对软件开发的整个过程加以重视,而非只专注结果。以任务驱动的软件工程实践明确了软件开发的目标,但在教学实践中,由于实践课时有限、团队数量较多、教师精力不足等因素导致缺乏良好的引导和监督,项目开发未完全遵循软件开发的生命周期过程。在实践教学中,学生以团体为单位选择项目,完成项目需求、分析、设计、编码、测试和维护等过程。由于课堂时间有限,更多项目由学生在课余时间完成。但据学生课后反馈,大多数团队由于缺乏监督、自律性较弱、缺乏教师指导等并未完全遵循软件开发生命周期过程。学生拿到项目后的第一反映是如何进行编码而不是需求分析和设计,并未进行深入讨论和思考,甚至一部分团队的需求分析在期末需要提交项目大作业时才开始进行,这显然与软件开发的生命周期过程相违背。
1.4 实践教学重模仿,轻创新
软件工程改革针对长期存在的重理论轻实践的教学弊端,加大了实践教学的力度,这对提高学生的实践技能有明显的促进作用。但是在实践中,往往单纯加大实践教学课时而非注重实践教学质量,结果只是用“教师课堂演练学生模仿”模式代替了传统的“教师讲授学生听讲”模式。这种模仿式教学无法培养学生独立自主分析解决问题的能力,在一定程度上扼杀了学生的创新能力。培养出的学生只能是熟练的技工而非具有创新思维,能够独立分析解决问题的软件工程师。很多学生在课堂上能够熟练操作软件工具,但独立面对问题时,却束手无策。究其原因,在教学中学生缺乏自主学习和思考的过程,只知其然而不知其所以然。
1.5 实践中教学重编码,轻规范
软件工程课程要求学生通过理论和实践学习,掌握软件项目自开发到维护的一般过程,掌握软件开发的传统和最新方法,用软件工程的方法参与软件项目的分析、设计、实现和维护。该课程不仅要求学生在编程能力上的提高,更要求在软件分析与设计的能力、工程素养、团队协作能力上的提升。目前在实践教
学中,学校大都强调系统的复杂性,并以此作为学生实践考核的主要依据,忽视了工程化团队项目中所应具有的工程素养及文档、代码规范。软件开发是一项需要团队协作的系统性工作,优秀的编码能力固然重要,但良好的文档及代码规范也是其保障。
1.6 考核方式重结果,轻过程
教学改革中加大了实践技能在考核中的比重,引起了学生对实践技能的注重,促进了教师对学生实践技能的培养,但实践技能多以小组项目最终成果作为考核内容,在一定程度上造成了重结果而不重过程的现象。软件工程实践的教学目标是要求学生掌握软件开发生命周期的整个过程,目前的考核方式与教学目标的初衷不符。
2 改进举措
为进一步深化软件工程教学改革实践成果,提升教学质量,培养高质量的卓越软件工程师人才,我们基于教改实践中的问题,从教学目标、教学内容、教学模式、考核标准等多方面提出具有针对性、实践性的改进措施,对教学改革方案进行完善。
2.1 多层次梯度学习目标和多级考核标准
在教学目标上和考核标准上,基于先修课程的掌握情况对学生团队进行多层次有梯度的再分组,变传统的单一学习目标和统一考核标准为分层次的目标和多级考核标准。在目标设定上,建议从高到低分为3个梯度,从而实现梯度内目标、考核标准相同,梯度问要求逐步提升,满足不同层次学生要求。
(1)对于第三梯度,以项目系统的完整性和可用性为主要目标和考核标准。
(2)对于第二梯度,在系统项目完整性基础上,以系统项目的复杂性、功能性、文档的规范性为主要目标和考核标准。
(3)对于第一梯度,要求满足系统项目完整性、功能性、复杂性的基础上,着力强调创新性和技术前沿性。
各小组根据先修课程的掌握情况在教师的引导下进行不同层次不同梯度目标选择。每一梯队内的各小组目标及考核方式相同进行直接竞争,并根据排名进行成绩评定。
这种分层次多目标的教学方式和考核标准,满足不同层次学生的需要。第一梯队学生具有较好的基础,较强的编程能力,有利于培养他们的创新能力;第二梯队学生在课堂知识学习的基础上有利于加深知识的扩展;第三梯队学生有利于提高他们学习的兴趣,完成基本的教学目标,为后续课程打下基础。而站在同一起跑线上的同一梯队下的小组竞争,更会促进学生对学习的兴趣,软件工程教改深化体系结构如图1所示。
2.2 以学生为主教师为辅的教学方式
在教学模式上,提出“以学生为主教师辅导为辅”的学生课堂展示教师辅助的教学方式,加大学生自主学习的空间,引导学生多思考和讨论。教师提前公布下一节课的教学内容、学习要点及学习目标,并辅之以丰富的学习资源方便学生课下学习,学生以小组为单位进行学习,互相讨论。课堂主要是学生成果展示,小组间讨论和教师引导学生对出现的问题进行思考。通过学生小组自学的方式,培养学生的自主学习能力和团队精神;通过学生课堂成果展示并进行评比,提高学生对学习的兴趣;教师提出问题学生进一步思考从而提高学生思维能力。这种以学生自主学习为主教师辅导为辅的教学模式提升了学生的学习兴趣,加强了对学生创新能力的培养。
2.3 引入组建监督
此外加大教师在整个开发过程中的监督和引导力度,并创新性地引入组间监督,即在教师作为监督者的基础上,各小组间进行互监督,并以软件需求方的身份进行。以项目案例为基准,引入以其他小组为虚拟的需求方。作为需求方的小组有权根据给定的项目提出自己的“个性化需求”。作为开发方的小组进行需求分析不再是对着文字版的案例进行自由发挥,而是通过深入了解并与需求方讨论进行需求分析和设计。需求方与开发方的讨论需要从项目伊始持续到项目最终完成,需求方需要对开发方所完成的项目情况进行评定并给定意见。这种虚拟需求方模式引入了第三方监督,并对企业软件开发环境进行了一定程度的模拟。对于软件开发的每个团队,既作为开发方又作为虚拟的需求方。开发方在两方监督(教师和需求方)下,将会更加注重软件开发的过程性;需求方在模拟角色的同时,也会对软件开发的整个生命周期过程有进一步体会。
在整个软件开发生命周期中,学生需要深入情景并多次进行开发方与需求方角色转换。在每个角色中,除了与教师沟通外,包括学生个体之间,团队小组内部成员之间,团队之间等多方讨论和沟通,容易获得较高质量的过程体验,潜移默化获取知识并转化为能力。
2.4 过程性考核与综合性考核并重
基于上述教学模式,进一步改革考核体系,把整个考核体系分成2个层次,即过程性考核和综合性考核,过程性考核注重阶段完成情况,综合性考核注重最终结果。
过程性考核需要全程监督,在考核主体上,从传统的教师一人考核转变为“教师引导的学生双向考核”模式。在模拟需求方模式中,每一小组既作为评估方,也作为被评估方。评估方与教师在软件开发生命周期的整个过程中进行监督,由于评估方与被评估方需要在多个环节中需要进行讨论,此外小组的最终成绩除自身项目完成情况外,作为评估方的表现也被纳入其中,使高质量的过程性监督得以保证。
教师在整个过程中,充当引导者和第三方监督的角色。这种基于过程化、双评式的考核方式,加强了整个过程的监督,也增加了项目实践中的趣味性,使得课堂及考核不再是传统的枯燥的讲授和试卷,提高学生的学习兴趣。
在考核内容上,加人代码和文档的可读性。传统教师单一评估模式中,最后只有教师对学生项目成果进行评价,在双评模式中,评估方也需要对项目成果进行评价,并作为考核的内容之一。这种双评模式在一定程度上促使各开发方在撰写代码和文档时,为了使得代码和文档能被对方充分理解,会更加注重文档的规范性。而教师在教学中的进一步引导,将起到事半功倍的效果,帮助学生养成良好的编程习惯。
3 结语
未来我们将进一步关注软件工程的教学改革,理论与实践教学相结合,将理论方法落实到实践教学中的每个环节,积极进行教学效果反馈并进一步修正。卓越计划的实施是一项需要
长期坚持的系统化工程,需要持之以恒的不懈努力以及教学实践的不断尝试和反馈。
参考文献:
[1]关于实施卓越工程师教育培养计划的若干意见[S].教高[2011]1号.
[2]林健.“卓越工程师教育培养计划”通用标准研制[J].高等工程教育研究,2010(7):56-59.
[3]李峰,夏小玲.计算机软件工程专业卓越计划实践教学[J].计算机教育,2013(13):18-21.
本文选自《计算机教育》2014年第8期,版权归原作者和期刊所有,如有异议,请联系第一论文网QQ712086967,我们将在第一时间处理。
本文链接:http://www.qk112.com/lwfw/jsjlw/ruanjianjishu/229668.html