关键词:软件工程教学改进实践
中图分类号:
1、引言
提起软件,在当今社会人们并不陌生,正是由于软件的发展,使计算机应用逐步渗透到社会生活的各个角落,使各行各业都发生很大的变化。这同时也促进人们对软件的品种、数量、功能和质量等提出了越来越高的要求。然而,软件的规模越大、越复杂,人们的软件开发能力越显得力不从心。于是,人们开始重视软件开发过程、方法、工具和环境的研究,软件工程应运而生。
“软件工程”主要介绍软件工程的基本原理、开发方法和开发工具,通过本课程的学习,使学生了解和初步掌握开发1个软件项目所使用的方法和工具,以及“软件工程”的发展过程和发展趋势,为进行软件开发打下1个良好的基础。
2、课程特点
1。课程综合性强。
软件工程与其他计算机课程,如程序设计语言、数据结构、编译原理、数据库以及操作系统等课程都是相互作用和影响的。在1定程度上说,软件工程讨论的是在实际开发当中综合运用这些课程中讲过的理论和方法,将这些课程的理论和方法放在1个统1的目标下,这个目标就是在有限的时间及预算条件下,开发出高质量的令用户满意的软件。
2。课程内容不断更新。
软件工程课程的教学培养目标应该以市场需求为导向,使课程培养的学生真正能够在软件行业中发挥作用。因此,在授课时,我们不能拘泥于教材内容的限制。在讲解基本原理、基本概念和基本方法的同时,介绍1些新方法、新技术。这样,有助于开拓学生的视野和培养创新意识与开发能力,使他们走向社会后不至落伍。
3。课程的实践性强。
软件工程是1门实践性很强的课程,它是各种开发经验的总结与提炼。在学习过程中不但应注重概念、原理、方法和技术的掌握,更应注重方法、技术的实际应用。学习软件工程必须投身于软件开发的实践,才能真正领悟软件工程的精髓。
实际教学当中,这门课的教学效果往往不是很理想,教师觉得这门课教起来较困难,学生学习中多数也觉得枯燥无味,很难达到较好的教学效果或获得较强的实践能力等预期目的。如何改善?结合软件工程的课程特点,笔者认为可以从以下几个方面来改进《软件工程》的教学质量。三、软件工程教学改进的内容和方法
1。教学过程引入实际案例
软件工程课程涉及面很广,如果不结合实际工程项目进行教学,很难把教学内容教授给学生。因此,在教学过程中引入案例,将复杂抽象的概念用具体生动的实例进行诠释,能够收到事半功倍的效果。例如,在授课时教师可结合1个“学校教材购销系统”实例,给学生介绍具体的开发过程和方法。
另外,学校还可邀请领域内有实际经验的资深程序员,针对软件工程中具体理论和方法在实际开发中的应用,在课堂上和学生进行面对面讲座,深入浅出地作讲解。这样,学生可以更加熟悉、掌握软件开发的过程。
2。组织课堂讨论,形成教学互动
我国有句名言:“授人以鱼,不如授人以渔”。学生是教学活动的核心,教师要利用合适的方法调动学生的积极心理和参与意识,改变传统的教师高高在上的教学方式,让学生参与教学过程,有机会发表自己的看法。
比如在讲授需求分析这章内容时,可结合“学校教材购销系统”这个案例,要求学生按照软件工程教学的思想和方法认真做好需求分析。在实施过程中,首先由学生独立思考,给出解决方案。然后在课堂上,组织学生进行讨论,分析各自解决方案的优劣,并进行综合。最后由老师进行总结和评价,指出该案例所涉及的理论知识及其应用方法,就学生提出的问题进行解答。这样通过组织学生讨论,可使学生进1步理解和掌握课程内容的方法和步骤,使抽象的知识变得看得见,用得着,大大激发了学生学习的兴趣和自信。
3。加强实践环节
从本质上看,软件工程的实践性和综合性是其他相关课程难以比拟的。因此,必须结合设计项目和实际应用加以施教,才能取得良好的教学效果。那么,在把握教学进度的同时,必须及早安排好课程设计,让学生同步开展课程设计。这样,理论课讲完了,课程设计也基本结束,学生们能从理论和实践的结合上,加深对软件工程知识难点、重点的理解,进1步深刻理解软件过程和系统消化理论知识,训练项目设计的思路,锻炼实际开发能力,培养严格规范的项目开发方法和步骤,体验文档编写整理、阶段性评审总结以及软件测试等各个方面的工作流程,直接培养了学生从事实际开发的能力。
四、结束语
在教学中,我们还应根据学生的具体情况,因材施教。总之,通过不断改进教学,使学生能更好地理解、掌握知识,运用所学服务社会。
参考文献:
[1]史济民等。软件工程。北京:高等教育出版社,2002。12
关键词:软件工程;教学研究;学生为主体
软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及工程概论、项目管理、程序设计语言、面向对象的需求、数据库、软件开发工具、系统平台、标准、设计模式等,是一门综合性很强的软件课程,在计算机教学体系中占有十分重要的地位[1]。上世纪90年代以来,计算机科学蓬勃发展的同时,我国计算机软件行业也进入了快速发展时期。软件行业呼唤计算机教学方面的改革,希望走出校门时,新一代软件人才能在更好掌握软件工程理论知识的同时拥有一定的实践经验。这就对软件工程这门计算机专业核心课程提出了更高的要求。目前,软件工程课程的教学改革已经在各高校开展多年,其中引入案例教学,解决理论与实际应用衔接的问题[2];以及引入项目式实践教学,提高学生动手能力和感性认识等[3],都是比较有效的教学方式。但对于如何以学生为主体,提高学生自主学习软件工程的教学方式,目前还没有系统的经验总结。本文从软件工程教学存在的问题开始,介绍在五邑大学计算机学院开展的以学生为主体的软件工程教学,讨论提高软件工程课程教学质量的途径和方法。
1软件工程教学的困难
要提高软件工程课程的教学质量,还存在一定困难。
从软件工程的学科发展上看,软件工程的学术研究和教学过程本身有着不同的动作机制,学术界的最新成果和正在进行的软件设计很难直接相互渗透。另外一方面,从学生的认识结构看,在软件工程的教材中添加大篇幅的工程经验,虽然可以一定程度地解决学生缺乏实践经验的问题,但这些内容并不能完全构成学生对软件工程的认知结构。教材和课程大纲中的学术成果和经验理论,是知识的结果,不是知识的形成过程。经典理论不能代替学生从动手实践中获得自我认知的能力。软件工程教学不能离开实际的体验,否则就容易造成类似人文学科中学术成果和经典阅读脱节的情况[4]。
因此,在传统的软件工程课程中,由于课堂教学方式具有局限性,学生学会了软件工程的原理和方法,但不会在实践中运用所学知识解决实际问题。引入项目式教学后,课本当中的例子多数是为概念和原理而设立的,无法在规模和复杂程度上与真正的软件开发项目相提并论。这就导致学生缺乏对软件工程实践过程的感性认识,学完课程后仍不知道应如何着手一个软件项目的开发[5]。而实践又是掌握工程科学的最佳方式。对于不断发展的软件理论,其中的知识与经验只能通过实践者自己亲身执行后,才能被理解和掌握。
为了提高软件工程课程的教学质量,从根本上提高学生的学习兴趣,五邑大学计算机学院在近年的软件工程教学中,强调以学生为主体,实施学生自主体验的教学改革。目的就是提高学生对软件工程经典理论的感性认识,不让项目式的实践教学流于形式,使学生在完成软件工程的学习后,能适应软件行业的工程化需求。
2以学生为主体的自主体验式教学设计
为了体现学生自主体验的过程,我们在软件工程的课程教学大纲中提出了以学生为主体的教学方案,其目的是使学生能主动投入到软件工程的学习中,使教学内容能与学习体验更紧密地结合。同时,在实践教学中,软件工程的教学设有学生自选项目的实践环节。新的教学设计,关键就在于引导学生自主参与项目式教学。
为了强调学生自主体验,该课内实践的选题范围要求来源于五邑大学校内的具体软件需求,并将软件开发的工作量控制在一定的范围之内,使项目实践内容能覆盖整个软件生命周期。最后,参考国家软件开发的标准文档要求,要求学生在各阶段完成后提交阶段性书面总结。具体地,以学生为主体的教学改革主要包括以下5个方面。
2.1提出注重互动的理论教学
互动式的理论教学首先要求教师要少讲,把学习的机会留给学生。理论的学习和掌握依然是项目式教学的基础,这些经典公式和行业标准通常是学生最不容易用心学习的部分,而引入互动式的课堂理论教学可以较好地解决这一问题。传统的软件工程教学大纲存在项目实践方面内容的缺失,而补充了项目式教学后的软件工程,往往更像是一种“基于项目活动的研究性学习”,这就使教师更注重项目经验的传授。其实,“最好的教学是对话式的教学”,教师应该从自身开始改变观念,不再一成不变地重复教学。学生通过与教师的对话式交流,可以在互动中解决项目中的实际问题,完成教学大纲中要求的理论学习部分。
2.2要求学生完成真实可见的软件项目
在课内实践中,教师要求学生完成一个来自校内的实际软件需求,这个软件的需求通常是学生可以在日常生活中直接感受到的,这样可以提高软件开发中需求调研的真实性,更有利于增强学生的自主体验。在以往的教学中,我们没有提出这样的选题范围要求,而学生一开始对软件开发的理解又有限,因此选题往往是教师熟悉的领域,或是学生从网络上找到的参考题目。结果是部分学生在实践中积极性不高,还出现有学生照搬参考书和网络上已有案例的情况。新的实践选题范围要求必须来源于校内实际需求,这可以更方便教师控制实践项目选题与某些参考书中案例之间的重复度,也加强了学生调研工作的真实性。
2.3在理论与实践教学中开展深入的专题讨论
专题讨论的前提是学生的课外学习和总结,讨论时的主体应该是学生而不是教师。长期以来,在软件工程的理论与实践教学中,基本是教师单向传授,教师讲学生听,教师布置课题学生完成,学生离开了教师就不知道干什么,不利于提高学生的综合素质。因此,在软件工程教学时,教师必须要少讲,目的是要把实践过程留给学生去体验。软件的开发过程并不是一成不变的,每次软件开发都是对软件工程系统框架进行的一次创造性实践,真实的开发过程往往不都能完全遵循教科书中建议的软件开发流程。因此,在学生的课内实践中,教师首先让学生通读教材和讲义,然后鼓励学生根据课程学习的要求去寻找来自生活中的实践项目,也就是自己找到想解决什么问题,并进一步阅读课本和参考资料,在教师、学生之间开展专题讨论,用问答和辩论的方式完成理论学习和项目体验。另外,专题讨论的题目并不需要预先定好,而是应该在项目实践的进程中挖掘出有讨论必要的题目,同时鼓励学生在讨论前进行充分准备,查阅相关的期刊和论文,并在讨论后进行总结。
2.4注重项目实践中对软件项目管理的体验
软件工程是一门锻炼学生综合能力的课程,工程实践性非常强,而工程总离不开项目管理。学生一开始知道课程中包含项目实践后,往往最先关心应该在软件开发中使用什么技术和工具。但软件工程的实践教学并不应把实践侧重于软件开发技术的应用,更不应指定实践项目使用的开发技术。指定开发语言和开发工具容易使学生混淆软件工程课内项目的实践方式和其他专业课,如数据结构、数据库、操作系统和Web体系结构的课内项目实践。软件工程教学的目标应是在讲授软件工程经典理论和工程经验的同时,让学生体验软件项目的开发过程,提高对软件项目的整体把握能力,增强软件项目管理理念。因此,教师应当引导学生把注意力集中在软件工程的知识框架和对软件过程的实践上,并在实践环节适当增加如成本控制、进度管理、风险分析以及人员管理等有关软件项目管理的体验。
2.5灵活的成绩评价方式
学生完成软件项目的分析、设计、编程和测试后,可以在课程答辩中展示已掌握的知识和在项目中实现的能力锻炼。在课程答辩中,学生可以发现其他项目小组的优缺点,教师也可以在答辩过程中提出项目实践中的不足之处,帮忙学生找出差距,弥补不足[6]。
3教学效果
五邑大学计算机学院在施行新的旨在激发学生自主体验的教学方法后,学生普遍反映在学习软件工程更有兴趣的同时获得了更多的实践经验。新的选题范围使学生不出校园即可以做软件项目的需求调研,大大提高了学生参与实践的积极性,也激发了学生软件开发创作的热情。选题范围的缩小反而使课内项目选题的多样性得以实现,涌现出一批来自学生视角的新课题,如AP07064班的选题《宿舍网上自主充电系统》,以及AP07102班的选题《学生饮水管理系统》,都有一定的实际应用价值,也获得了校内有关部门的关注。客观上,学生在软件工程课程中的成绩稳步提升的同时,对教学的评价也不断提高,2009-2010学年软件工程的课程评价超过了9.2分,满分为10分。
4结语
目前,软件行业正在飞速的发展过程中,软件工程教育的理念、教学形式也处于发展阶段。学生为主体的教学形式作为一种尝试,运用于软件工程的课内实践环节中,取得了一定的教学效果。如何立足于我国软件行业的现状、特点,采取相应的教学手法,提高软件工程的学生学习体验,提高教学质量,值得我们不断探讨和研究。
参考文献:
[1]姜湘岗,章晓莉.软件工程课程教学研究与研讨[J].计算机教育,2010(5):112-114.
[2]潘娅.软件工程教学方法探索[J].高教研究,2006(2):28-30.
[3]温颖,周昕.项目教学法在软件工程教学中的应用[J].科技信息,2010(24):206-207.
[4]李翠叶.重建人文学科的文化实践机制[J].文教资料,2008(15):162-164.
[5]黄芳.基于项目实践的软件工程本科课程教学模式探讨[J].湖南社会科学,2009(5):174-176.
[6]胡洋,苏琳.Web软件时代的《软件工程》课程改革与建设[J].中国成人教育,2010(5):111-112.
Student-orientedCourseDesigninSoftwareEngineering
LINZihui,HEGuohui
(CollegeofComputerScience,WuyiUniversity,Guangzhou529020,China)