公务员期刊网 精选范文 软件工程课程总结范文

软件工程课程总结精选(九篇)

前言:一篇好文章的诞生,需要你不断地搜集资料、整理思路,本站小编为你收集了丰富的软件工程课程总结主题范文,仅供参考,欢迎阅读并收藏。

软件工程课程总结

第1篇:软件工程课程总结范文

关键词 软件工程教育 角色体验 软件工程知识体系 工程文档

1 引言

软件产业是互联网和新一代信息技术发展的重要基础,软件工程作为一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科,始终是软件产业发展的根基。对于计算机专业人才的培养,软件工程在计算机高等教学中占有重要地位。但是无论从学生、教师还是业界的反馈都可以看出,软件工程教学的实际效果远未达到我们的期望。系统完整的软件工程知识体系建立仍然面临众多挑战,理论与实践结合的创新人才依然难寻,完整严谨和有效的软件工程架构风格依然遥远。作为高校教师,我们必须从软件工程的教、学、研进行深入的研究,探索一条行之有效的教学培养方法。

软件工程是“将系统性的、规范化的、可定量的方法应用于软件的开发、运行和维护,其重点在于软件的分析与评价、规格说明、设计和演化,同时还涉及管理、质量、创新、标准、个人技能、团队协作和专业实践等”。①相比于其他的计算机专业课程,软件工程的教学有很大的不同。软件工程中重要的技术和开发原理来源于应用和实际商业软件开发,之后这些核心技术被提炼和整合形成原则和理论基础而引入课堂,教授给学生。通过软件工程课程的学习,学生需要了解和掌握软件工程的理论、技术和方法,具备作为软件工程师所需的专业能力。优秀的软件工程研究者David Parnas将软件工程计划分成三个阶段执行:(1)首先,详细说明软件工程师可能要执行的一些任务;(2)定义软件工程师需要的知识体;(3)将其实施作为一个培训计划。②③由此可见,软件工程是一门综合性和实践性很强的学科,传统的教学模式和教学方法在软件工程教学中存在很大不足,人为地强调实践或者理论基础无法有效地培养学生的综合技能和水平,从而直接影响了课程的教育质量和教学效果。

软件工程课程必须面向解决实际问题,即如何成功地开发可靠的、可用的、可维护的软件系统,满足用户的要求。这包含了需求分析、规划说明、设计、构建、测试、操作和维护等软件生命周期的各个阶段。目前,软件工程教学主要包含两部分:课堂教学和实践教学。以传统的教师为导向的教学方式为主,实践教学为辅。教师在课堂上讲授软件工程方法、原则、技术等知识;实践教学主要是采用实验课的方式,由学生设计完成一个项目。根据多年教学的经验和我们调查反馈的结果,很多学生在本课程学习时感到茫然和无所适从,理论的东西感觉抽象难以理解,缺乏学习热情和兴趣。针对软件工程课程的特点,我们认真分析调研了课程教学存在的问题,总结分析导致课程教学效果不理想的主要原因如下:

1.1 课程设置安排不尽合理

软件工程是一门涉及内容较多的综合性学科,所教授的原理、方法较为抽象。软件工程中核心的技术和开发原理均来源于实际商业软件开发,经提炼形成原理和方法而引人课堂。目前,大部分高校将软件工程课程设置在大三,对于刚刚完成两年大学公共基础课和专业基础课教育的学生来讲,软件开发的基础理论和概念仍然匮乏,与软件工程相关的前期课程前后脱节。尤其在计算机科学专业课程设置中,只有一学期的必修的软件工程课,在这么有限的时间内学生很难掌握软件工程的理论与实践的精髓,从而造成大多数学生认为是在学习枯燥无用的理论。

1.2 理论和实践的脱节

软件工程是一门实践性很强的课程。相比于其他的计算机学科的课程,软件工程课程核心和精髓不可能从教师的授课和课本的理论学习而获得,靠“死读书,读死书”是无法完成本课程的学习的,实践和理解相结合的融会贯通非常重要。在实际软件开发中真刀真枪的实现,在练习中理解基本原理,在真正练的过程中提升理论的水平是软件工程课程教学和实践的有效方法。

1.3 重代码,轻文档

在软件工程课程的教学中,大部分的学生甚至部分教师都会自然地认为实现高效整齐的代码是课程学习中最重要的工作,对于文档工作未有足够的重视。在实际软件开发的工程实践中,一般认为代码的工作量只占到整个工程工作量的30%左右,完整、有效的各种文档,包括设计文档、算法文档、说明文档、维护文档等是整个软件工程核心。因而在软件工程的教学中,我们必须转变观念,突出工程文档的重要性,将各种统一、标准、高效和实用的文档设计和撰写方案融汇到课程的教学中,并且与软件工程理论和代码编写结合,形成完整的的理论、算法、代码和文档并重的教学新方法。

1.4 缺乏软件工程知识体系的系统概念

商用和实际应用软件开发的工作是系统的团队工作模式,单打独斗无法完成商业和实用软件开发。然而,现在软件工程的教学中,教师和学生注重的是单个原理和系统的学习,从而造成了学生软件编程风格五花八门,程序可读性差,软件工程的完整知识体系混乱。团队工作的模式要求程序员在整个工程中需要承担不同的角色,不同的角色承担的任务不同,又同时需要与其他的角色互相配合沟通,从而完成整个工程的开发。这一点,在目前软件工程的教学中非常缺乏,为此我们需要建立系统的概念,将角色体验的模式引入软件工程课程教学中。

在参考文献④中,Nurkkala和Brandle对软件工程教学进行了分析,并对现行软件工程教学方法中存在的问题进行了总结:(1)没有产品——学生在学习中仅仅是创建项目,而并非真正地开发商业级别的产品;(2)持续时间短——通常软件工程课程只安排一或两个学期,课程受限于时间过短很难真正理解软件工程的方法、原理等在实际软件工程项目中如何应用,并完成开发真正的产品;(3)高流动性——对于一个项目来讲,每个学期都有新学生加入意味着人才库始终只有很少的人,新加入的学生很难基于之前的经验开发其自身的技能;(4)低复杂性——由于学习必需时间以及学生本身技能的限制,只能开发简单的应用;(5)无法维护——作为持续时间过短结果,学生没法经历软件开发非常重要的一个方面,即系统维护阶段;(6)没有客户——学习过程中,大多数软件工程项目都没有真正的与客户进行接触,而实际的开发中必须要了解客户的需求,根据客户的需求进行软件开发。

综合上述分析,我们深入调研了现行软件工程课程教学的困难和挑战,分析了国内外报道的先进的软件工程课程教学的新方法,结合我们几年来课堂教学的经验大胆改革课程体系框架和教学内容,积极探索案例教学和实践教学模式,提出了角色体验和工程文档应用于软件工程教学的新方法和新思路。我们强调建立理论与实践相结合的软件工程知识体系,采用任务驱动的角色体验方法,加强学生协同分工和集成创新能力;突出强调工程文档在软件工程应用开发生命周期的重要作用,建立软件工程中规范化的任务、知识体系和实施培训的流程。

本文第二部分将介绍目前报道的国内外软件工程教学的有效方法,第三部分介绍我们探索的引入角色体验和工程文档的软件工程教学新思路,第四部分进行总结。

2 国内外现行有效软件工程教学方法

为了解决以上提到的软件工程教学中存在的不足,目前,国内外已经提出了多种教学方法来改进软件工程课程教学。范锐⑤等人提出了基于“做中学”的教学理念的“项目驱动、案例教学”的软件工程教学模式,其教学理念认为软件工程教学不能单纯依靠理论讲解,强调实践对于软件工程教学的重要性,在学生的实践过程中,采用项目团队方式进行项目开发,学生分组分工,明确每个人所承担的职责,以此培养团队意识。“项目驱动”的教学方式,将整个软件工程教学过程包含于一个完整的项目之中,学生通过完成项目学习和掌握软件工程的包含的知识,实现对知识的掌握和应用。

陈建国⑥等人针对传统以教师为主的软件工程教学方法提出了改进,在传统的软件工程教学中引入了集体工作、实验、案例学习、合作教育相结合的软件工程教学方法,详细地论述了这四部分对软件工程教学作用以及对学生掌握软件工程方法的帮助。采用了合作教育的方式,学校和企业合作为学生提供真正的商业软件开发的机会,增强学生理论与实际的联系,使得软件工程教学中的项目管理、软件过程、质量保证等不再那么抽象难于理解。

近年,国外对于软件工程教学方法中存在的不足提出了不少有效学习方法,其中相当一部分方法着重强调了协同工作⑦⑧⑨在软件工程教学中的重要作用,在教学中分成多个小组,使学生加入其中,这些小组的组织结构与组内分工与实际的项目开发小组完全相同,这样学生在学习的过程中完全按照实际的工程开发的需要进行学习,使得学生学习中能充分掌握软件工程的方法、原则等的实际应用。此外,还提出了一些其他软件工程教学的有效教学方法,如使用Liu⑩形式化方法教学;Deveaux豘等提出专注于软件开发过程中的文档,Deveaux认为在教学中很难获得实际的足够大具有开发意义的项目,而文档的学习却可以使学生充分了解软件工程项目的基本原则,方法等内容;Li豙则成功地将统一过程方法应用于实际的教学当中;Pandey豛在教学中使用竞争的方法教授学生开发原则;更有一些在软件工程的教学中采用游戏的方法,豜使学生充当游戏中项目小组的项目经理的角色来学习软件工程。Scott豝等人在本科生的软件工程教育中采用了开源工具,并将之整合到软件工程课程中,通过学生的反馈对比,表明此种方法获得了很好的效果。

3 角色体验与工程文档结合的软件工程教学方法

3.1 国内软件工程教学现状

在实际的课程教学中,运用了案例开发,与企业合作等方法,并结合国内外其他一些有效的软件工程教学法后,我们发现学生在有限的时间内所能理解的软件工程知识相当有限。在对计算机科学专业的学生进行调查时,我们发现大约80%学生对大三进行的软件工程课程没什么兴趣。他们认为那只是枯燥的理论课学习和繁琐的文档编写。在前两年专业基础课学习中,他们几乎没有接触到文档编写,大部分项目的完成都是在草稿纸上设计然后直接进入程序编写阶段。他们认为这样可以一步到位,省去很多繁琐的细节。当然,正如我们前面提到,在本科教学中,学生在课堂上能实现的项目只能是中小型项目,复杂性低。学生无法感受到缺乏软件工程流程中首要的基础工作而可能造成的困难和严重的后果,所以学生们大多认为写各种各样的文档是在浪费时间。而对于教师来说,到大三软件工程课时,在没有大型项目做支持的情况下,再教导学生编写文档的重要性,似乎没有说服力,也很难扭转学生已经形成的直接编程的习惯。所以在计算机学科的学习中,我们大胆改革教育的方式并修订了阶段性的培养目标,形成一种潜移默化提升学生综合能力和水平的模式。在本科生进入大专院校就读后,计算机专业课程,尤其是编程课程的项目设计上需尽早地让学生接触到软件工程知识的基本概念和方法。从大一专业课开始,学生们就需要开始完成简单的项目。如果教师们可以从一开始就让他们了解到软件工程的生命周期,接触到软件工程流程中的各个步骤,从简单到复杂地进行实践,到大三的软件工程课时他们就会对这些知识已经有所了解,并不会感觉到枯燥,因为在前两年的学习中他们一直都使用这些方法,已经养成了良好的软件工程的习惯。

3.2 基于文档撰写的潜移默化式教学法

我们经常只会在软件开发或维护过程出现问题时才意识到那些被忽略的文档的重要性。在我们的调查中,软件工程师们大约有60%以上都认为自己的文档的编写能力只是一般,有些甚至不会撰写文档(见表1)。很多工程师在学校并没有受到专业的训练,只有到工作中才开始慢慢学习与实践,但是经常由于时间有限,项目截止日期逼近而只好疏于对文档的编写或是只能牺牲其质量。如果我们在本科教学中尽早地让学生接触到各类文档,在撰写项目文档的过程中,学生不但能学习到软件工程的流程,也能把撰写文档的技能锻炼熟练,更重要的是他们会渐渐地把文档的撰写与管理当成一种习惯,当成一种必须。这样,无论是大型项目还是小规模项目,他们都会用一定的软件工程流程来完成。一开始的小项目中,也许他们并不能理解为什么要撰写那么多文档,但当他们到高年级创建相对复杂的项目时就能体会到文档的好处。他们就能领会,计算机软件并不只是程序,还应该有一整套文档资料。这些资料都是在开发过程中产生出来的,对软件管理人员,开发人员,维护人员,测试人员,客户,包括程序员自己都是必不可少的。那么如何开始这种潜移默化式教学法呢?教师们要对所有四年的专业课程进行分析,总结出需要参加这个软件工程教学计划课程和项目。加入到这个计划里的课程教师要设计符合这个计划的项目,并将文档撰写作为对学生必须的要求。在整个计划中,建议提供一套完整统一的各类文档的模板以供学生们使用,包括软件需求说明书,软件设计说明书,软件测试说明书,项目开发计划书等。这些模板要一致,学生在所有课程中要使用一致的模板,由简化版到完整版,低年级的学生先使用简化版的模板,让他们渐渐地学习撰写文档。比如一年级的项目可以只要求写软件需求说明书。在模板的设计中,最好是和企业界运用的文档保持一致,然后进行简化,给学生提供一种他们可以胜任的文档模板,然后逐年增加内容,最终可以与业界使用的文档保持一致。这个计划的实施需要得到计划内课程教师们的认同,通力合作,把学生四年的学习列入计划,并随时进行监督。经过四年的训练,学生的写作能力一定能得到大幅度提高,对软件工程的认识也会非常深入,毕业后能够胜任商业软件和应用软件的开发要求。

3.3 基于角色体验的软件工程课程教学法

上面提到的文档式教学法是为了训练学生创建各类软件工程文档的能力。在课堂项目中,由于时间有限,一个学生往往不可能完成整套文档的撰写。在低年级阶段,在小型或中型项目中,学生学习了软件需求和软件设计文档,学生应该可以单独完成。但当项目变得相对复杂,大多课程项目都是以团队合作的形式来完成。教师通常知道哪些同学组成一个团队,但并不清楚或关心这些同学在项目组里担任的角色。这样,在四年的学习中,有些同学在项目组里只保持着一种角色,如只担任了程序员或测试员,并没有机会对各个相应的角色进行体验,导致他们知识的不全面。与文档教学法相结合,我们提出一种叫做角色体验的教学法,和文档式教学法同步进行,一同潜移默化地将软件工程知识注入学生脑海。所有加入计划的课程要统一安排项目组成员,目的是让每个学生在这些课程项目完成的过程中能体验所有的软件工程角色,并完成这一角色相对应的文档。这样不但训练了每个学生各种文档的写法,让学生了解了软件工程生命周期整个团队要进行的工作,而且锻炼了学生互相合作的团队精神,避免学生在团队中只依赖于几个学习相对比较优秀的学生来完成项目。假设我们要训练学生四个角色:项目经理,系统分析设计师,程序工程师,和测试工程师,我们需要至少四门课程加入此计划。如图-1所示,四个学生分为一个项目组,经过这四门课程项目的训练,他们可以完成这四个角色的训练,学会四种文档的撰写,体验各个角色在软件工程流程中的职责。如果要增加角色和文档种类的话,可以适当调整学生团队组员数目与职责。经过这样的训练,学生对团队合作一定会有更加深入的认识,也能提高队员的沟通能力,以改善毕业生在企业界缺乏沟通能力的现状。

经过四年的文档与角色的潜移默化式训练,一定能大幅提高学生的软件工程能力。相比单纯的一到两门软件工程课程,学生对软件工程的理解要深入得多,实践能力也会大幅度提高。由于计算机科学专业课程设置并不像软件工程专业对软件工程的教学那么有针对性而且课时较少,所以这种方法尤其适合计算机专业的教学。

第2篇:软件工程课程总结范文

地方性高校培养应用型人才,需要了解市场发展的导向,社会行业对人才的需求,以及着眼特色办学的核心竞争力,实现自身的发展[1-2]。软件产业发展已经被国家提到战略的高度,为了配合其快速的推进,我国高校也正在扩大培养软件工程方面的专业人才的规模。软件工程专业论文是2002年国家教育部新增专业[3],该专业主要以培养软件工程专门人才为目标。我校软件工程专业由教育部于2015年批准的新专业,起源于我院计算机科学与技术专业软件技术方向。 

徐州工程学院作为新兴的地方性高校,在软件工程专业建设方面,不仅需要学习和借鉴重点大学、国家示范性软件学院的经验和做法,更重要的是结合地方院校的特点和实际情况,办出特色。因此,应用型人才培养体系的建成,应该直接为当地经济建设和社会发展服务,适用面广、实用性强,具有鲜明特色。本文主要阐述以工程教育认证质量评价机制为指导的徐州工程学院软件工程专业在理论和实践方面的培养体系。 

2 市场调研 

为了制定针对性的培养模式,首先组织一些学科教授和骨干教师,对软件工程专业的就业形势、市场需求等进行为期2个多月的市场调研,调研对象包括国有大中型企业、私营与股份制等公司的负责人和技术骨干。本次调研内容包括实地参观学习、与企业召开研讨会,并向企业发放调查问卷表500份,收集有效调查表437份。 

通过这次调研,总结软件工程专业的市场需求、人才结构和素质要求、企业技能标准等信息,发现软件工程技术人才奇缺,涉及很多方面,主要原因是大部分高校计算机专业不注重应用型软件人才的培养,学生毕业后面临的是二次学习的困境。因此,对学生的培养不仅需要完整性的实训锻炼、强调企业项目经验、注重培养学生的分析与解决问题的能力,更需要注重团队合作意识;在课程设置方面应该与企业长期合作,开设企业实用的技术课程和职业综合素质的内容。 

3 软件工程专业应用型人才培养模式 

软件工程专业强调软件开发的系统和工程性,培养能够从事软件开发、测试、维护和软件项目管理的高级专门人才[4]。软件工程专业沿用徐州工程学院计算机专业“3+1”培养模式,具体模式为学生在前三年完成通识课程、专业课程的学习,以及课程基本实训,最后一年在企业完成项目级实训、职业训练和毕业设计。 

表1所示为软件工程专业课程构成及学分分配汇总表。徐州工程学院软件工程专业课程主要分为三大平台。其中,通识类课程平台包括通识必修课、通识选修课以及学科基础课;专业课程平台主要包括专业必修课和专业选修课。 

知识支撑能力结构 根据软件工程专业的培养目标,确定课程知识支撑能力结构,如图1所示。课程设置本质上是为了培养学生能力的,因此,为了培养学生英语能力、熟知行业标准、管理能力以及创新意识等,设置学科基础课、通识类课程以及专业课程、专业技术导论、讲座等课程;为了培养持续学习、协作和项目分析等能力,设置软件工程课程群、企业实训课程以及职业技能训练等课程。 

理论知识体系结构 软件工程专业理论知识体系结构包括通识课程群、学科基础群、专业课程群,其中专业课程群是核心课程。专业课程分为程序设计基础知识、软件开发技术知识、数据库原理知识、计算机系统知识、软件工程知识等5个子课程群。其中,程序设计基础知识包括数据结构、面向对象的程序设计(OOP);软件开发技术知识包括Java Web方向课程群、移动开发方向课程群等课程;数据库原理知识包括数据库原理及应用;计算机系统知识包括计算机系统基础、操作系统等课程;软件工程知识包括软件需求工程、软件体系结构设计、软件质量保证与测试、软件项目管理。 

实践体系结构 软件工程专业实践体系结构如图2所示,主要分为四个阶梯: 

1)个人级的实验,主要由校内教师进行指导,学生独立完成课内实践环节; 

2)小组级的实验,需要2~4个学生为一组,为完成程序设计、算法设计、面向对象技术开发,通过沟通和相互协作完成,注重技能的训练; 

3)项目级的实训,主要由企业教师指导,学生完成专业方向技能、软件工程综合训练;

4)企业级的实训,为了检验学生综合能力,由学生独立完成企业项目综合训练、职业技能提高以及毕业设计。 

为了加强校企合作培养的效果,每4~6个学生配备一位校内指导教师和企业指导教师。校内导师在学生入学后确定,主要任务是“学业综合指导”;校外导师在学生入学后的3年内确定,主要任务是“工程实践指导”。学生在三年级初步确立毕业设计选题,由校内导师和企业导师联合进行指导。 

基于工程教育专业认证的质量评价 为了加强软件工程专业的质量评估,以工程教育专业认证为指导,建立针对整个培养过程的质量监控和完整有效的评价机制。在每个教学环节,基于认证标准,明确质量要求,定期进行课程体系设置和教学质量的评价。此外,在整个学习过程中对学生的表现进行跟踪与评估。 

以上这些质量评估措施,保证学生毕业时达到毕业要求,毕业后具有社会适应能力与就业竞争力;后期,毕业之后阶段,仍然采用跟踪反馈机制,通过记录评价和效果,证明学生能力的达成,并逐步对培养模式进行持续改进。 

很显然,只有建立完善的质量评估机制,才能保证按预期的目标完成专业培养要求。因此,从地方性高校实际出发,以工程教育专业认证为质量评价指导,不断完善培养模式,这样才能培养卓越的学生,为企业持续不断地吸引优秀的生源。 

4 总结 

徐州工程学院作为一所以应用型工科教育为主的地方本科院校,软件工程专业应用型人才的培养需要有别于高职高专的培养模式,需要更注重高层次应用型技术人才的培养;又要有别于传统学术性高校“精英型”人才培养目标、课程体系设置、教学模式以及师资要求等。 

软件工程专业培养标准最需要解决的问题是注重软件工程宏观意识,培养持续学习能力、交流与沟通能力。鉴于此,本文提出以工程教育专业认证为指导,构建软件工程专业应用型人才培养体系,以期为地方性高校软件工程专业能够培养更多卓越的软件工程方面的人才提供一种方法和途径。 

参考文献 

[1]宋思运.应用型本科人才培养模式的构建[J].徐州工程学院学报,2005,12(20):11-13. 

[2]金忠明.我国高等教育发展质量面临的问题与分析[J].徐州工程学院学报,2013,28(6):92-96. 

第3篇:软件工程课程总结范文

关键词:工程硕士;开放式教学;课程组

中图分类号:G642文献标识码:B

1引言

软件学院软件工程硕士的培养目标是培养高层次、应用型人才,针对这个目标,其教学实施应着重体现出以下两个差异性:

(1) 软件工程学科领域和计算机学科领域间专业设置的差异性,这个差异应能够很好地体现培养应用型人才的目的;

(2) 工程硕士课程和软件学院本科课程的差异性,这个差异应能够很好地体现培养高层次人才的目的。

目前国内软件学院软件工程学科和传统的计算机科学学科在课程设置上差异还不显著,工程硕士的培养方案中甚至部分课程只是本科阶段的重复。虽然大都开始强调学生的软件项目实践,但普遍缺乏过程管理。本文在对IEEE的软件工程知识体系进行深入学习的基础上,针对软件学院软件工程硕士提出了实现开放式教学体系的教学改革方案。

2软件工程知识体系

2004版SWEBOK将整个软件工程知识体系分为11个知识领域(Knowledge Area,KA),其中前5个知识领域是按软件开发的生命期诸阶段排列的,即软件需求、软件设计、软件构造、软件测试和软件维护;后6个知识领域是软件开发中的支撑性或者辅的方面,可能覆盖软件开发的多个阶段,包括软件配置管理、软件工程管理、软件工程过程、软件工程工具与方法、软件质量、相关学科知识领域。这些知识领域SWEBOK并没有重新系统规定,而是直接套用已经成型的各领域知识体系,因此不可避免地存在重叠和不匹配。

在SWEBOK的基础上,IEEE与ACM又共同拟定了CCSE。其中的核心部分是软件工程教育知识(SEEK)。SEEK由十个知识领域组成,包括:计算机基础(CMP)、数学和工程学基础(FND)、职业实践(PRF)、软件建模与分析(MAA)、软件设计(DES)、软件验证(VAV)、软件演化(EVL)、软件过程(PRO)、软件质量(QUA)、软件管理(MGT)。

可以看出,SEEK和SWEBOK基本内容是相近的。总的来说,二者都是包含了软件工程核心类的知识领域、基础类或前导类的知识领域,以及其他相关领域的知识。

3高等教育教学改革研究状况

目前国内关于高等教育教学改革的论文很多,如翁敬农、刘云等在软件学院实践教学体系的内容与规划中提出了“一个目标”、“两种途径”、“三大环节”、以及“四级台阶”的具体步骤。王移芝、林艳琴提出基于“两段教学”的计算机基础课程的教学体系框架。谢芳清、闫大顺提出了以素质教育为目标的实践教学体系。王浩、胡学钢等提出计算机科学与技术专业实践教学体系的总体研究与建设。王志英以国家实验教学示范中心为例,提出实践是综合能力培养的基础,并以此构建计算机科学与技术专业实践教学体系。董玮、邱建华等以专业课“程序设计基础(C语言)”为例给出了建设实践教学体系的实践探索。然而目前还没有检索到专门研究软件学院工程硕士教学改革的论文。无论是从传统计算机科学与技术专业与软件学院软件工程专业的区别,还是本科生与研究生的区别来看,针对软件学院工程硕士的教学改革研究都是十分有必要的,同时也是迫切的。

4工程硕士的课程体系设计策略

我们以IEEE SWEBOK和CC2004SE的知识体系为主体,结合中国软件产业以及本院的具体实际情况,设计了中国科学技术大学软件学院软件工程专业的知识体系,作为我院工程硕士课程设置和教学计划实施的依据。以SEEK为基础,我们对软件工程的课程设置进行规划。整个课程设置可以分为三个层次,即导论性课程、软件工程核心课程和其他课程。如图1所示,该知识体系定义了7个知识体系子类。计算机基础和数学和工程学基础属于导论性课程、其他课程包含了职业实践、领域课程、软件工具、工程实践等四个子类。

其中计算机基础定义了软件工程作为计算学科所必需包含的计算科学基础以支持软件产品的设计与建设;数学与工程学基础提供了软件产品获得所需属性的理论和科学基础;职业实践则聚焦于软件工程师以职业行为从事软件工程实践所必需具备的知识、技能和态度;软件工程核心课程应该包含软件开发生命周期所涉及到的主要知识领域;领域课程包含了对于某个特定领域软件工程师应该接受的特定教育或经验;软件工具定义了从事软件工作所必需掌握的当前主流工具与软件产品等;工程实践则是学生使用所学到的知识从事实际开发活动,提供动手能力的重要环节。

对于工程硕士来说,大部分同学经过计算机本科专业的学习,已经具备了初步的计算机基础以及数学与工程学基础,因此目前其课程体系建设如图2所示,重点是完成软件工程核心课程教学,并结合IT界的最新技术趋势设计相关领域课程。教学改革的核心是如何设计软件工程的核心课程,并指导学生熟练掌握相应的软件工具,强化他们的实践动手能力。

5工程硕士开放式教学体系建设

对于如何设计软件工程的核心课程,我们的主要思路是打破原先各子知识体系间的界线,围绕专业培养目标,结合学生的工程实践,引入课程组的概念,实现一个完整的开放式教学体系。如图3所示,整个开放式学习体系包含三个部分:

(1) 设计课程组:在理论环节采用课程组的概念,集中讲授较高层次的、符合硕士生水平的软件工程的某些重要环节;

(2) 开设实践教学环节:在实践教学中采用做中学(Learning by Doing或LBD)理念,由指导教师讲述软件工具的具体操作过程,同学实际动手学习;

(3) 强化工程实践:在工程实践中由学生自主选题,并将LBD中讲述的工具在项目整个生命周期中贯穿使用。

5.1设计 课程组

目前我院开设的高级软件工程和本科的软件工程课程内容并没有太大差别,对于软件工程的各个环节面面俱到,但又都比较浅显,对于工程硕士的培养显然是不合适的。因此我们设计了软件工程课程组的理念,初步设计了以下课程:

(1)“软件开发管理”(Managing Software Development)

(2)“软件系统架构”(Architectures for Software Systems)

第一门课程主要针对以后立志从事软件工程管理方向的同学,课程针对IT项目集中阐述如何实现风险、资金、工期等各方面的管理;第二门课程主要针对以后立志从事软件高级开发方向的同学,课程主要讲述复杂软件系统架构层上的设计,介绍目前通用的软件系统结构、设计技术以及实现这些结构的模型、表述方法等。这两门课程对于软件工程硕士应该至少必修一门。除了这两门课程,其他软件工程类的课程包括了设计模式、软件测试、语言类课程如J2EE、.NET等等,学生可根据自己的实际情况进行选修。

5.2开设实践教学

针对该课程组,我们开设了实践教学环节,采用做中学理念,由指导教师(可以由助教担任)根据事先确定的主题,选用具体工具讲述如何使用该工具完成项目开发的某具体环节,工具涵盖了项目管理、架构设计文档化以及测试等软件项目开发的主要方面。

对于软件工具的选择,有两种思路。一种方法是对软件工程的不同环节分别选择不同工具,例如项目管理选Project、开发文档化选Rational、测试再选别的工具这样来做,但结构分散,不利于整体化考虑。另一种是采用套件,完成项目开发全程的所有操作,目前我们选择了两种套件,一是微软的VSTS,该套件和微软的Visual Studio开发平台绑定,适合学习.net开发框架的同学;另一种是IBM的RSA,该套件和Eclipse开发平台绑定,适合选择开源J2EE开发框架的同学。

5.3强化工程实践

大多数的软件学院目前都开设了专门的工程实践环节,但实际的效果并不尽如人意。因此我们将工程实践环节也纳入到开放式学习体系中,以前面所说的理论以及实践教学环节来指导学生更好地高质量完成整个工程实践。

从教学方法上,工程实践应尽可能地贴近现实项目,除了常见的软件工程文档,我们还要求学生提交过程管理类文档(软件开发合同、会议记录、工作日程记录、合同执行报告:财务报告和开发过程报告、个人总结、小组总结等)。

从技术上,学生可以自由选题,也可参考工程实践题库中的选题。选题涉及所有领域课程包含的内容。要求学生必须采用实践教学环节中介绍的工具全程介入项目开发的各个阶段。学院设立专门的工程实践网站提供学生选题及交流,以及指导教师的监督。

从教学形式上,则注重如何实现应用型软件人才的核心能力分析与培养,要求学生运用职业实践子知识体系中的相应内容,锻炼学生的口头表达能力、书面表达能力等。通过学生的开题演讲、采用各种工具完成相应的项目文档、结题答辩等环节来实现学生职业素质的培养。

从实践效果评价上,我们制定了一系列的成绩考核方法、管理考核信息、分析考核结果、评价教学质量等措施,实现完整的考核体系。

6结论

软件工程专业学生的培养,在学科教育与培养面向市场需求的人才方面有着事实上的矛盾。软件学院现有的实践教学体系存在着专业课程设置定位不准确、课程实验师资不足、实验教学内容质量不高、实验指导和管理落后等问题。根据软件工程专业教学所面临的挑战,在充分调研IEEE SWEBOK和CC2004SE知识体系的基础上,针对软件学院的工程硕士,我们提出了软件工程硕士开放式教学体系的建设,围绕专业培养目标,结合学生的工程实践,引入课程组的概念,制定了一套较为完整的开放式实践教学实施计划。

参考文献 :

[1] Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering [EB/OL]. [2004-08-25]. /ccse/SE2004Volume.pdf.

[2] 翁敬农,刘云. 北航软件学院本科生实践教学体系的研究与实践[J]. 计算机教育,2007(11).

[3] 王移芝,林艳琴.“计算机基础课程”实践教学体系的研究与实践[J]. 实践教学,2008(8).

[4] 谢芳清,闫大顺. 计算机工程专业实践教学体系的研究[J]. 中国科技信息,2008(9).

[5] 王浩,胡学钢,侯,等. 计算机科学与技术专业实践教学体系的研究与建设[J]. 计算机教育,2007(11).

第4篇:软件工程课程总结范文

对于软件工程课程来说,为的是让学生能够了解软件工程的相关知识,进一步学习有关软件的开发技术,从而达到优化学习效果的目的。高校对软件工程课程教学也提出了相关的建议与意见,表明学生既要对软件工程的基本理论加以掌握,又需要借助基本理论知识去解决相关实际问题。软件工程网络课程的开展,为学生掌握软件工程理论知识提供了有效途径。但在实践方面,软件工程网络课程也存在不足。例如,在网络课程开展中,实际案例不充分,实践性得不到很好的体现,从而大大弱化了实践教学目标。为此,解决软件工程网络课程在实践方面存在的不足便成为一项迫在眉睫的工作。

2.软件工程网络课程与IBM-Jazz平台的有效整合分析

在上述分析中,我们认识到软件工程网络课程的开展虽然能够满足学生的理论学习基本需求,但实践环节较为薄弱。为此,大量学者提出将软件工程网络课程和IBM-Jazz平台有效整合,实现理论+实践的教学目标。Jazz平台是IBM推行的面向跨地域团队的下一代团队协作平台。将该平台应用于软件工程网络课程开发中,能够使以往软件工程网络课程在实践方面的不足得到有效弥补。一方面,Jazz平台对Web2.0技术充分支持,能够构建实时协作平台,从而便于师生在网络课程中的沟通交流。另一方面,Jazz平台支持软件工程生命周期各个阶段的任务,可以使学生对软件工程过程有系统且全面的理解及掌握。此外,Jazz平台能够对敏捷软件开发给予充分支持,从而为软件工程网络课程实践教学的实现夯实基础。

结合上述分析,笔者认为,要想使软件工程网络课程与IBM-Jazz平台实现有效整合,需要了解IBM-Jazz平台的优势,在针对学生完成软件工程网络课程中的理论知识的基础上,积极开展工具培训授课,让学生了解并掌握Jazz平台相关培训教材以及教学资源,通过网络指导学生正确、科学地使用相关工具,以此初步实现将IBM-Jazz平台有效应用到软件工程网络课程教学过程中。

3.相关实践研究

软件工程网络课程教学过程中,对学生进行实践教学是尤为重要的一个环节。笔者认为,在借助IBM-Jazz平台的基础上,需让学生掌握的实践内容如下。

(1)基于实践环节,不脱离对理论知识的理解。也就是说,在实践过程中,需要学生对软件工程课程理论知识加深理解。例如,组织学生积极主动参与小规模的软件开发过程,让学生在此期间借助所学理论知识加深对软件开发过程活动的理解,从而实现理论+实践教学的完美结合。

(2)明确实践项目,注重学生团队精神的培养。基于软件工程网络课程实践环节的复杂性,需对实践项目加以明确,并做好项目的分配,然后将项目小组作为中心,分析软件系统的需求、测试等内容。

(3)掌握相关工具应用方法,提高学生解决问题的能力。既然要将IBM-Jazz平台融入软件工程网络课程教学过程中,便需要学生充分掌握Jazz平台的相关工具应用方法,并引导学生在加强理论知识学习的基础上,借助网络实践课程的开展,有效提高学生解决问题的能力。

4.结语

第5篇:软件工程课程总结范文

关键词:软件工程;项目教学法;改革与实践

中图分类号:G642 文献标识码:B

软件工程是计算机科学与技术及相关专业教学计划中一门重要的专业必修课,是指导计算机软件开发与维护的一门综合性课程,是一门实践性很强的课程,各高校的计算机专业均开设这门课程。通过本课程的学习,使学生了解和掌握软件工程开发的技术和方法,具备作为软件工程师所需的专业能力,为从事计算机软件开发和维护提供方法上的指导。同时,软件工程的研究除计算机软件本身外,还涉及众多其他的领域,如管理科学、心理学、经济学、人机工程学等,因此,它也是一门综合性学科。进入新世纪,软件工程已经由最初的一个学科方向发展成为以计算机科学技术为基础的多学科交叉学科,在当今的信息社会中占有重要地位。如何组织好软件工程实验性教学,对于培养创新型合格的软件人才具有十分重要的意义。

1软件工程教学存在的问题

长期以来,我们培养的计算机专业的学生存在着“什么都学过,却什么都不会”的尴尬局面,专业教育、教材与应用需求严重脱节。事实上,学生就业难并不是就业市场不需要计算机人才,其根源还是计算机教学的现状所致。传统的“软件工程”课程虽然有实验教学的要求,但一般只是停留在组织学生编写软件项目若干设计文档这个单一环节上。然而,由于教育过早和长期的文理分家,导致理工科学生的文档编写是个“软肋”,他们也不感兴趣。此外,由于教学时间有限,要真正完成软件工程各阶段文档的编写,事实上也没有可能。今天,软件工程教学还面临着计算机学科发展规范所提出的更高的质量要求,同时也面临着大众化高等教育背景下所带来的客观问题。

因此,迫切需要对软件工程课程的教学体系进行工程化改造,逐步建立工程化实践教学体系,着力培养学生的工程化开发能力和职业素质,进而形成一个融基础理论、实验教学、工程实践为一体的整体化培养机制,让学生的基础知识、科学素养、专业知识、创新能力、工程能力和职业素质都得到全面均衡的发展。

2软件工程项目教学法的改革与实践

软件工程强调采用工程化的方式开发和设计软件,要求培养学生能胜任研究、分析、开发、设计、生产、测试、管理、咨询、培训等多种角色,使学生熟练掌握软件工程知识与技能,具备作为软件工程师从事工程专业所需的专业能力。随着高校扩招,教学规模迅速发展,传统的计算机教学模式在实践环节上的缺乏与不足,直接影响了计算机课程的教育教学质量,特别是对于像软件工程这种综合性、实践性很强的课程,如果没有一整套科学、合理的实验教学方法,就不可能培养出具有创新能力的合格人才。因此,切实加强软件工程课程的创新与改革至关重要。

按该课程的特点,实验内容包括软件开发的两大方法学的专题训练,即结构化(生命周期学)的方法学和面向对象的方法学,以平时实验和课程设计相结合,设置一些实验项目,要求学生利用结构化软件开发技术或面向对象的软件开发技术完成对该项目的开发。以项目作为实验环节的主线,随着课程进展布置任务,从项目开发的准备工作、系统分析过程、系统设计过程、软件测试到系统实施,结合所学习的理论知识,完成项目的开发。同时,依据国家《计算机软件开发规范》,撰写规范的技术文档。因此,主要从以下几个方面对软件工程教学作了改革与创新的尝试:

(1) 树立工程化能力培养与基础理论教学、专业能力培养并重的教学理念。

把工程化教学作为人才培养的核心任务之一,通过全面改革软件工程专业的人才培养模式、调整课程体系、充实教学内容、改进教学方法,建立工程化实践教学体系,在教学过程中全面体现工程化能力和职业素质培养的思路,进而形成了一个融基础理论、实验教学、工程实践为一体的整体化培养机制,让学生各方面的能力都得到全面均衡的发展,以适应现代软件产业的需求。

(2) 设置工程化教学阶段和企业实习阶段。

把工程化素质培养作为学生全培养期中自始至终关注的主线。在工程化教学阶段,一方面独立设置了多门以培养学生工程能力和职业素质为主的学分课程;另一方面对操作系统、数据库系统、多媒体技术等十多门传统课程教学内容进行工程化改造,充实工程教学内容,引入实作业。在企业实习阶段,建立跨度为半年的全时制企业实习制度,在著名软件企业中设立实习基地,通过真实的企业氛围和开发环境,进一步培养学生的工程能力和职业素质。

(3) 实验课程以平时实验和课程设计相结合,设置一些综合实验项目。

随着课程进展布置任务,通过调查研究、可行性研究、需求分析、概要设计、详细设计、编码、测试、维护(版本升级)及技术文档的编写,结合所学习的理论知识,完成设计。实验内容应覆盖软件工程学科的各个主要环节,覆盖软件生存周期的各个阶段,使学生通过实验加深对学科理论知识的理解。但也要避免“喧宾夺主”,在积极发展实验教育的同时,要保证必要的理论教学水平。必须充分重视和精心设计实验内容,要有可操作性、趣味性和适当的难度。可操作性保证学生都能完成实验,从而促进学生学习信心的建立,在一定程度上能减少学生抄袭的理由,克服实验数据普遍抄袭的弊病;趣味性体现“寓教于乐”,以提高学生完成实验的积极性;而适当的难度有助于激发优秀学生进一步钻研的斗志。

项目来源为教师科研课题、实践基地课题、校内应用课题和自选课题。选题的原则为:新颖、实用和规模适中。新颖代表计算机发展的主流技术和应用范畴。实用代表所选题目一定是具体单位或用户要求开发的,而不是由学生随意杜撰和随意想象的,其目的就是保证学生在软件工程实践过程有实际的场景环境(主要包括用户、领域专家和工作环境),这对于高质量的软件工程实践过程具有质的保障。

(4) 软件工程实验要求学生采用“项目小组”的形式,结合具体的开发项目进行设计,班级按项目小组进行分组,每组不得超过4人。每个项目小组选出项目负责人或项目经理,由其召集项目组成员讨论、选定开发项目。

(5) 学生分工合作,学习软件开发小组的组织和管理,将项目开发各阶段的任务明确,熟悉软件开发环境,培养团队精神,共同完成该项目的设计任务。项目中的每项任务要落实到个人,实验在规定的时间内,由学生独立完成。学生在学校机房的机器应固定下来,并安装好相应的软件,没有特殊情况不应缺席。

(6) 配置开放的实验环境:实验环境是保证实验教学活动和质量的基本条件,对于软件工程课程显得尤为重要。

项目开发不是简单程序设计,而是软件工程全过程的综合性实践,应该建立和配置相应的软件工程实验环境或实验中心。实验环境或实验中心的建设重点要放在软件工程环境和自动化开发工具的配置上。应该清楚,高层次的实验环境应是高素质人才培养的物质基础。实验环境还应该是开放性的,这有利于在学生实践过程中建立一种项目开发、科学研究和创新思维的综合效应。

(7) 分组讨论,集体交流

分组讨论是项目教学中非常重要的环节,本质上是一种概念或想法的交流。围绕项目的重点,难点,疑点,进行讨论、辩论和争论。每个学生可以自由的抒发己见、相互启迪、互相借鉴,重点是想法的交流。要求每个学生简要介绍自己对软件开发所做的分析设计,并提出自己对该软件开发流程的看法,供大家讨论与切磋,可以按照项目中所提出的问题一个一个讨论。在教师的引导下,让学生进行课堂发言,进行全体学生的交流。本阶段讨论主要解决两个问题:①小组讨论没有达成共识的问题;②按照教学目标,有意引导学生掌握软件工程的生命周期法各阶段所做的具体工作以及进行相关工作的必要性。

为了使分组讨论有效地开展,教师要做好充分的课前准备。除了熟知项目陈述的事实、观点外,还要谙知项目反映或蕴涵的原理、规则等知识,以便引导学生概括出来。要认真学习研究项目后给出的教学指南,具体拟定出课堂教学计划,这要求教师认真思考回答以下问题:希望课堂上发生些什么?如何引导这些情况的发生?讨论如何开展?时间如何安排?自己扮演什么角色?是先得结论再分析,还是相反?并对课堂讨论中可能出现的情况做出预测。教师还要依据课程目标、项目目标及教学计划的具体安排重点分析以下方面的内容:项目中反映的那些重要论题、项目中反映的情况发生的根源、项目中所反映的而学生可能设想不到的情况等。在讨论掌握上,教师要力保讨论沿预期的轨道进行,把讨论引导到问题的解决上去,并引导出与论题相关的理论知识,力争班上每个学生都至少有一次发言的机会,切实做到有效参与。

(8) 总结归纳,消化提升

总结归纳是软件工程项目教学的最后阶段,要求学生针对每个项目写出学习报告。该报告中包含学生在阅读项目中所得到的具体收获;通过分析与设计软件,提出自己所解决的实际问题;对理论上软件工程概念和项目中的实际是否一一相对应;以及对软件工程仍然存在的困惑。通过反思进一步加深对项目的认识,真正作到理论和实践的相结合。

项目教学中,师生都要注意角色转换,如果学生仍然热衷于将自己置身于教学过程之外,只做一名旁观者,项目教学也就失去了它的价值。学生只有真正地深入项目、体验角色,才会有项目情境的“再现”,项目教学的价值才能被体现。而教师在教学过程中也要不断变换自己的角色,可充当监督员,激励启发学生,监督项目分析、讨论情况;可充当示范员,向学生演示、讲解、分析项目中的事实、图表、材料等;可充当主人翁,制定下一步的工作计划并在实施中起主导作用;可做仲裁,解决各种争端;可充当交警,使讨论回到预定的轨道上来,等等。

3项目教学法的效果

软件工程项目教学法已在我院计算机专业学生中进行了全面实施,效果显著,提高了学生按照软件工程的原理、方法、技术、标准和规范进行软件开发的综合能力和软件项目的管理能力,学生的综合素质明显增强。特别在基础技能、团队协作、资料收集、人际交流、项目规划几个方面明显具备较强的能力。

客观地说,作为第一次开发实际软件系统的学生,要在较短的时间里开发出各方面都达到真正实用要求的系统是难以完成的。实践的意义更主要是让学生经历完整的过程,体验各阶段方法和工具的应用,还有锻炼除技术以外的多方面能力(如需求分析时如何与用户交流、文档写作、成员间的协作与管理,等等),以提高其综合素质。

4结束语

今天,软件工程已经由最初的一个学科方向发展成为以计算机科学技术为基础的一个新兴交叉学科,软件工程的教学面临着计算机学科发展规范所提出的更高质量要求。计算机技术的迅速发展和高端软件人才的严重匮乏,让我们面临新的挑战。软件工程项目教学法改革还需要在以下几方面继续努力:

(1) 软件工程教学改革体系应在培养学生工具的使用与实验技能、工程设计与实现能力、评审与测试能力、团队协作与沟通能力、过程管理与控制能力等方面下更多的工夫,作更多的努力。

(2) 随着软件产业的发展和计算机应用的普及,系统测试、维护的重要性会更加突出,软件工程实践教学应在这方面有所准备,有所侧重。

(3) 软件工程教育应当给予学生“工程”的概念,以软件生命周期为主线,构建知识结构,将科学与工程有效结合,实施技术与管理的能力和素质培养。

参考文献:

[1] 张海藩. 软件工程导论[M]. 北京:清华大学出版社,2003.

[2] 郑红. 基于建构主义的软件工程教学方法探索[J]. 计算机教育,2008(10):10-14.

[3] 林松. 高校《软件工程》课程教学与实践探讨[J]. 福建电脑,2008(1):33-36.

[4] 林惠强,刘财兴,林丕源.“软件工程”课程启发式教学的研究与实践[J]. 实验室研究与探索,2008(5):8-11.

[5] 丁琼. 软件工程课程教学改革与思考[J]. 华东交通大学学报,2007(z1):76-80.

第6篇:软件工程课程总结范文

【关键词】实践教学 课程设计 科技竞赛

【中图分类号】G642 【文献标识码】A 【文章编号】2095-3089(2014)02-0243-02

一、软件工程课程实践教学现实情况

长期以来,由于软件工程课程偏重于方法学理论的讲授,其中心是软件生命周期的工程技术方法。然而这些技术和方法,对于缺乏工程开发经验和管理知识的在校学生来说非常难以理解。在实践教学中学生感觉软件工程理论对软件开发的帮助作用不大[1]!尽管实践教学对学生有严格的要求,但是他们往往为了能完成任务的考核,只能按照要求粗略地完成或者收集现成的文档来充数,而未能通过实践对所学的知识进行理解与消化。此外,靠死记硬背的知识、概念常常未能得到有效理解,从而难以转化为软件工程技能。多年来,各个学校在不断地探索和改进其实践教学方法,当前也有些对传统实践教学改进的方法并且取得了一些效果[2][3]。经过对这些方法的分析,可知其大致可分为两类:一类是直接套用软件工业界的要求,但学生缺乏技能和实践条件对任务根本无法完成,只能敷衍了事,达不到对软件工程知识理解和应用的目的;而另一类则是要求不明确且缺乏规范,因要求过于简单而无法达到增强对软件工程理论应用的目的。

鉴于这样的情况,学校迫切需要对软件工程实践教学加以改革,逐步建立实践与理论紧密结合的教学方法,着力培养学生的工程化开发能力,进而形成一个融基础理论、实践教学和参加软件科技竞赛的一种培养机制。因此,使课程设计成为对课堂教学的有效补充是实践教学改革的一个重要任务[4]。

二、“课程设计与科技竞赛”相结合的实践教学方法

课程设计与科技竞赛相结合就是要打破传统实践教学法的不足,充分调动学生学习的积极性和主动性,极大地激发学生的学习兴趣,以实践教学活动带动软件工程理论的学习。这样实践教学就能改变成为对理论知识的巩固应用和对工程实践能力培养的主动学习方式,从而使教学出现可喜的变化。它能把教师要求转变为以学生自主要求,把常规工程文档写作转变为以任务为驱动的分析、设计和实现的学习。

该实践教学是在教师的指导下由学生实施的一个较为完整的“项目”而进行的实践教学活动。参照科技竞赛题目的特点,并依据软件工程理论、方法的特点,制定了本课程设计的知识要求结构如图1所示。在软件工程理论知识的基础上,挑选某种易于扩展、应用的工程技术方法,在软件工程规范文档的要求下进行课程设计。从而使其按需求分析、总体设计、详细设计、实现和测试的流程来开发软件。这样,经过课程设计较为完整的项目训练,能有助于对学生工程技能的培养和对工程理论的理解,最终使学生在有限的时间内,对软件工程的核心理念有较好的把握。它能帮助学生有效地参与各级软件类科技竞赛,提高自己就业时的信心和社会竞争力,使其毕业后能够顺利过渡到实际的软件应用开发中,并在实践中对软件工程理论加以检验和完善并逐步锻炼成为社会急需的各类软件人才。

课程设计与科技竞赛相结合的教学方法是以学生为主体,教师为辅助,在课程设计实践中加深对软件工程理论的理解,培养学生在工程实践中发现知识与分析、解决问题的能力。要达到这样的实践教学目的,软件工程课程设计要做到以下的要求。首先,关于课程设计与科技竞赛相结合的教学内容的设计上,要以学生兴趣为中心自由选择题目。针对实践教学要求,学生选择合适的题目是保证该实践教学顺利开展的关键。因此,题目要以理论教学内容为依据,同时要考虑学生的知识结构特点和实践教学的要求。此外,题目要注重以解决身边的软件需求为背景,充分使其既包含教学知识点,又能激发学生软件开发的兴趣,达到培养学生软件工程能力的目的。其次,实践指导老师要提供合适的示范案例,并不断地引导学生向正确的方向前进。由此,在课程设计的准备阶段需要对为完成设计所需的基本知识进行明确且扼要地讲透。这样学生在遇到困难时,才知道行进的方向而不至于迷茫和不知所措!在课程设计中,要使学生明确课程设计的要求,并尽快地掌握工程的基本方法和使用工具的基本技能。同时,应尽量使学生独立地解决设计中所遇到的问题,而教师则需要对学生进行全程的指导和监督。再次,应确定合适评价标准,客观考核学生的学习效果。主要方法是以学生完成课程设计的情况来评价学生的学习效果,要求各课程组定时汇报开展的进度和情况,并及时地对各阶段性成果进行评价。

三、课程设计的教学实施

根据实践教学的具体要求,对课程设计与科技竞赛相结合的教学方法开展了研究,并总结出该方法的大致流程如图2所示。其基本指导思想是以案例示范为核心,不断地引导学生对其选定的课程设计进行改进,使其能满足掌握需求分析、软件设计与实现以及测试的基本技能,并把不断改进贯穿到整个设计中。由此,课程设计应从课程设计准备,精选小项目案例文档示范,课程设计题目的选定,课程项目的设计与改进,教师和学生一起对设计结果的评价与改进进行精心地组织。因此,准备阶段就是对训练内容所涉及的工程知识进行精炼概括与总结,使学生知道如何去应用这些知识。此外,示范的项目案例要进行精心的选择,使其能够覆盖课程设计实践教学要求,又要精干有效,易于参照与模仿学习,切忌过于庞杂。教师应把课程设计准备知识与项目案例进行参照讲解,让学生彻底了解训练的要求。在题目的选择上,可以适当地提供一些精选的小应用软件题目,让学生参照选择或根据生活经验自拟题目。并在项目设计中进行全程的监督和引导,并随时指出其设计和参照示范项目和实践要求的差距。对各阶段结果,应组织一些志愿学生和做得好的学生对各阶段结果进行评价并给出改进建议。如此不断地迭代改进,能够使学生较好地掌握软件工程的基本技能,并巩固对应的软件工程理论知识,从而取得举一反三的示范效果。这样就能够使学生理解并掌握一些基本的需求获取与分析、系统分析与设计等软件生命周期的技能,并学会软件工程规范文档的编写与应用。

第7篇:软件工程课程总结范文

关键词:离散数学;软件工程专业;任务驱动;改革与实践

doi:10.16083/ki.1671-1580.2017.04.052

中图分类号:G642

文献标识码:A

文章编号:1671-1580(2017)04-0180-04

离散数学课程是研究离散量的结构及其相互之间关系的学科。自上世纪70年代以来,它一直是计算机学科核心课程之一,更是软件工程专业的专业基础课。然而离散数学的教学现状却没有体现它作为软件工程专业基础课程的地位,一是学时不够多,二是教学内容比较陈旧,过于注重数学理论的推导,而忽视了它作为计算机后续课程的支撑作用。离散数学是不断发展的学科,它既包括一些古老的数学内容,又有一些近代建立起来的新的分支。主要有:集合论,逻辑推理,组合数学,代数系统及图论几个彼此独立的分支构成。它具有概念多,内容杂,理论性强,抽象,难于理解的特点;另外国内很多教材的内容很少提及与其他计算机各专业课程的关系,因此对于应用型工科学生,虽然认识到离散数学有助于提高他们抽象思维能力和逻辑推理的能力,但是他们更注重一种技能的获得,因此就会觉得离散数学枯燥无趣,愈发感觉学习起来很困难。

基于以上原因,国内各高校从事离散数学教学的许多教师,纷纷从各个方面进行了教学的改革与实践,例如有采用启发式教学的,有增加实验环节的,这些在教学中也起到了一定的效果。但是,要想真的从根本上解决这些问题,应该从教学内容上着手,从软件工程专业的角度进行改革。国外教材内容的改革要早于国内教材的变更,前者更侧重应用性、思维性训练,更突出离散数学作为数据结构、数据库及人工智能等后续课程的理论支撑的作用,并且会随着计算机出现的新兴领域,实时地加入到教材及课堂中。例如,由Dossey,J.A.等编著,章炯民等翻译的《Discrete Mathematics》中,就有大量的案例,而且每一个专题的最开始都是有一个非常典型的而且和实际生活相关联的例子,这些例子把离散数学的相关概念和理论与其他计算机专业课程紧密联系在一起,不仅能够引起学生兴趣,而且在兴趣的驱动下,掌握了离散数学的理论,同时也奠定了学习其他各专业课程的基础。而反观国内的教材,仍然停留在国外的七八十年代的阶段上,仍然只是大量的定律证明与推演,而和软件工程专业课程的相关性却很少提及,偶有例子也是一笔带过,这虽然对训练学生的数学能力是有一定作用,但学生不知道学这门课程到底有什么用,从而失去兴趣,那么这种目的也是达不到的。对于应用型工科生,学习离散数学的主要目的是作为工具应用于计算机领域中,因此可以借鉴国外教材的这种实用性,将离散数学的各个部分的讲解与后续各专业课程紧密衔接。但是国外教材的习题开放性过大,不是很适合国内学生的思维习惯,另外国内的课时要求也不允许完全照搬国外的教材,因此我们尝试在离散数学教学中开展教学内容改革,在软件工程专业培养目标指导下选择教学内容,精选案例,从而构建出适合国内学生的教学内容。

一、课程改革的设计

(一)明确教学目标

离散数学是计算机学科的专业基础课,计算机各专业都有离散数学课程,但各专业讲述的内容基本雷同,没有针对各专业的后续课程有偏重点地划分。本文从软件工程专业培养目标及后续课程出发,提出对离散数学课程的教学进行改革与实践,使离散数学能更好地为其它各专业课程服务。软件工程专业课程主要有:程序设计语言,离散数学,数据结构,计算机硬件基础,操作系统,计算机网络,编译程序构造,数据库设计与应用,软件工程导论,面向对象分析与UMI,软件系统设计与体系结构,软件质量保证与软件测试,软件项目管理等课程。重点强调在软件工程专业培养目标下去构建教学内容,设计合理的教学案例,案例的选择偏重于对后续课程的支撑作用。

(二)基于软件工程专业培养目标构建教学内容

挖掘离散数学及其他软件工程专业课程之间的切入点,精选教学内容,选取离散数学和后续专业课程紧密相关的内容。软件工程相关的核心知识单元包含:集合,关系,函数,树,图,数理逻辑,基本证明技术,基本计数,将这些核心知识作为重点讲述内容。

根据软件工程专业的人才培养目标和学生知识特点,不断调整课程结构和优选教学内容。结合软件工程领域的实际应用背景,选取离散数学和后续专业课程紧密相关的内容,例如集合与关系部分是算法与数据结构及数据库课程的基础,而数理逻辑与图论部分又与软件工程密切相关,代数系统又是人工智能及计算机组成课程的先修内容,这些部分需要作为重点内容,而一些纯粹的数学定理推导则作为辅助内容,就是简要介绍离散数学课程的基础理论,偏重离散数学知识在计算机课程中的直接作用。总之,选取基本教W内容的是以“实用为主,够用为度”的原则。

(三)基于软件工程专业培养目标设计教学案例

在软件工程专业要求下,设计典型案例,案例要能体现出后续课程对离散数学课程的“成果依赖”的作用。结合“离散数学”课程教学,以软件工程专业要求,结合任务驱动教学模式就提高教学效果和培养计算机专业学生的创新能力和综合素质方面进行实践研究。学生要进行课前预习,教师给出教学内容在实际生活中和计算机科学领域的应用,激发学生的主动性和兴趣;教师结合问题的应用领域设计相关问题并创设问题情境,呈现问题,学生在任务驱动下进行相关的学习活动,明确任务,查阅相关的资料;教师引导学生对教材内容以小组讨论的形式实现协作学习,深入探究问题的解决方案,从而进一步分析问题;教师利用启发式寻求解答的思想,指导学生基于教学内容利用启发式规则和推理来寻求更好的解答;学生在教师的引导下,以任务为驱动,逐步掌握各个章节的内容,并在此基础上将新知识进行巩固扩展。

(四)基于软件工程专业培养目标的任务驱动教学模式

任务驱动教学模式强调以学生为中心,强调学生的学习过程必须与学习任务相结合,通过完成任务来激发学生的兴趣和动机。根据任务驱动式教学过程的3个要素(教师、学生、任务)和任务驱动的理论基础提出任务驱动式教学模式。

该模式在任务驱动的主线下把教师的教学活动和学生的学习活动以任务为主线贯穿起来,通过任务来驱动教学活动,并在整个教学活动中体现了软件工程的方法。通过教学内容的选择、教学过程设计和教学评价体系的构建实现在软件工程目标下离散数学课程的教学改革。

二、一个与数据结构课程相关的案例

(一)确定教学内容

偏序关系是一种非常重要的关系,首先教师要介绍偏序关系及全序的定义,介绍哈斯图的画法及意义,偏序集中的最大元、最小元、极大元、极小元等相关概念。

(二)设计教学案例

由偏序集可以引出数据结构课程中的拓扑排序。所以在偏序关系中设计一个教学案例:构建房屋所需各项任务为节点,任务之间的先后顺序形成一个偏序关系:场地准备A(4,无),表示节点A是场地准备需要4天,无前继任务;地基B(6,A),表示节点B是打地基需要6天,前继任务是场地准备A;以此类推,排水设施c(3,A);骨架D(10,B);屋顶E(5,D);窗F(2,E);管道G(4,(c,E))表示管道需要4天,它的前^任务是c和E;电气设施H(3,E);绝缘I(2,(G,H));幕墙J(6,F);墙纸K(5,(I,J));清洁和油漆L(3,K);地板和装修M(4,L);检验N(10,I),所有任务都由一组每次只能进行一项任务的人来完成。运用所学到的偏序集的相关知识,合理安排各项任务,使任务之间要遵照题目所给的顺序完成。

(三)任务驱动教学模式

首先提出问题――在讲完偏序关系的概念及相关定理后,在下课前给学生布置任务(即上面的案例),学生带着这个任务去复习所学到的偏序集的相关知识,并思考该问题的解决方案;在下节课上课时,教师会和学生共同探讨问题的求解过程:首先确定一个任务集合:s={A,B,c,D,E,F,G,H,I,J,K,L,M,N},其中A..N是前面定义的各项任务。定义在该集合上的一个关系R:XRY X=Y或者Y必须在x完成后才能开始;然后引导学生确定这是一个什么关系,通过上节课介绍的偏序关系具有的性质:自反性、反对称性和传递性,因为XRX为真,所以该关系具有自反性;XRY为真,并J~YRX也为真,则能推出X=Y,所以该关系具有反对称性;若XRY为真,YRZ也为真,说明Y在x后完成,而z在Y后完成,则z在x后完成,或者它们相等,所以能推出XRZ为真,所以该关系具有传递性。由此可以引导学生得出该关系是偏序关系。既然是偏序关系,一定存在哈斯图,可以让学生根据上节课介绍的哈斯图的相关知识,绘制该偏序关系的哈斯图。首先要确定COV(s)=[(A,B),(A,c),(B,D),(D,E),(C,G),(E,G),(E,H),(H,I),(E,F),(F,J),(J,K),(I,K),(I,N),(K,L),(L,M)]。然后根据COV(s)绘制哈斯图如图1所示:

由上节课介绍可知,不是所有的偏序集都是全序,但是通过极小值的概念可以得出部分序,然后提出问题,如何由部分序能够得出该任务的全序?让学生进行讨论,教师可以引导学生在原序基础上通过增加一些条件,比如按任务时间的长短,或者按任务的字母顺序等,得到该偏序集的全序,进而确定任务完成的先后顺序――由此可以引出数据结构课程中的拓扑排序。假设两个任务点之间无法比较“大小”,例如完成任务A后,任务B和任务c之间无法确定哪个先做,可以按照时间短的先做,就可以确定先完成c再完成B了。可以通过找极小值的方式依次输出各个任务点,并且输出该极小值点后,把该点从图中删除,与其相关的线段也删除:首先该图中极小值是A,输出A后,把A删除,相应的AB,AC线段也删除,剩余的图中出现两个极小值,即B和c,再比较两者哪个时间短,c是3天,B是6天,则先输出c,然后把c及CG线段删除,然后再寻找极小值,以此类推,如果两个极小值的天数也一样,则按照字母顺序输出,这样就可以得到该偏序集的全序关系了,也就是所有的任务点之间都有“大小”一即先后顺序了:A,c,B,D,E,F,H,G,I,J,K,L,M,N。问题解决后,可以总结这就是数据结构中的拓扑排序。

使学生在任务驱动下,通过这样的案例,体会到离散数学课程与软件工程其它各门课程之间的关系,从而提高学习离散数学的兴趣与积极性,并为之后的专业课程的学习奠定良好基础,从而真正能够发挥离散数学作为软件工程专业基础课程的作用。

三、教学效果

基于软件工程培养目标的,任务驱动模式的离散数学课程的教学改革与实践在2012级学生中首次实施。在具体实施过程中,我们总结出有以下优势:

(一)本着离散数学是软件工程专业基础课程,与其他专业课程的密切关系,合理设计和组织离散数学课程教学内容,挖掘离散数学与软件工程各专业课程之间的切入点,研究有效融合离散数学教学内容与后续课程资源的恰当方式,使离散数学各个部分之间能够自然过渡,使知识之间能够自然承接。由与其他专业课程相关的案例中提出的问题,引出离散数学的相关理论,并用离散数学的知识去诠释该问题,在分析解决问题过程中强化离散数学在其中的支撑作用,将理论知识融入到具体的应用问题中,具体反映在后续课程中取得了很好的反馈效果。

(二)在教学准备中设计一个或几个典型案例,选取与软件工程专业课程密切相关的案例,案例可以分为基本案例和综合案例两种,基本案例与单个知识点对应;综合性案例则涵盖课程中若干个知识点,涵盖多个概念。这些案例要贯穿整个离散数学的教学内容中,要体现软件的形成过程中离散数学在其中的支撑作用。案例不要过多,一个案例要在各部分内容中重复出现,强化学生印象,同时可以使离散数学分散的教学内容有机地成为一个整体,使显示分离的教学内容按照隐示关联融合在一起。通过这种学生参与的案例的求解过程,极大地提高了学生的实践能力,在之后的软件建模和AcM大赛中,都取得了理想的成绩。

(三)采取任务驱动模式,学生积极性明显提高,参与感增强,兴趣提高,课堂效果明显比之前活跃,在期末考试中,虽然难度增强,却取得了比以往更好的成绩。

第8篇:软件工程课程总结范文

[关键词] 软件工程;知识领域;教学内容衔接

[中图分类号] G642.0 [文献标识码] A [文章编号] 1005-4634(2013)06-0075-03

0 引言

软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科,是信息领域发展最快的学科分支之一[1]。2001年经教育部和国家计委批准,全国成立了35所示范性软件学院,后增加到37所,截止到2012年12月30日,全国共有软件工程专业点415个。这415所高校由于学校定位和专业特色不同,所修订的软件工程专业人才培养方案也有所差异。为使人才培养方案与社会发展和教学改革相适应,需要不断对人才培养方案进行修订。在修订过程中,如何做好软件工程专业课教学内容的衔接,一直是计划制定者面临的一项难题。吉林工程技术师范学院软件工程专业经过多年的教学研究和实践,发现解决软件工程专业课教学内容衔接问题的有效办法就是要从解读软件工程教育知识体系入手,选择合适的知识单元进行课程整合,并根据学校的人才培养定位,优化课程体系的宏观结构和课程之间的微观顺序。

1 解读软件工程教育知识体系,整合知识 单元

1.1 解读SWEBOK和SEEK

我国软件工程本科教学规范的制定主要研究借鉴了SWEBOK和SEEK [2]。由ACM和IEEE/CS联合工作组组织制定的软件工程知识体系SWEBOK为确立软件工程的学科地位打下基础,SWEBOK 将软件工程划分为10个领域:软件需求、软件设计、软件构造、软件测试、软件维护、软件配置管理、软件工程管理、软件工程过程、软件工程工具和方法、软件质量。计算教程软件工程卷SE2004提出了软件工程教育知识体系SEEK,为制定软件工程本科教学计划提供了指南。SEEK由知识领域、知识单元和知识点三个层次组成。SEEK包含10个知识领域和1个应用知识领域,共计48个基本知识单元、17个应用知识单元,建议最小核心学时数为497。10个知识领域主要由计算机(CS)学科知识领域和软件工程(SE)学科知识领域组成,分别是:计算基础(CMP)、数学和工程基础(FND)、职业实践(PRF)、软件建模与分析(MAA)、软件设计(DES)、软件验证与确认(VAV)、软件演化(EVO)、软件过程(PRO)、软件质量(QUA)、软件管理(MGT)。1个应用知识领域为特定系统与应用(SAS)。

1.2 整合知识单元

知识单元必须以课程的形式进行讲授,所以必须将SEEK的10个知识领域的知识单元整合为课程名称。具体整合过程为:整合CMP中的知识单元为软件构造、形式化开发方法、C语言程序设计、算法与数据结构、计算机组成原理、操作系统、计算机网络、数据库原理8门课程。整合FNT和EVO中的知识单元为离散数学与软件工程导论2门课程。整合MAA和DES中的知识单元为软件需求、系统分析与设计2门课程。整合QUA和VAV中的知识单元为软件质量保证与测试1门课程。整合MGT中的知识单元为软件项目管理1门课程。整合PRO中的知识单元为软件过程管理1门课程。整合后共计15门专业课程,实践知识领域个别院校可根据自身情况进行整合。

2 优化课程衔接关系,制定应用型软件工 程理论课教学计划

2.1 调整课程结构

从高校软件工程专业课程结构来看,主要有层次课程结构、核心课程结构、模块课程结构和平台+模块课程结构四种[3]。大部分院校采用层次课程结构,即公共课程、基础课程、专业基础课程和专业课程。第一、二学年主要开设公共课和基础课,第三、四学年开设专业基础和专业课。此类课程结构使得课程衔接纵向逻辑关系较强,符合循序渐进的认知规律,有利于大多数学生以较少的时间比较系统地掌握专业知识。但由于层次课程结构是多学科、多门类课程的混合体,计划制定人不太好把握课程的直线式逻辑顺序,因此不能保证教学内容衔接的连续性、顺序性和整合性。“平台+模块”课程结构是近些年出现的一种新的高等学校课程结构,由基础课程平台和一定类型的课程模块构成。根据软件工程专业的特点,将课程结构调整为由公共基础课平台、学科基础课平台、专业基础课平台3个“平台”及计算机科学模块、软件工程模块、专业方向模块3个模块构成。“平台+模块”课程结构保证了知识结构内在的相互联系和相互独立,此课程结构中的“平台”是全校或同一学科各专业学生的必修课程,体现了人才培养的基本规格和全面发展的共性要求,体现了“宽口径”、“厚基础”的现代高等教育人才培养特点。此课程结构中的“模块”解决了计算机科学课程群与软件工程课程群开课顺序的争议性问题,专业方向模块根据社会人才需求、专业发展的趋势和学生的个性学习需求而设置。软件工程学科发展很快,专业方向模块可以根据需要进行调整。

2.2 调整课程顺序

根据整合的15门专业课程,按模块进行划分,可分为计算机科学模块课程和软件工程模块课程。计算机科学模块课程主要有离散数学、C语言程序设计、算法与数据结构、计算机组成原理、操作系统、计算机网络、数据库原理7门课程;软件工程模块课程主要有软件工程导论、软件需求、系统分析与设计、软件构造、形式化开发方法、软件质量保证与测试、软件项目管理、软件过程管理8门课程。计算机科学模块的专业课程开课顺序在各高校中大同小异,基本上是先开设C语言程序设计和离散数学,然后开设计算机组成原理、算法与数据结构、操作系统,最后开设计算机网络和数据库原理。调研各高校软件工程专业人才培养方案,发现软件工程模块专业课程的开设顺序不是很一致。结合先进的基于工作过程的课程设置方法[4],参照IEEE/EIA 12207.0-1996软件生命周期工作过程标准,调整了软件工程模块8门专业课程的开设顺序,其顺序依次为软件工程导论、软件需求、系统分析与设计、软件构造、形式化开法方法、软件质量保证与测试、软件过程管理、软件项目管理。

2.3 针对应用型本科院校设置专业方向模块课

吉林工程技术师范学院作为应用型本科院校,定位为培养应用型人才,因此所制定的专业方向模块课程要与人才市场应用需求相一致。目前在我国软件应用领域,软件开发人员需求缺口很大,因此将吉林工程技术师范学院软件工程专业人才培养方向定位为软件开发工程师。目前,在软件开发领域存在两大对垒:微软的NET和甲骨文公司的JAVA,因此将专业方向划分为NET方向和JAVA方向,并依据技术路线设置相应的专业方向课程。

2.4 研究成果

综上所述,所制定的应用型本科软件工程专业人才培养方案中的理论课程体系分学期执行的教学计划如表1所示。

3 成果评价

选取吉林工程技术师范学院软件工程专业理论课程体系为评价对象,利用文献[5]所建立的课程体系评价模型和评标指标,邀请四位专家在不区分专家权系数的前提下进行评价,评价情况如表2所示。

对评语集赋分值(优:95,良:85,中:70,及格:60),最终加权得分为92.25分,处于优秀的级别。本次评价只针对教学计划中的理论课程体系(即体现教学内容衔接效果的体系)进行评价,没有考虑实践环节、师资及实施情况等。

4 结束语

通过多年教学研究实践,总结出应用型软件工程专业理论课程体系制定的流程:(1)将SEEK的10个知识领域中的知识单元整合为15门专业课程;(2)采取“平台+模块”课程结构划分课程宏观结构;(3)微调15门课程的开课顺序,按1~7学期开设;(4)针对应用型人才培养定位,划分专业方向模块并设置课程。本次研究仅限于理论课程体系教学设计。切实加强软件工程实验课程和实践环节的创新与改革将是下一步重点研究的课题。

参考文献

[1]宋雨,赵文清.软件工程[M].北京:中国电力出版社,2007:2-5.

[2]齐治昌.软件工程学科的建立与软件工程本科教学[J].中国大学教育,2006,(2):28-30.

[3]王彬斐.我国高等学校课程结构优化改革研究[D].兰州:兰州大学,2007.

第9篇:软件工程课程总结范文

 

0 引言

 

教育部制定的“卓越工程师教育培养计划”(简称“卓越计划”),是深入贯彻落实《国家中长期教育改革和发展规划纲要(2010-2020年)》和《国家中长期人才发展规划纲要(2010-2020年)》的重大改革项目,也是促进我国从工程教育大国迈向工程教育强国的重大举措。该计划以“培养造就具有较强创新能力、实践能力、国际化的高素质工程技术人才”为目标,为国家走有中国特色的新型工业化发展道路,建设创新型国家和人才强国战略服务。

 

软件工程课程是软件工程专业的核心课,是一门研究应用计算机科学、数学、逻辑学、管理科学等原理,构建和维护有效、实用和高质量软件的学科,旨在培养学生分析与设计软件系统的能力,熟练使用各类流行软件技术解决实际问题的能力和控制软件质量的能力。因此,在教学过程中,不仅要严格落实实践教学实施方案,还要构建能够满足实践能力、创新能力培养要求的软件工程知识体系,更重要的是在教学环节中如何贯彻落实“培养学生实践能力与创新能力”这一培养目标。

 

1 能力导向培养的重要性

 

随着知识经济及信息产业的快速发展,信息产业已经成为推动国家经济发展的主导产业,其中的软件产业年均增长率达38%,对信息产业和国民经济的发展起着重要的支撑作用。同时,随着经济全球化的进一步推进,我国软件业面临更加广阔的国际市场和前所未有的发展机会。

 

但是,我国社科院的中国信息化形势分析研究报告显示中国还不是软件大国,制约中国软件产业发展的首要问题是人才问题。目前,在我国从事软件和信息服务业的人员大约400万,随着云计算、物联网等新兴产业的发展,软件人才在数量和结构上仍存在重大缺口。据信息产业部预测,软件人才需求的增长率将保持在每年l0%以上,人才的结构比例呈现为“橄榄型”,即“高端人才”(系统分析师、项目经理等)和“低端人才”(软件编程人员)严重短缺,具有较强综合能力、应用能力的软件工程师严重不足。

 

根据中国软件产业人才培养战略研讨会公布的统计数据显示:我国软件开发人员缺口在50-60万左右,未来5-10年中将缺少更大数量的软件开发人才。与此同时,计算机、软件工程专业每年有大批毕业生就业难。核心问题在于,高校培养的计算机软件人才不能适应社会需要,不能满足行业需求,人才与岗位需求不对接。国家“卓越计划”也是针对上述问题提出,旨在鼓励高校通过改革人才培养模式,强化校企合作,培养高素质工程师后备人才。

 

2 课程教学中存在的问题

 

2.1 实践环节比较薄弱,建设难度大

 

实践教学是课堂教学的补充、延伸和深化,是课程教学的重要组成部分,与理论教学相互依托、相互渗透、相互补充,为学生更好地掌握课堂知识、提高实践技能、培养创新能力提供有效的学习平台。

 

第三方机构对毕业生就业情况数据分析显示,学生工作后发现在校期间学习的软件工程课程是对职业发展影响最大的专业课程之一,但大多数学生在校期间对此却认识不足。其实,问题的关键就是在教师的教学和学生的学习过程中,理论和实践脱节。

 

在软件工程专业开设之前,软件工程课程是计算机科学与技术专业的一门基础课,教师在授课过程中大多偏重于基础理论介绍,主要介绍有关软件开发的基本原理,不开设课内实验课程,强化软件工程实践能力的其他辅助课程也很少,实践教学建设起步晚,发展比较薄弱。在软件工程专业开设之后,为了提高学生创新能力和工程实践能力,我们在专业课程设置中已经强化了实践教学环节,有了一套比较完整的实践教学体系。但在具体实施时,由于任课教师没有在企业任职经历,缺乏工程实践经验,导致实践教学变成为了实验而实验的教学环节。

 

虽然学校目前在企业实训方面已经取得,一些成果,但在具体实施过程中却遭遇校企合作难度大、合作水平较低、合作机制不灵活等情况,大部分校企合作仅局限于“学生短期实习”等浅层次水平,在培养应用型、创新型人才方面作用有限。

 

2.2 课程群意识薄弱,课程建设孤立

 

现代软件工程实践的一个重要特点是多学科乃至国际化的团队协作,有效的团队协作已经成为现代软件工程的重要标志。软件工程课程体系分为两大部分:理论教学体系和实践教学体系。前者包括课程设置中软件工程概论、软件设计等侧重基础理论的课程,后者包括软件测试、软件开发案例分析等侧重工程实践的课程。理沦指导实践,实践验证理论,两者相辅相成,构成一个有机的课程微观生态环境——课程群。

 

软件工程课程群中的课程从理论课程之间的知识模块划分和衔接到配套实践课程验证理论,每一部分相辅相成,互为补充。但在实际课程建设时,任课教师往往只关注于自己负责的课程建设,缺乏课程群意识,每门课程各自的实践课程只从与本课程相关的方面进行设计,学生对教学内容的理解具有局限性和片面性,不能建立起完整的知识体系概念,导致课程间交叉内容重复过多、基础内容薄弱、课程间衔接不力等问题。

 

3 课程建设方案

 

3.1 建立行之有效的课程建设管理机制

 

针对课程建设过程中容易出现孤立、重复等问题,我们在课程建设过程中加强了宏观调控

 

(1)依据课程间的关联度,划分课程群。按照培养方案中的课程设置以及教学内容知识点之间的关联度,将课程划分为若干课程群。根据课程知识模块,课程群一般包括两门以上课程。例如软件工程课程群包括软件工程概论、软件设计、软件测试、软件开发案例分析等;Java课程群包括Java编程基础、Java Web应用程序开发、Java企业级应用开发。

 

(2)对应课程群,成立课程组。每一个课程组由一名教学经验丰富的教师作为负责人,课程组负责人承担课程群的建设、课程组教师教学活动的组织、各门课程教学资料(教学大纲、教材选报、试卷材料等)的审核、组内各门课程的授课任务分配等工作。

 

(3)执行“课程一课程组一系”三级负责机制,实施“课程一课程群一专业”分层次建设机制。在已建立课程组和课程负责人的基础上,强化责任机制,任课教师负责课程建设,课程组负责课程群建设,系部负责专业建设。

 

课程组和课程负责人机制的实施,一方面使课程能够持续深入建设,另一方面使“课程一课程群一专业”成为一个有机的建设整体,避免了重复建设、孤立建设等问题,最终能够有效地通过课程建设促进专业建设。

 

3.2 以行业需求为导向,合理确定知识结构

 

知识结构是能力培养的基础,以软件产业对人才规格的要求为导向,在满足能力培养需要的前提下,学校以“必需、够用”为度,给学生留有一定的发展空间,改革创新人才培养模式,进一步优化软件工程的课程体系结构,根据课程群中各课程的相关性、课程知识的互补性进一步整合课程,重新拼装知识模块,构建整个课程体系,避免课程分散、泛而杂等现象,从而达到重点突出、效果显著的目的。

 

(1)优化课程内容,修订教学大纲。教学大纲是教学的基本依据,包括课程的教学目的和要求,教学内容提要及教学深度、广度、学时分配、教学进度、实习、实验、作业安排等。软件工程课程组以提升学生能力、提高学生素质为培养目标,结合学生特点,规划软件工程课程群的设置,按知识模块整合课程,修订教学大纲,使各门课程成为一个有机整体;加强课程间联系,实现从理论内容到实践教学的无缝衔接,按培养目标强化课程构建,深化课程体系建设。

 

(2)建立健全课程教学文件,规范教学秩序。课程教学文件包括:有关本课程的历史和现状及发展趋势的资料、教学大纲、教材、优秀教案、电子课件、试题库、试卷分析、教学检查情况、教学总结及改革计划等。通过健全教学文件,分类保管,发挥教学文件在教学研究和改革中的作用。

 

3.3 以工程实践能力培养为目标,构建多层次实践教学体系

 

无论是学校应用型人才培养的定位,还是卓越工程师计划,无一不在强调加强学生工程实践能力培养,因此构建行之有效的实践教学体系是课程建设的重中之重。

 

(l)构建分阶段、多层次的实践教学体系,实施多元化实践教学模式和教学方法改革。通过构建“实验一案例一项目”多层次的实践教学体系,学校实施“课堂实践教学一课程实训一学期实训”的多元化全方位训练式实践教学模式;加大实践教学学时,强调案例式、项目驱动式教学方法,案例与项目贯穿课程始终,有效衔接其他课程。

 

(2)引入校企合作,实现毕业生的高层次就业。对于二本院校,校企合作的推行难度要大很多,因此,合作方法要灵活多样。学校要加大与知名企业的联合力度,创造合作机会,例如和惠普合作的项目中,动员学生走出去,到惠普的基地进行长期实训。同时,聘请与学校合作的短训公司高级工程人才参与教学过程,指导学生实践,将人才培养与人才需求真正结合起来,把握高层次用人单位的人才需求与发展情况,提高学生就业综合竞争力,实现毕业生的高层次高质量就业。

 

3.4 实施“全方位训练式”教学模式

 

结合软件工程专业的特点,以卓越工程师的实施为契机,我们在教学中引入“全方位训练式”的教学模式,通过实际案例、项目的协作,培养学生的沟通能力和团队协作精神。

 

(1)加大实践教学学时,强化实践。首先保证相应课程的课内实验学时,以便强化学生对理论知识的理解;其次为重点课程增加课程实训,使学生对整个课程有一个综合的理解和把握;最后展开学期实训,使学生对课程群中的多门课程有一个全面的认识。

 

(2)利用“课堂实践教学一课程实训一学期实训一岗前实训”,全方位强化学生的专业实践能力。课堂实践教学以知识点的实验为主,使学生在实践中加深理解,要求学生独立完成。课程实训对一门课程的所有知识进行总结,要求学生小组配合,共同完成。学期实训一般安排在学期期末,跟学校小学期结合,对课程群相关课程进行总结和验收,要求学生团队协作。全方位训练的模式旨在为学生将来从事课题研究、工程项目研发打下良好的基础。

 

3.5 加大基础教学资源建设,提供学生自学平台

 

高等教育不应该仅仅是知识的单向传授,更应该是学生学习上的引导。丰富的教学资源是学生进行自主学习的基本条件,但资源建设不是简单的素材堆砌,而是通过建立界面友好宜用的课程网站引导学生充分利用时间进行自主学习,激发学生的学习兴趣。

 

学校还应建设互动式教学平台,打破教学时空限制,构建以学生为中心的自主学习环境;建立课程教学资源网,开发课程网上教学平台,为学生提供电子教案、多媒体课件、案例分析、习题作业、实验指导、相关学习网站链接等丰富的网上教学资源;同时提供在线测试、网上答疑等,扩充课堂教学区域,使学生可以在任何时候、任何地点进行互动学习。

 

4 结语

 

教育部“卓越工程师教育培养计划”的实施,对高等院校软件工程专业人才培养和学生能力培养提出了更高的要求。我们依据市场以及信息产业对人才规格的需求,结合本专业的办学定位和办学特色,提出了能力导向型软件工程课程群建设方案。该方案现已在软件工程专业本科生培养中试运行。接下来,我们将根据该方案的执行情况进行评估,以便进行合理改进,更好地满足社会对软件工程人才的需求,培养出理论知识丰富、工程实践能力强的高素质软件工程人才。