CDIO模式下软件工程课堂教学的创新

所属栏目:计算机教学论文 论文作者:/
论文摘要

  软件工程课程设立的宗旨是使学生学会运用工程化的理念、技术和方法,高效而合理地设计出高质量的软件,并进行有效的维护.可以说,软件工程教学效果的好坏将直接影响学生毕业之后是否能胜任其所从事的软件开发职位,是否能快速为企业创造价值.

  然而,笔者在多年教学过程中发现:一方面,软件工程在传统的授课力一式下,被大量的理论、原理与概念所包围,使得课程枯燥、乏味.学生在这样的氛围下只能是理论加理论,死记硬背,一到实际运用中,就不知该从何入手,无法应对眼前的问题,动手能力严重滞后于工作环境中的真实要求.另一方面,在对大学本科生的调查中发现,有超过98%的学生认为专业课教学应当在基本理论的基础上,更加注重结合项目案例、工程实践、学科前沿发展.学生迫切希望提高自身软件构思与设计能力、自学创新能力、团队协作能力、人际沟通能力.但是,实际的情况是:上述能力的培养并没有包含在传统的专业培养理念中.口前软件工程课程教学仍然存在重理论轻实践、重个人学术能力轻团队协作精神、重既有科技轻创新进取等问题.课堂教学忽视了学生的主动性与参与性,即使在实验课教学中,学生也只是根据教师布置的作业内容按部就班进行操练,忽略了培养学生的分析解决问题能力、创新设计能力等多方面的综合技能.

  基于以上问题,我们在讲授软件工程课程时,将CDIO工程教育模式应用于软件工程课程教学,注重学生的工程基础知识、个人能力、团队协作能力和工程系统能力的培养,在教学内容、教学方法和手段以及考核等方面进行了尝试和探究,取得了很好的效果.

  1 课程特点与CDIO教育理念

  软件工程的口标是解决软件开发和维护过程中所遇到的一系列严重问题,软件工程课程不同于一般的计算机专业课程,它具有自身的特点,主要体现在:cm综合性.软件项目开发是一项综合的系统工程,包括程序设计、数据结构、操作系统、数据库等,同时还涉及工程学、管理学经济学数学、心理学等多个领域的知识.(2)时效性.课程除了讲解基本概念、原理和方法外,更重要的是裁减己经不适用的内容,而补允-些最新的方法和技术,以适应市场的要求.(3)实践性.课程中包括大量的软件开发实践的经验和教训,具有很强的操作实践性.

  CDIO是2001年4所前沿的工程大学(瑞典查尔姆斯技术学院、瑞典林克平大学、美国麻省理工学院、瑞典皇家技术学院)合作开发的一个工程教育模型.它的口标就是将企业的需求用工程学基本原理来表述.CDIO的含义是构思(Conceive)、设计(Design)、实现(Implement)、运作(Operate),它包括4类一级能力、17组二级能力,其口标就是通过追踪产品研发到产品运行的生命周期过程,让学生以主动的、实践的力一式学].以能力培养为口标的CDIO大纲的4类一级能力、17组二级能力的具体内容为:

  1.层面能力:专业基础知识及应用.具体能力:(1)基础科学知识;(2)核心工程基础知识;(3)高级工程基础知识.

  2.层面能力:个人专业能力与职业素质.具体能力:(1)工程推理和问题解决;(2)实验与知识发现;C3)系统思维;(4)个人技能和素质;(5)专业能力和素质.

  3.层面能力:团队协作与沟通技能.(1)团队协作;(2)交流沟通;(3)外语交流.

  4.层面能力:在企业与社会环境下的构思一设计一实现一运用,即:(1)外部和社会环境;(2)企业及商业环境;(3)构思和工程系统;C设计;(5)实现;(6)运作.

  由此可见,CDIO工程教育理念对软件工程课程的创新启示是:在教学中应建立以学生为主体、迎合市场需求、坚持理论联系实践的课程架构;建立以项目为主线、以教师为引导、恰当安排时问和空问,创造良好学]氛围的实践模式;重新建立师生认可的课程评估标准,教学过程应着眼于能力及知识的教、学、做过程的关联,而不是专注于具体工程项目的知识内容.

  2  CDIO模式下软件工程课程的教学改革

  2.1  CDIO教育模式

  CDIO模式强调整个学科的统一协作关系,强调知识的关联性.它是一种较为宏观、全局性的教育策略,为整个工程教育搭建了一个骨架;在具体实践过程中,强调学生应学到一些必要的知识,但不是所有知识,更重要的是获得自学、应用的能力;在获得知识的过程中强调知识的构建过程,培养学生知识的自我获取能力和创新能力.事实上,这些能力的获取正是学生终身取之不尽、用之不竭的宝贵财富.在有限的学制中,任何专业教育都不可能将今后工作中所需的知识完全教授给学生,而只可能是教给学生在产品生产的过程中,如何运用己有知识去构建新的知识体系,这正符合软件工程人才培养的口标.

  在以往的软件工程课程的教学中,训练学生的动手能力以课程设计为主,然而我们在实践中经常会看到以下一些问题:cm课程设计质量不高,可靠性、可理解性和可维护性极差,缺乏监控和度量项目活动的标准.(2)教师在指导学生的设计过程中,缺乏对项目组成员的明确分工,没有团队合作精神,各成员要求不一致,模块划分不清,有时,同在一个课题组,有的学生工作量大,有的则工作量极少,并且在软件开发过程中,缺乏必要、有效的交流,导致功能模块重复开发或者多个成员开发出的模块很难有机地集成到一起.

  (3)设计过程不重视需求分析,有些设计项目学生完全不与用户交流,用户需求全凭自己的想象,这样设计出来的系统与实际应用之问的差距可想而知.(4)软件设计呈无序状态.软件开发一般要求经过需求分析、总体设计、详细设计,才能进行编码,而许多学生的软件开发跨越了需求分析、总体设计,直接进行编码,这种无序的软件开发过程只能带来人员组织的混乱,软件功能、性能无法保障. (5)编码结束就代表项目的结束.许多课程设计项目开发过程不完整,没有进行严格的测试、调试,导致软件错误和缺陷不断涌现,甚至无法控制。

  以上这些问题如何来解决呢?图1表述了将CDIO思想融入《软件工程》课程的教学方法.图中的骨架为软件开发基本流程中的需求分析、系统设计、编码测试和软件维护,分别对应CDIO的构思、设计、实现和操作,它作为贯穿始终的主线,最终完成一个产品的生命周期过程.每个阶段学生都必须不断地提出问题和任务,然后分析问题,解决问题,只有完成一个阶段的任务才能进入下一阶段.要注意的是,我们的软件设计开发不再只局限于课程设计单一的模式,而可以是企业实际项目或教师科研项目以及学生科研立项、毕业设计等形式,引导学生的过程也不再局限于任课教师,最好是由企业资深工程技术人员或在企业中参与过实际项目的教师进行指导,学生采取分组模式完成实践任务,项目初期就列出合理的工作计划并要求期问必须定期进行交流和任务汇总.这样既可以使学生有机会身临其境地将自己置于决策者或解决问题的地位,又能让学生综合运用所学的知识进行分析、设计和实现,允分发挥其主观能动作用,增强消化和运用知识的能力.

  2.2 建立课程质量评估体系

  课程的教学效果要经过教学质量的评估和检验.为此可将课程教学的效果根据学生掌握的程度大致分为4个级别来进行评估,但是,评估和检验并不是作为该课程教学效果的最后结论,而是及时反馈到课程教学中,将其作为进一步提高课程教学质量的一种改进意见.课程教学效果考核等级的级次及内容如下所示:

  (1)初级:能对课程的基本内容作收集、整理、裁剪和综合.清楚软件开发的步骤.

  (2)中级:能吸纳新的方法和技术,能综合运用所学知识进行软件开发过程的训练.

  (3)高级:能直接参与教师或软件企业的实际软件项目的部分开发.

  (4)最高级:能独立组织项目开发小组并能按软件过程规范进行软件工程项目的开发与管理.在课程考核形式上,融合CDIO理念,就是摒弃“一考定乾坤”的理论试卷考核模式,更注重多元化、全力一位地考核学生的学]能力.课程考核可分为理论知识考试、实践能力测试、项目文档撰写及项目小组答辩等几方面,通过几个环节的考察,全面考虑、综合评定学生成绩.考核力一式更注重基础知识、个人能力、团队协作能力和工程系统能力4个层面上的训练和积累.学生通过努力由低级别向高级别迈进,从而激发学]兴趣,增强自信心.

  2.3 推行团队合作模式

  加强协作与沟通能力培养.在项目任务分配时,采用分组完成的团队合作模式,每组3^}7人,这样的人数设置与企业项目团队人数基本吻合,每个小组由一个组长负责,组长由计算机水平较高的学生承担,既允当项目经理角色,也起着一定的技能带头人作用.为了避免学生过分依赖组长,将项目需求分割成若十相对独立的模块分配给每个小组成员,这样小组中的所有成员都独立承担一定的任务,在这一过程中学生必须相互配合才能共同完成项目.通过团队合作模式,能够全面培养学生团队协作与沟通能力.

  2.4 构建软件工程课程网络教学平台

  建立软件工程网络教学平台,将课程公告、课程特色、教学计划、教学方法、教学大纲、实验大纲、电子教案、网络课件、教学录像、作业]题、模拟测试题、考核办法和实验指导书等课程资源公布在网上,以改变传统的单一教学模式,激发学生自主学]的兴趣,树立以学生为主体、教师为主导的新的教学体系.

  3 结束语

  CDIO是一种全新的工程教育模型,它所强调的是以学生为主体、以项目为主线的教育组织原则.

  CDIO要融入到软件工程课程的教学中,可通过优化教学手段、更新考核模式等手段,实现课程教学的创新,并最终构建起软件工程课程教、学、做的立体化教学体系,这对于确保软件人才培养质量具有十分重要的意义.

  参考文献:
  [1]张海藩.软件工程导论[M].北京:清华大学出版社,2008; 112-127.
  [2]Rcgcr S Pressman.软件工程实践者的研究方法[M].黄柏素,梅宏,译.北京:机械工业出版社,2010; 133-135.
  [3]刘胜辉,姚登举.基于CDIO的软件工程专业课程体系优化的研究[J].科技与答理,2013(3).
  [4]王红珍,马燕.软件工程课程教学模式改革与探索[J].价值工程,2012(9).
  [5]才智,赵春刚,顾泽元.基于CDIO模式的软件工程课程教学改革[J].经济师,2011(8).
  [6]张晓龙.面向应用型人才培养的软件工程课程改革与实践[J]计算机教育,2010(5).

'); })();