1培养目标定位
软件开发及管理会涉及数学、经济学、心理学、工程学、管理学、美学等方面的知识。要培养学生在沟通、交际、管理等方面的综合能力和职业道德素质。在软件开发课程的教学中,要明确培养目标,使学生通过该课程的学习具备相应的能力和素质,从而能胜任软件开发过程中所担任的角色,如项目经理、质量监控人员、测试人员、系统分析员、系统设计师、程序员、维护人员、咨询人员等。理论教学知识、能力和素质是相辅相成的,知识是素质形成和提高的基础,是能力的载体,能力是知识和素质的外在体现。要培养出具有高素质、综合能力强的软件人才,必须加强知识特别是理论知识的教学。在该课程理论教学中,要以案例为导向,及时引入新知识新技术,重视双语教学的作用,挖掘学生的能动性。
2学生实践教学改革的途径
实践教学改革是对传统实践教学观念的改革,以先进的实践教学培养理念来武装头脑。主要表现在以下几个方面。
2.1坚持实践教学四年不断线的原则
实践是培养学生理论联系实际、提高综合素质与创新能力的重要手段。对软件工程专业的学生来说,在整个四年学习期间的实践教学应进行统筹安排,由浅入深、由易到难,形成完整的实践教学体系,保证实践创新能力培养四年不断线。
2.2坚持实践教学中学生为主,教师引导的原则
人才培养的主体是学生。因此,在本专业实践环节中,始终坚持以学生为中心的理念。围绕学生设计实验教学内容和方法,让学生有更多的自我发展空间,形成了以“个性化学习”和“多样化发展”为主导的实践人才培养模式,改变了传统的“灌输式、填鸭式”实验教学方法,极大地提高了学生学习的积极性、主动性。
2.3坚持教学相长的原则
在课外实践创新的过程中,教师与学生共同进步,教学相长。一个好的教师必定是一方面指导学生,一方面研究学问。在实践中改善学生的学习行为与改进教学、促进教师自身发展是相辅相成,相互促进的。青年学生朝气蓬勃,接受新事物快,在指导学生的实践活动中,教师能从学生身上受到很大的启发、学习到很多东西。
2.4坚持实践的鼓励和奖励原则
改变传统的只以考试成绩作为评定学生成绩的唯一依据,在教学计划中注重实践的鼓励和奖励。我们发现,有的学生成绩一般,但热爱实践,动手能力极强;而学习成绩非常好的学生,可能动手能力较差。这些动手能力强的学生可能会因成绩一般,作业拖欠等受到批评或不重视。这会打击他们的积极性,也使得其他学生更加轻实践重理论,不利于学生的发展,更不利于国家的创新。因此,如何将实践落在实处,找到实践与课堂教学的最佳平衡点,就非常关键。
3培养方案的制定
3.1专业人才培养目标通过深入一线单位。
广泛听取工程实践对本专业人才在专业技能、专业知识等方面的要求和建议后,确定本专业的培养目标:以创新能力为中心,努力培养适应我国社会主义现代化建设实际需要,德、智、体全面发展;具有系统、扎实的理论基础,在信息的获取、传递、处理及应用等方面具有较宽广的专业知识、较强的英语语言能力和实践动手能力,良好的人文素质和创新精神,并在通信工程、智能仪器仪表、计算机应用、自动化及光信息和信息传感专业领域中的一个或两个方向具有专长。毕业生可以根据自己选择的专业方向,在信息技术产业、科研部门、高等院校及其相关领域从事电子信息科学与技术的研究、设计、集成及开发等方面的工作,也可以选择到国内外相近学科的教学、研究部门继续深造。
3.2设计符合培养目标的课程体系
在课程体系的设计过程中,强化对课程内容上的调整,模块化课程设置,使设计出的课程体系具有前瞻性、针对性和可操作性,保证人才培养的基本规格、全面发展的共性要求和培养目标的实现。人才培养教育内容及知识结构总体设计上实施“平台+模块”模式:通识教育平台、专业教育平台和综合教育平台。通识教育平台包括人文社会科学、自然科学、计算机应用技术和军事体育4个模块;专业教育平台包括专业理论教学和专业实践教学两个模块;综合教育平台包括思想教育、科技创新活动和社会实践3个模块。同时为了体现“厚基础、宽专业”的原则,突出基础性和原理性,突出传统理论和前沿知识的渗透,不再具体分专业方向,而是增强了基础专业课和任意选修课。
3.3加强实践教学环节,注重培养学生的动手能力和创新能力
从人才市场反馈的情况来看,只有为数不多的毕业生能胜任某一专业领域的工作,多数毕业生在专业技能上甚至还赶不上经过了系统岗前培训的高专高职学生。鉴于此,有必要加强实践教学环节,突出培养学生的创新意识和创新能力。通过对软件工程工程专业的人才培养模式的研究和探索,提出了软件工程专业教学的改革思路和方法。这些方法的提出,为新时期对创新型人才的培养提供借鉴和参考,对提高学生整体综合素质有着强烈的现实意义。
作者:王欣欣 单位:同济大学软件学院
一、软件工程教学的改革思路
1.调整教学内容、注入教学案例。
在教学内容方面,对较陈旧的教材内容进行精简,并增加与现代软件开发方法和技术紧密相关的教学内容。针对软件工程教材内容普遍重视理论、实用案例不足的状况,将案例教学法引入课堂教学中,通过案例分析对抽象内容进行诠释,帮助学生理解软件开发理论和原则。
2.贯通学科知识、突出综合特色。
软件工程课程内容覆盖面较宽,与数据库系统原理、程序设计语言、算法设计与分析等软件类课程内容交织,为了实现相关课程之间内容的贯通、拓展学生的学科知识、提高学生综合分析和解决问题的能力,将专题学习(Project-BasedLearning)、任务学习(Task-BasedLearning)和基于问题的学习(Problem-BasedLearning)等教学方法不同程度的引入课程教学中,突出软件工程课程的综合性、实践性特色。
3.拓展实践环节、培养工程能力。
软件工程实践教学直接影响学生的软件开发能力,学生软件开发能力的提高是一个循序渐进的过程。在常规的软件工程课程培养方案中,主要安排了基础实验内容,对学生的工程化意识和综合实践能力的培养重视不够。采取分层次、分步骤安排实践教学内容,由基础实验逐步过渡到综合实践的教学方式,可以将软件工程学科概念和学生的软件项目研发能力逐步整合在一起,使学生在软件工程实践过程中逐步掌握学科知识、提高软件项目的分析设计和实施能力。
二、软件工程教学改革的实践
1.课堂教学中的案例教学。
案例教学可以强化软件工程理论与实际应用问题的结合。通过典型案例分析,可以对抽象的软件工程原理和准则进行直观诠释,帮助学生理解课程内容。教学案例通常不是孤立的个案,一组精心设计的教学案例可以帮助学生理解基础知识、掌握基本技能、提高运用知识的能力。以软件需求建模为例,在讲述软件系统行为模型的描述工具状态转换图时,使用几个不同的教学案例,由浅入深地分析状态转换图的作用、使用规则以及如何描述系统的行为三个方面的问题。首先,以学生比较熟悉的操作系统中的一个进程为例,通过状态转换图形象的描述了进程的就绪、运行、等待和完成四个状态及其转换关系,着重说明状态转换图的作用。第二个案例是机票预订系统的行为模型创建,介绍状态转换图的画法规则。机票预订系统行为涵盖机票查询、机票预订、订单支付等几个分支,比较完整地展现了状态转换图中的图符及使用规则。实际的软件项目通常比较复杂,软件需求建模要考虑多种条件、各种异常状态,所以将复印机控制程序作为第三个案例,其状态转换图包括复印机正常工作流程、中断处理流程(比如复印过程中复印纸用完等情况)、硬件故障处理流程等几种系统行为。
2.问题式教学模式的运用。
软件开发过程是一个综合性的系统工程。软件工程课程内容与多门先修的软件课程密切相关,软件开发项目是一个多学科贯通的综合实践问题。对于软件工程课程,从教学内容到教学形式都应该倡导调动学生的主动学习情绪,即学生能够基于自己的思考和实践解决问题。我们在软件工程教学改革实践中,提出了一种主动式、知识探究型的教学模式———问题式教学模式。问题式教学活动中,教师依据课程内容和学生的知识结构、设计具备一定挑战空间的非良构问题;将学生组织成学习团队;学生通过分析、解决紧密联系实际的非良构问题来探究问题背后隐含的概念和原理、拓展学科知识、提高实践能力、培养团队协作意识。问题式教学方法注重教学内容的实用性,在一定程度上激发了学生的学习主动性、强化了学生的软件开发实践能力。
3.实践教学环节的调整。
从学生运用软件工程基础知识的能力、系统化的个人职业技能训练、软件项目的开发能力和团队协作意识四个层面出发,将软件工程实践教学划分为基础实验和综合实践两个层次。基础实验培养学生对软件生命周期组成阶段的理解,重点训练学生对需求分析、软件设计和软件测试阶段相应开发技能和工具的掌握。基础实验的内容偏重于设计型,实验形式又具有验证型的特征。基础实验是课堂教学中案例教学法的延伸和应用,教师在课堂上通过教学案例阐述如何运用软件工程理论、技能和工具;学生在实验过程中,模拟解决与教学案例类似的软件问题,以实践的方式体会和巩固软件工程知识。基础实验强调对每个学生进行软件工程基本技能的完整训练,学生通过实验获得软件开发过程的认知、掌握软件工程的理论和方法,提高个人的软件项目能力。软件工程综合实践侧重对学生软件项目开发能力和团队协作意识的培养,是一个系统化的工程实践活动,实践内容涵盖软件项目开发的完整过程。学生可以通过综合实践环节获得较真实的软件项目开发经验。在综合实践环节,教师要为学生提供兼具普适性和创新性特色的综合实践题目。普适性意味着实践题目要具备明确的可操作性,学生能够通过综合实践活动体验软件项目开发的基本规范、经历软件开发的完整过程、巩固软件工程理论知识和技能。所以综合实践题目应该与现实中的实际需求密切相关,这类需求明确具体,学生的感性认识深刻。考虑到学生组织成不同的软件开发团队、每个团队要完成各自独立的软件项目开发工作,实践题目还应该具备在知识需求上基本相同、但应用背景不同的特点,使学生容易借鉴类似的软件开发案例、从中汲取直观具体的软件设计和实现经验。题目的创新性特色体现在软件开发技能方面引导学生温故知新、举一反三;即对满足普适性要求的实践题目,进行适当的需求扩展和功能延伸,要适当保持问题的非良构性、保留一定的不确定性和疑点,留给学生思考空间。在综合实践题目的创新性层面上,学生需要在问题的牵引下去适当学习专业以外的知识、搜集提炼信息、补充项目本身缺失的条件,最终制定可行的软件项目实现方案并解决软件实施问题。综合实践题目的创新性特点,可以在一定程度上激发学生的创造性思维潜力、扩展学生的专业视野。软件工程综合实践环节是学生对软件开发过程的模拟体验,现代软件开发工作多以团队协作方式进行。所以对学生而言,需要组建软件项目开发团队并进行成员角色分配。组建项目团队时要考虑学生的认知优势、学习习惯、学习兴趣、动手能力、逻辑思维能力,性格特点等因素,引导学生按照既发挥个人特长、又优势互补的原则进行团队组建和工作分工。
三、结语
将精心设计的典型教学案例注入软件工程教学内容中,可以有效改善软件工程教材内容偏重软件开发理论和软件设计原则、弱化软件开发实践的状况。知识探究型为主要特点的问题式教学模式可以激发学生的学习主动性、拓展学生的学科知识、提高学生综合分析和解决问题的能力。基础实验与综合实践相结合的层次化实践教学方式,将学生的软件工程基本技能和软件项目研发能力整合在一起,使学生在软件项目的分析设计和实施能力的训练、团队协作意识的培养方面获得完整体验。
作者:卢莹 林荫 单位:常州大学 信息科学与工程学院
1高校软件工程课程实践教学现状
目前的软件工程课程实践教学主要采用学生课下完成实践作业的形式,学生在学习“纸质的”和“静态的”理论知识和案例的基础上进行开发实践,这样的实践教学过于简单,缺乏环境的支持,无法做到“学”“练”和“指导”的全过程互动,不利于真正提高学生的实践能力。(1)学生只能被动地学习和接受案例,但是却不能提出自己的见解,更不能将其与其他学生来分享。(2)学生无法对案例细节和过程进行“拆解”,并对某部分过程和细节进行模拟训练,更无法对模拟的结果进行动态的对照,发现自身理解的偏差和问题,从而加深对案例的理解和掌握,不至于让案例学习“流于表面”。(3)学生无法通过实践环境,动态创建软件开发项目,并将项目开发的过程细节和结果与其他学生进行分享,甚至让其他的学生动态参与其中,也无法让教师对实践项目进行全程指导。(4)学生没有自己的学习空间,无法将课程学习和实践中的心得、体会等进行记录,也无法将一些好的技术、方法等资料与其他学生进行分享。(5)案例的更新缺乏一种动态的机制,只能依赖教师去收集,无论是数量,还是真实性、贴切度,都无法满足实践教学的要求。
2具体改革实施方案
经过上文的分析,我们发现目前的软件工程课程实践教学存在课程设置不合理、缺乏能够被学生深入学习和理解的实际案例、缺乏能够支持“学”“练”和“指导”全过程互动的实践教学环境等问题。为此,我们提出了基于实践教学平台的软件工程课程实践教学改革方案,主要从课程结构设置和实践教学平台的使用两个方面入手,加强学生的实践训练,并以实践教学平台为支撑,让学生切实提高实践能力。下面将对具体的改革方案进行论述。
2.1以课程实训代替上机课,加强实践教学
我们以课程实训来代替传统的上机课,将总学时数由48学时调整为64学时,其中,理论课设置为32学时,实训课设置为32学时。课程实训是在教师的指导下,由学生自己完成一个完整的软件开发实践课题,具体的课程内容如下。(1)课题确定:由学生自己根据日常生活和学习中所接触或熟悉的软件来命题,如学生管理系统、图书馆管理系统、选课系统、宿舍管理系统等,也可以由教师结合教学、科研的实际情况设置多个课题供学生选择,要求课题的规模大小适中,有一定难度,但经过努力可以较好地完成。(2)组织形式:课题以小组的形式来进行组织,包括一位组长和3~4位组员,对于系统中的部分开发工作也可以采用“外包”的形式,即由组外的其他学生来帮助完成。(3)教学安排:实训课每周安排2学时,每一位组长在课上介绍本组项目的进展情况和碰到的问题等,其他项目组的学生可以就项目的某些部分提出疑问,教师可以对项目的实施进行指导,也可以引导学生就某一细节问题展开讨论。(4)成绩评定:课程实训结束时,每组需提交所完成的软件系统和相关的文档、实践报告等,而成绩的评定采用验收答辩的形式,即每个小组演示开发完成的软件系统,并总结项目实践经验和提出改进意见,由教师主持实践项目验收答辩,由其他组的代表(或组长)充当评委,共同对实践项目的成果进行评审并打分,最后由教师进行综合评定,给出每组的课程实训的最终成绩。
2.2建立完整的课程实践平台,注重过程学习和模拟实践训练
我们建立一套完整的课程实践平台,学生可以利用平台来进行案例学习和模拟训练,也可以通过共享资料来形成知识库,供每个人参考。此课程实践平台主要包括4个部分。1)案例学习机。案例学习机主要为学生提供完整的案例,以供学生进行学习。案例学习机包含由多个案例构成的案例库,案例的选择基本上以学生所熟悉和易于接受的软件开发项目为主,每个案例都详细记录了一个完整的软件开发项目实践,包括项目管理的内容,具体内容包括以下几个方面。
(1)案例分解,细节分析:每一个案例都是完整的整体,同时又可以按照软件开发的流程
(瀑布模型)进行分解(如图1所示),学生既可以看到软件开发过程中每一步的结果,也可以看到每一步的过程细节,包括开发中所碰到的问题,解决的办法,甚至开发中所走的弯路等,都可以在案例中进行浏览和学习。(2)个性思考:学生在学习案例的过程中,可以针对某一个细节进行思考,并发表自己的评论(如图2所示),也可以浏览其他学生针对此所发表的评论,所有的评论构成了一个个性思考评论空间,可以给后续的更多的学生提供借鉴。2)项目模拟训练器。项目模拟训练器为学生提供了一个案例模拟和项目开发实践的平台,为学生进行课程实训提供了实践环境,学生可以将案例作为框架,进行模拟训练,也可以进行全新的项目开发实践训练,具体内容包括以下几个方面。(1)案例模拟环境:学生可以直接引入一个案例作为模拟项目,可以参照案例的执行步骤自行进行每一步的执行操作,并将自己的操作结果与案例进行对照(如图3所示),找出自己模拟训练中存在的问题。
(2)项目实践环境:学生可以自行创建一个新的项目。
实践环境将给出项目管理和开发实践的基本流程及任务框架(如图4所示),学生可以进行项目组建、编写项目计划、记录项目执行过程,可以按照软件开发流程进行需求分析、系统设计、编码及测试等活动。这样的项目实践环境是全方位的,即学生可以训练项目管理方面的技能,也可以训练软件开发环节的技能,如学生可以创建一个项目,并担任项目经理,同时可以将项目在系统中发布,并“招聘”分析人员、设计人员、编码人员、测试人员等,其他学生可以在系统中看到发布的“招聘”信息,如果愿意的话,可以在此项目中担任相关的角色,这样可以实现一种“角色扮演”,即某个学生既可以是A项目的项目经理,以此训练项目管理方面的技能,也可以是B项目的系统分析师,以此训练系统分析的技能,还可以是C项目的开发工程师,以此训练编码实现的技能等。
(3)网上评审:学生在项目实践环境中创建了自己的项目后,安排相应的开发工作。
在每一个开发阶段结束时,都可以发布“网上评审”邀请,其他学生可以对该项目本阶段的工作进行评审和打分,这样,最终会汇总出每个项目的总分,也可以根据每个学生在各个项目中参与的工作评分汇总出其项目实践的总分,教师也可以很容易统计出每个学生的实践课程成绩。
(4)师生交流平台:教师和学生可以在模拟训练器中针对某个具体的任务或实践活动进行交流。
教师可以提出相应的指导意见,也可以创建一个论坛,以方便学生之间、学生和教师之间的交流。
(5)案例申请:学生可以将自己的实践项目申请成为案例。
教师对实践项目的过程细节和结果进行评估,若通过,则可以提交到案例学习机的案例库中,这样可以形成一个良性循环,不断地补充由学生自己开发的真实案例,以供更多的学生进行学习。3)学习空间。学习空间是为每个学生的课程学习和实践所建立的一个私有空间,学生可以将课程学习的计划、日程安排、学习心得等置入学习空间中,形成一个完整的学习平台。学生可以在个人的学习空间的桌面上放置便签、今日安排、实践项目列表、消息提醒、常用联系人等快捷图标(如图5所示),并通过点击进入相关部分进行操作。4)知识库。知识库是所有资料的共享空间,学生和教师均可以将与软件开发项目相关的资料上传到知识库中,并依照技术、管理等进行分类,以供所有学生进行查阅(如图6所示),还可以建立一个FAQ库,把所有的问题和问题的解答(可以是教师解答的,也可以是其他学生解答的)进行记录并存储到FAQ库中,以供学生在实践过程中碰到问题时进行查阅参考。建立了课程实践平台后,软件工程的课程实训就可以依赖此平台进行开展,学生可以在“案例学习机”中进行学习,在“案例模拟环境”中自己动手参照案例进行模拟训练,在“项目实践环境”中创建和组织新的项目,也可以参与到其他组的项目工作中,在“学习空间”中构造自己的私有学习环境,记录学习心得等,还可以将心得或资料上传到“知识库”中,与其他学生进行分享,从而使“学”与“练”动态结合,真正达到课程实训的目标。
3结语
随着国内软件产业的发展,软件企业对软件人才的需求无论从数量上还是从质量上都在不断的提升,这也使得高校不断地尝试和探索进行各种课程教学模式的改革,从而真正培养出具有实践开发能力的软件人才。笔者正是基于这一背景而提出的软件工程课程实践教学改革方案,是基于一套完整的实践教学平台环境,以课程实训的方式来切实提高学生的软件工程实践能力。该方案从2010年提出并开始实施,目前已基本完成实践教学平台环境的开发并对2009级和2010级软件工程专业的学生进行了实践教学改革的尝试,取得了良好的教学效果。下一步,我们将继续完善实践教学平台环境,并在进一步完善改革方案的基础上,将其推广到计算机科学与技术及其他计算机软件相关专业,以满足企业对软件人才的需要。
作者:穆海伦 田晓 单位:杭州电子科技大学 计算机学院