APP下载

CDIO驱动的软件工程课程案例库建设研究

2016-03-27徐传运张小川

重庆与世界(教师发展版) 2016年12期
关键词:案例库案例知识点

徐传运,张 杨,涂 飞,王 森,龙 华,张小川

(1.重庆理工大学 计算机科学与工程学院, 重庆 400054;2.重庆师范大学 计算机与信息科学学院,重庆 400030)



【博士论坛】

CDIO驱动的软件工程课程案例库建设研究

徐传运1,张 杨2,涂 飞1,王 森1,龙 华1,张小川1

(1.重庆理工大学 计算机科学与工程学院, 重庆 400054;2.重庆师范大学 计算机与信息科学学院,重庆 400030)

针对软件工程教学过程中理论与实践分离、离散的知识学习与综合的软件系统开发能力相矛盾、当前案例偏于辅助理解理论而轻于能力培养、课程组织顺序与软件工程实践顺序不一致等问题,基于CDIO思想的软件工程课程案例设计阶梯模型,提出CDIO驱动的课程案例库建设方案,并以软件工程课程案例库为依托开展了专业课程教学方法的综合改革。

CDIO;阶梯模型;课程案例库;软件工程

一、 当前软件工程课程教学中存在的问题

作为一个新近发展起来的专业,软件工程专业在学生培养理论、方法、实践等方面国内外都处于探索阶段,相关的教育实体都以自己的教学实践,在探索行之有效的教学方法[1-14]。

当前软件工程课程教学中普遍存在以下4种主要问题:

(1)理论教学与实践教学分离:即理论知识脱离工程实践,导致学生在实践时迷茫、蛮干、低效、质量低、不规范、不可控;具体实践没有结合理论,导致学生只能算是“工匠”,无法在实践中去验证、理解和提升理论,只能完成小工程,难以胜任大工程。

(2)离散的知识学习与软件系统开发必需的综合能力相矛盾:当前软件工程课程体系通常分为基础课、专业基础课、专业课几个层次,每门课程都各自为中心的讲授理论、开设验课,而没有把提高学生的软件项目开发能力直接联系起来,致使学生即使每门课都学得很好,但仍然存在不能开发软件系统的问题。

(3)当前案例的目标偏向辅助理解理论而轻于能力培养:当前的软件工程案例通常只与单门课程配套,大部分是针对单个知识点设计(为了学生更好地理解知识点),而与软件工程专业最终的教学目标(培养学生的软件系统开发能力)较少有直接的关联。

(4)教学课程的组织顺序与软件工程实践顺序不一致:软件工程专业的教学课程是根据软件工程知识结构的内在关系进行组织的(即从基础到专业,从先导到后续的顺序),但软件工程实践是按照软件系统开发活动的先后(即主要的顺序是系统分析、设计、实现、测试、发布、实施)。然而,如果软件工程教学直接从实现技术(即程序设计,主要涉及C语言程序设计、JAVA语言程序设计、数据结构等课程)开始,必将导致学生在学习了程序设计的基本能力之后需要进行较大规模的程序设计实践,但较大规模的程序又需要系统分析与设计的综合能力(而此时学生还不具备这样的素质和能力),最终使得学生的程序设计能力没有得到实质的锻炼和有效的提升。

二、 基于CDIO的软件工程课程案例库

以上4种问题的本质在于:理论知识的传统学习轨迹(先搞清楚基本原理,再动手实施)与工程实践的具体操作流程(先动手做,实践过程中发现问题,再思考解决方案)正好相反,因此应该将其组合成环环相扣的阶梯模型,其核心思想为:软件工程专业培养从基础技能的原理性课程启程,快速学习后就进入运用所学理论知识的虚拟项目中实践;学生在具体的项目开发中发现其对理论知识的理解和基础技能的使用存在的种种问题,再进一步学习训练专业技能的理论和实践课程,以完善其专业技能和职业素养;周而循环,在专业技能实践环节中发现的自身不足,有机会在研习综合设计类课程的时候进行修正,而综合素质的欠缺还能够在最后的创新创业环节中弥补。

基于CDIO的软件工程课程案例库建设,以及基于此的教学方法改革是一种行之有效的解决方案。CDIO代表构思(Conceive)、设计(Design)、实现(Implement)和运作(Operate),以产品研发到产品运行的生命周期为载体,将工程毕业生的能力分为工程基础知识、个人能力、人际团队能力和工程系统能力4个层面,让学生以主动的、付诸实践的,且将相关课程加以有机联系的方式学习软件工程。基于CDIO的基本思想,本文原创性地提出“CDIO”(即IDCO,代表实现(Implement)、设计(Design)、构思(Conceive)和运作(Operate))这一概念,用以实现如图1所示的软件工程课程案例设计模型。

在任何理论尚未完全成熟的专业领域,案例教学法是把理论与实践结合的有效方法。比如古代建筑业理论尚不成熟的时候,“师傅带徒弟”参与建筑项目就是最优的人才培养模式。本文所建设的课程案例库,就是让软件工程专业的学生有机会在各类课程教师的全程指导下充分参与到各个层次的案例项目中,通过一个个具体的软件案例,分阶段地逐步掌握软件工程开发所需的思维模式和综合能力。

CDIO驱动的软件工程课程案例库建设总体思路为:

(1)多渠道收集切实可行的项目案例,把多门课程的多个知识点有机融入到同一个项目案例中,对课程案例库中的所有项目案例进行有利于技能培养的改造。各门课程在讲授理论时,以解决案例中相关子问题作为教学目标之一。完成一系列相关课程后,学生就能彻底解决和充分理解项目案例中所有子问题,就能开发项目案例所依托的软件系统,从而把多门课程的相关知识点在项目案例的全程引导下有机结合起来。

(2)以培养学生软件系统开发综合能力为中心建设软件工程课程案例库,在项目案例的基础上设计针对单门课程的课程案例,每个课程案例都服务于学生软件系统开发能力的提高。例如:设计“公务员招聘报名系统”项目案例,该项目案例涉及到所有专业基础课和专业核心课,比如“数据库原理及应用”这门课的课程案例就是“公务员招聘报名系统”的数据库设计部分,其培养目标就是提高学生软件系统的数据设计能力。

(3)基于CDIO设计软件工程综合案例库,其中项目案例的每一个阶段都可以独立抽取出来作为课程案例,而课程案例所需的理论知识由其所属课程提供。例如:在设计“JAVA程序设计”的课程案例时,指导教师应该提供系统分析、设计、数据设计的相关内容,学生仅需要根据案例提供的内容编程实现相应的软件系统。

三、基于课程案例库的教学改革

基于CDIO的基本思想,分阶段设置基础型(培养学生基础知识的应用能力)、设计型(养学生综合运用知识的软件开发能力)、综合/探究型(培养学生的综合设计能力)、创新创业型(培养学生项目研发能力)4个层次的课程案例和项目案例,把学科建设成果转化为本科教学的优质资源,实现从验证型向技能型、从单一知识点向复合知识点的转变,打造多层次合理递进、各阶段无缝连接的培养模式。

基于上述思想,CDIO驱动的软件工程课程案例库的核心工作主要分为两个方面:

(1)案例建设。案例库中的项目案例和课程案例:首先是一个基本的软件系统,建设时尽量让案例保持普通软件系统本就具有的所有特性,尽量让系统与真实的商用系统一致;其次是一个经过精心设计、与教学内容和教学过程紧密结合的软件系统,应该在确保前一点的基础上,对案例进行适当而不失本真的改造,使其能有效应用于具体的教学过程中。

(2)案例系统的开发,即开发用于案例教学的软件系统本身。为了保持普通商用系统的基本特性、开发过程、开发方法,应该使用普通商用系统的开发工具让学生能经历真实软件产品的构思、设计、实现和运作全过程,使得案例系统的开发与普通的软件系统的开发没有本质的不同。但是作为一个用于本科教学的软件系统样本,案例特别强调开发的规范化、正统化、标准化,理论、技术、方法、工具的先进性以及开发过程、开发结果的高质量,因此在商用软件开发过程中经常存在的、违背理论的灵活变通处理方法,以及根据特定情况而采用的、违背规范化和标准化的小技巧都不应该出现在案例库中。

软件工程课程案例库中软件系统的具体内容应该包括9个方面的内容:即软件系统的背景、软件系统的需求材料、软件系统的需求分析报告、软件系统的设计(包括:概要设计、数据库设计、交互设计、详细设计等)、软件系统的实现(包括:模板数据库、可执行的程序、代码、)、软件系统的测试设计、软件系统的测试报告、软件系统的部署指南和软件系统的操作手册。而软件工程课程案例库主要包含3个方面的建设结果:即案例的知识点设置设计、案例的教学使用指南和案例的学习指南。

软件系统案例为面向案例的教学提供了基础,而案例的合理使用,需要把理论教学、实践教学与案例紧密结合;案例价值的充分发挥,需要采用与之相适应的教学方法。在传统教学中,每门课程只需要完成课程规定的教学目标,而基于CDIO理念的跨课程案例驱动的一体化教学,要求软件工程的所有课程必须相互配合、相互支撑,共同服务于学生软件系统研发能力的全面培养。因此,要求教师必须对教学案例有充分理解、对其他课程的内容有所了解,才能在教学重点和教学方式上与其他相关课程相互配合,同时也要求教师与时俱进地提升基本技能、人际能力以及产品、过程和系统构建能力。

由此可知,基于课程案例库的教学改革重点在于:充分调动相关教师参与软件工程教学改革的主动性和积极性,强化各任课教师综合运用案例系统的能力,进而提高专业教师的软件产品研发水平。

四、结语

CDIO驱动的软件系统案例库建设以及软件工程专业课程教学方法研究的特色与创新之处在于:

(1)以层次化的课程设计阶梯模型作为软件工程专业践行CDIO理念的突破口。本文以层次化的课程设计阶梯模型为中心和纽带,把软件工程的专业课程紧密联系起来,形成CDIO要求的一体化课程体系,达到CDIO要求学生具备的工程基础知识、个人能力、人际团队能力和工程系统能力等4个层次能力的目标。

(2)逆向CDIO驱动的课程案例库建设。传统的案例建设多以单门课程为依托,辅助单个知识点的理解、培养学生单个方面的能力,这种方式不利于培养学生开发软件产品的综合能力,导致学生每一种技术都了解,但就是不能开发出完整的软件产品。本文以培养学生的软件产品研发综合能力为目标,从基础性技能的培养入手、逐层递进,把相关课程的关联知识点结合到同一个案例中,有利于学生理解理论知识,并综合运用这些知识分析、解决实际问题,最终开发出完整的软件产品。

(3)通过项目案例和课程案例把理论教学与实践教学充分结合。理论与实践分离一直软件工程教学中存在的问题,本文以项目案例和课程案例为媒介,把二者有机结合起来(把理论知识融入到案例中有助于学生理解抽象的理念知识,在理论知识指导下建立案例有助于学生科学、系统地实践)。

[1] 林芳,陈庆强,杨荣华.基于工程能力培养的软件工程专业实践体系构建[J].计算机教育,2015(15):62-65.

[2] 李彤,张璇,王旭,等.SE-CDIO工程教育模式的探索与实践[J].高等工程教育研究,2014(1):52-57.

[3] 张培颖,郑秋梅,宫法明,等.CDIO工程教育模式在软件工程核心课程教学中的应用[J].教育探索,2014(12):21-22.

[4] 宗欣露,徐慧.基于CDIO教育模式的软件工程课程教学改革[J].教育教学论坛,2015(4):96-97.

[5] 吕庆文,曹蕾,李远念,等.基于CDIO模式培养复合型卓越软件工程师的探索[J].高教探索,2013(1):71-76.

[6] 林连南,左宝河,刘嘉伟.“三位一体”的卓越软件工程师培养模式 [J].计算机教育,2015(2):1-4.

[7] 乔付,王国权.CDIO 理念下软件工程专业课程群建设探索[J].广西教育,2011(1):37-38.

[8] 李春英,汤志康.CDIO模式下的软件工程课程设计实践[J].实验技术与管理,2011,28(1):173-175.

[9] 赵楷,张琳琳.基于CDIO的《软件工程》实践课程教学改革与探索[J].现代计算机,2012(9):31-36.

[10]孙凌宇,冷明,郭晨,等.基于CDIO的创新型软件工程人才培养模式研究[J].山西财经大学学报,2011,33(1):239-240.

[11]才智,张学金.基于 CDIO 模式的软件工程课程群教学改革[C].Third International Conference on Education Technology and Training (ETT).2010.

[12]朱广萍,柳益君,叶飞跃,等.基于岗位能力的软件工程专业实践能力培养研究[J].江苏理工学院学报,2014(6):86-92.

[13]卢莹,庄丽华.基于CDIO工程教育理念的软件工程实践教学改革[J].教育教学论坛,2015(28):102-104.

[14]张淑丽,刘胜辉,张宏国.软件工程 CDIO 综合训练项目设计与执行研究[J].黑龙江教育(高教研究与评估),2011(10).

(责任编辑周江川)

重庆市研究生教改项目”工程硕士研究生创新教学模式的探索与实践”(yjg143053);重庆市教改项目“软件工程专业实践教学体系的构建与实践”(133021);重庆师范大学高等教育教学改革研究项目(201403);重庆市教委科学技术研究项目(KJ1400525)

徐传运(1979—),男,副教授,博士,研究方向:软件工程、人工智能。

10.13769/j.cnki.cn50-1011/d.2016.12.009

徐传运,张杨,涂飞,等.CDIO驱动的软件工程课程案例库建设研究[J].重庆与世界,2016(12):28-30.

G642

A

1007-7111(2016)12-0028-03

猜你喜欢

案例库案例知识点
心血管外科教学案例库的建设及应用研究
一张图知识点
国内首个海事司法案例库正式上线
一张图知识点
第四页 知识点 歼轰-7A
案例4 奔跑吧,少年!
基于实践应用的基坑工程设计案例库建设研究
随机变量分布及统计案例拔高卷
MTI朝鲜语同声传译教学案例库建设研究
发生在你我身边的那些治超案例