论文部分内容阅读
摘要:CDIO是目前较为前沿的一种工程教育理念,它着重强调了以项目实现为教育组织原则。本文针对软件工程课程的特点及课程培养目标,提出一种结合CDIO工程教育理念的“做中学”应用下的软件工程教学模式。通过对软件工程课程中需求部分课程设计的分析,阐述了这种教学模式的实际应用方式,对软件工程课程教学模式的改革进行了有益的探索和研究。
关键词:软件工程;CDIO;教学模式;建构主义;“做中学”
序言:
软件生产工程化思想的提出为解决软件危机带来的软件发展上的困扰提供了指导性原则。随着软件工程实践的深入,相继提出了许多技术、方法、原则等,丰富了软件工程的理论基础,使软件生产摆脱了软件危机的梦魇,走上了迅猛发展的道路。由于软件工程在软件行业发展所起到的作用,软件工程作为一门学科被列为高等学校中计算机科学与技术专业的专业基础性学科就是情理之中的事情了。
软件工程课程设立的宗旨是使学生学会运用工程化的理念、技术和方法,合理而有效地设计出高质量的软件,并进行有效的软件维护。软件工程的教学效果的好坏将直接影响学生毕业之后是否能胜任其所从事的软件开发岗位,是否能够快速为企业创造价值。
然而,软件工程在传统的授课方式下,被大量的理论、原理与概念所包围,使得无论是老师还是学生在上课过程中都颇感枯燥和乏味。学生在这样的氛围下所學习到的知识只能是理论加理论,死记硬背,一到实际环境运用中,就不知该从何入手,无法应对眼前的问题,动手能力严重滞后于工作环境中的真实要求。长此以往,带给人们的感觉仿佛软件工程这门课程对实际软件工程项目的指导意义不大,认为软件工程这门课程类似于文科,考试时做两道练习题、背一背理论概念就可以了。至于工作以后,跟着公司项目组的要求做项目就可以了解整个软件开发的过程,开发方法和技巧也可以在工作当中慢慢摸索和学习。但这是软件开发公司所需要的人才吗?公司喜欢启用的是慢慢培养起来的新手呢,还是新人一到公司就能够马上融入到项目组为公司创造效益的新人呢?显而易见,是后一种。
软件公司所需要的人才应该是对项目有宏观认识,不仅有基本的分析设计的技能,还要有遇到问题多层次、多角度、灵活地处理问题的能力。不仅需要在技术方面有扎实的基本功,还必须拥有良好的团队协作精神、实践能力和自学能力。软件工程的现行教学模式显然已经落后于市场的实际需要了。
一、先进教育理念的引入
(一)“做中学”原则与建构主义
杜威是美国著名的哲学家、教育学家和心理学家,是美国“进步教育”运动的先驱。“教育即生活”、“教育即生长”、“教育即经验的改造”是杜威教育理论中的三个核心命题,提出了举世闻名的“做中学(Leaming by doing)”原则。杜威认为,“做中学”也就是“从活动中学”、“从经验中学”,“从做中学是比从听中学更好的学习方法”。主张在教学中学生必须成为积极主动的参与者,而教师则是学生活动的协助者。
“做中学”是以“做项目”为主线来组织课程,以用导学。在做项目的过程中学习必要的知识,知识以必需、够用为度,强调自学能力的培养。在知识运用的过程中,以学生为中心的自主学习理论,则体现出建构主义的思想。建构主义的主要观点是给学生提供活动的时空(思维空间),让学生主动建构自己的认知结构,培养学生的创造力。它强调学生是信息的加工主体,是知识意义上的主动建构者;教师是建构活动的设计者、组织者和促进者。教师给学生设计的问题很多是学生现有知识经验不能解决,并能够引起他们强烈认知冲突的问题。对于这些问题或疑难学习者须在他人帮助下经过积极地回忆、探究、建构,才能加以解决。教师通过创建良好的学习环境,充分发挥学生的主观能动性和创造性,引导学生积极探索,主动发现,从而达到对所学知识意义建构的目的,为创新能力的提高奠定基础。
(二)CDIO教育理念
CDIO是在2001年4所前沿的工程大学(瑞典查尔姆斯技术学院、瑞典林克平大学、美国麻省理工学院、瑞典皇家技术学院)合作开发的一个新兴型的工程教育模型。它的目标就是将企业界的需求以工程学基本原理来表述。CDIO是构思(Conceive)、设计(Design)、实现(Implement)、运作(Operate)4个英文单词的缩写,它以产品研发到产品运行的生命周期为载体,让学生以主动的、实践的、课程之间有机联系的方式学习工程,从而培养学生的科学技术、个人能力、人际团队能力和工程系统能力。它是“做中学”原则和基于项目的教育与学习的集中体现。CDIO的指导思想是以诚信、职业道德培养为基础,以工程设计任务为导向,以培养个人能力、团队能力和系统的适应与调控能力为主要目标,让学生以主动的、实践的课程之间有联系的方式学习工程。
CDIO的关联原则强调了工程项目实践全生命周期的教育,应着眼于能力、知识的教、学、做过程的关联,而不是专注于具体工程项目的知识内容。
(三)三种教育理念的融合
上述三种教育理念都重视从实际问题入手引发学生的学习动力,强调学习的主动性与积极性,着重培养学生实际问题的解决能力和个人工程素质。三者之间也各有侧重点。CDIO更强调整个学科乃至专业上的统一协作关系,强调知识的关联性。它是一种较为宏观、全局性的教育策略,为整个工程教育搭建了一个骨架;在具体实践过程中,“做中学”则体现为一种实施策略。它强调在基于项目的反复学习训练中,形成各种能力。学生在此过程中学到一些必要的知识,但不是所有知识,更重要的是获得自学、应用的能力;在获得知识的过程中引用建构主义思想则强调知识的构建过程,培养学生知识的自我获取能力和创新能力。
这些能力的获取正是学生终身取之不尽用之不竭的宝贵财富。在有限的学制中任何专业教育都不可能将今后工作中所需的知识完全教给学生,而只能教给学生在产品生产的过程中,如何去“做中学”,如何运用已有知识去构建新的知识体系,这正符合软件工程人才培养的目标。图1表述了在软件工程课程背景下如何将这三种思想有机地融合在一起。鱼骨的骨架以软件开发基本流程中的需求分析、系统设计、软件实现与测试和软件维护,分别对应CDIO的构思、设计、实现和操作,作为贯穿始终的主线,最终完成一个产品的生命周期过程;在此基础上每一个阶段都采用“做中学”的方式从引导入手,根据不断提出的问题和任务,分析问题,解决问题,完成各个阶段中的任务。在引导的过程中需要教师应用建构思想搭建相应的学习环境,引发学生的学习热情和积极性。
二、融合模式下的课程设计
一个软件项目的生命周期是从用户的问题定义开始的。因此在课程一开始,首先抛出一个项目背景,同时给出相应的任务,让学生根据已有的知识体系构建和完成任务,在完成任务的过程中学生会发现问题和知识的不足。此时的教师扮演着加油站的角色,从“用”的角度为学生梳理要学习的知识点,并着重对这些知识点进行讲解,使学生在“做中学”,并在学习的过程中深化对问题的认识和知识的理解。在课程设计中对整个需求分析阶段设置了5个任务。引导任务的作用是将学生引入到当前阶段的环境中,后续的四个任务则是一步步引导学生在不断进行的知识补充过程中逐步完成阶段性目标。图2需求分析阶段课程设计鱼骨示意图详细描述了此阶段课程设计的细节。下面结合软件工程中需求部分中需求定义部分(任务2)内容,探讨一下在融合模式下的实施过程。
(一)根据一个项目的实际背景提出问题,引发学生的思考
在讲述完需求工程概述,对于需求阶段的任务有了一个总体上的认知之后,向学生抛出一个问题:“你认为为了促成软件的实现,需求规格说明书中需要提供哪些方面的内容?”学生可能会根据目前已经掌握的知识和已有的项目经验,通过查阅资料进行自主学习,提出“系统功能描述”、“系统运行环境”、“用户界面要求”等多项内容,同时以书面的方式进行提交。
(二)抽取项目小组进行需求描述评审
以抽签的方式选派项目小组代表陈述小组的成果,同时其他项目小组的学生扮演评审委员会的角色,对陈述内容进行评价,指出不足。学生在争辩的过程中,很有可能自己就会提出疑问,发现问题。通过评审,学生可以各抒己见,不仅锻炼了语言表达能力,还可以培养学生质疑探究的能力。教师最后作一下总结,指出遗漏的内容和其中存在的问题,引出需求规格说明书中需要写明的内容及其原因。对比和强调需求规格说明书与用户需求说明书之间的区别,指出构建需求模型对于后续软件开发工作的重要性,并解释需求模型的组成内容及其关系。
(三)教师对知识点进行梳理,引入需求模型知识点
学生在经过了自己的思考之后,会对新引入的知识点产生浓厚的兴趣。教师在此基础之上对需求模型中的各部分内容进行讲解,例如比较难掌握的功能模型—数据流图,学生将会以前面的知识需求为背景,在听取老师的讲解过程中找到相应的答案,从而达到知识的理解和领悟能力的改善。
(四)运用新知识到自己的项目中
虽然对知识进行了重新的构建,在实际的运用过程中肯定还会存在这样那样的问题。因此,知识的及时运用非常关键。在老师讲授完新的知识内容之后,要求学生根据自己的项目背景重新修改、完善先前提交的项目需求文档,强化学生的知识的实际运用能力。
到此,该阶段的教学内容告一段落。
三、总结
针对软件工程课程存在的一些困惑,本文提出了一种结合CDIO理念“做中学”的软件工程课程新的教学模式,强化了学生工程应用能力的培养。目前这种教学模式仍处在一个摸索的阶段,虽然通过实践取得了一些有益的成果,但是在一些细节上仍然需要在继续深入领会融合模式精髓的基础之上做好进一步实践、完善和探索。
参考文献:
[1]査建中.論“做中学”战略下的CDIO模式.高等工程教育研究,2008,(3).
[2]徐学福.找寻迷失的人性:探究学习的终极关怀—柏拉图“回忆”学习、杜威“做中学”与建构学习比较.广西师范大学学报,2004,(4).
[3]顾佩华,沈民奋,李升平,等.从CDIO到EIP—CDIO——汕头大学工程教育与人才培养模式探索.高等工程教育研究,2008,(1).
关键词:软件工程;CDIO;教学模式;建构主义;“做中学”
序言:
软件生产工程化思想的提出为解决软件危机带来的软件发展上的困扰提供了指导性原则。随着软件工程实践的深入,相继提出了许多技术、方法、原则等,丰富了软件工程的理论基础,使软件生产摆脱了软件危机的梦魇,走上了迅猛发展的道路。由于软件工程在软件行业发展所起到的作用,软件工程作为一门学科被列为高等学校中计算机科学与技术专业的专业基础性学科就是情理之中的事情了。
软件工程课程设立的宗旨是使学生学会运用工程化的理念、技术和方法,合理而有效地设计出高质量的软件,并进行有效的软件维护。软件工程的教学效果的好坏将直接影响学生毕业之后是否能胜任其所从事的软件开发岗位,是否能够快速为企业创造价值。
然而,软件工程在传统的授课方式下,被大量的理论、原理与概念所包围,使得无论是老师还是学生在上课过程中都颇感枯燥和乏味。学生在这样的氛围下所學习到的知识只能是理论加理论,死记硬背,一到实际环境运用中,就不知该从何入手,无法应对眼前的问题,动手能力严重滞后于工作环境中的真实要求。长此以往,带给人们的感觉仿佛软件工程这门课程对实际软件工程项目的指导意义不大,认为软件工程这门课程类似于文科,考试时做两道练习题、背一背理论概念就可以了。至于工作以后,跟着公司项目组的要求做项目就可以了解整个软件开发的过程,开发方法和技巧也可以在工作当中慢慢摸索和学习。但这是软件开发公司所需要的人才吗?公司喜欢启用的是慢慢培养起来的新手呢,还是新人一到公司就能够马上融入到项目组为公司创造效益的新人呢?显而易见,是后一种。
软件公司所需要的人才应该是对项目有宏观认识,不仅有基本的分析设计的技能,还要有遇到问题多层次、多角度、灵活地处理问题的能力。不仅需要在技术方面有扎实的基本功,还必须拥有良好的团队协作精神、实践能力和自学能力。软件工程的现行教学模式显然已经落后于市场的实际需要了。
一、先进教育理念的引入
(一)“做中学”原则与建构主义
杜威是美国著名的哲学家、教育学家和心理学家,是美国“进步教育”运动的先驱。“教育即生活”、“教育即生长”、“教育即经验的改造”是杜威教育理论中的三个核心命题,提出了举世闻名的“做中学(Leaming by doing)”原则。杜威认为,“做中学”也就是“从活动中学”、“从经验中学”,“从做中学是比从听中学更好的学习方法”。主张在教学中学生必须成为积极主动的参与者,而教师则是学生活动的协助者。
“做中学”是以“做项目”为主线来组织课程,以用导学。在做项目的过程中学习必要的知识,知识以必需、够用为度,强调自学能力的培养。在知识运用的过程中,以学生为中心的自主学习理论,则体现出建构主义的思想。建构主义的主要观点是给学生提供活动的时空(思维空间),让学生主动建构自己的认知结构,培养学生的创造力。它强调学生是信息的加工主体,是知识意义上的主动建构者;教师是建构活动的设计者、组织者和促进者。教师给学生设计的问题很多是学生现有知识经验不能解决,并能够引起他们强烈认知冲突的问题。对于这些问题或疑难学习者须在他人帮助下经过积极地回忆、探究、建构,才能加以解决。教师通过创建良好的学习环境,充分发挥学生的主观能动性和创造性,引导学生积极探索,主动发现,从而达到对所学知识意义建构的目的,为创新能力的提高奠定基础。
(二)CDIO教育理念
CDIO是在2001年4所前沿的工程大学(瑞典查尔姆斯技术学院、瑞典林克平大学、美国麻省理工学院、瑞典皇家技术学院)合作开发的一个新兴型的工程教育模型。它的目标就是将企业界的需求以工程学基本原理来表述。CDIO是构思(Conceive)、设计(Design)、实现(Implement)、运作(Operate)4个英文单词的缩写,它以产品研发到产品运行的生命周期为载体,让学生以主动的、实践的、课程之间有机联系的方式学习工程,从而培养学生的科学技术、个人能力、人际团队能力和工程系统能力。它是“做中学”原则和基于项目的教育与学习的集中体现。CDIO的指导思想是以诚信、职业道德培养为基础,以工程设计任务为导向,以培养个人能力、团队能力和系统的适应与调控能力为主要目标,让学生以主动的、实践的课程之间有联系的方式学习工程。
CDIO的关联原则强调了工程项目实践全生命周期的教育,应着眼于能力、知识的教、学、做过程的关联,而不是专注于具体工程项目的知识内容。
(三)三种教育理念的融合
上述三种教育理念都重视从实际问题入手引发学生的学习动力,强调学习的主动性与积极性,着重培养学生实际问题的解决能力和个人工程素质。三者之间也各有侧重点。CDIO更强调整个学科乃至专业上的统一协作关系,强调知识的关联性。它是一种较为宏观、全局性的教育策略,为整个工程教育搭建了一个骨架;在具体实践过程中,“做中学”则体现为一种实施策略。它强调在基于项目的反复学习训练中,形成各种能力。学生在此过程中学到一些必要的知识,但不是所有知识,更重要的是获得自学、应用的能力;在获得知识的过程中引用建构主义思想则强调知识的构建过程,培养学生知识的自我获取能力和创新能力。
这些能力的获取正是学生终身取之不尽用之不竭的宝贵财富。在有限的学制中任何专业教育都不可能将今后工作中所需的知识完全教给学生,而只能教给学生在产品生产的过程中,如何去“做中学”,如何运用已有知识去构建新的知识体系,这正符合软件工程人才培养的目标。图1表述了在软件工程课程背景下如何将这三种思想有机地融合在一起。鱼骨的骨架以软件开发基本流程中的需求分析、系统设计、软件实现与测试和软件维护,分别对应CDIO的构思、设计、实现和操作,作为贯穿始终的主线,最终完成一个产品的生命周期过程;在此基础上每一个阶段都采用“做中学”的方式从引导入手,根据不断提出的问题和任务,分析问题,解决问题,完成各个阶段中的任务。在引导的过程中需要教师应用建构思想搭建相应的学习环境,引发学生的学习热情和积极性。
二、融合模式下的课程设计
一个软件项目的生命周期是从用户的问题定义开始的。因此在课程一开始,首先抛出一个项目背景,同时给出相应的任务,让学生根据已有的知识体系构建和完成任务,在完成任务的过程中学生会发现问题和知识的不足。此时的教师扮演着加油站的角色,从“用”的角度为学生梳理要学习的知识点,并着重对这些知识点进行讲解,使学生在“做中学”,并在学习的过程中深化对问题的认识和知识的理解。在课程设计中对整个需求分析阶段设置了5个任务。引导任务的作用是将学生引入到当前阶段的环境中,后续的四个任务则是一步步引导学生在不断进行的知识补充过程中逐步完成阶段性目标。图2需求分析阶段课程设计鱼骨示意图详细描述了此阶段课程设计的细节。下面结合软件工程中需求部分中需求定义部分(任务2)内容,探讨一下在融合模式下的实施过程。
(一)根据一个项目的实际背景提出问题,引发学生的思考
在讲述完需求工程概述,对于需求阶段的任务有了一个总体上的认知之后,向学生抛出一个问题:“你认为为了促成软件的实现,需求规格说明书中需要提供哪些方面的内容?”学生可能会根据目前已经掌握的知识和已有的项目经验,通过查阅资料进行自主学习,提出“系统功能描述”、“系统运行环境”、“用户界面要求”等多项内容,同时以书面的方式进行提交。
(二)抽取项目小组进行需求描述评审
以抽签的方式选派项目小组代表陈述小组的成果,同时其他项目小组的学生扮演评审委员会的角色,对陈述内容进行评价,指出不足。学生在争辩的过程中,很有可能自己就会提出疑问,发现问题。通过评审,学生可以各抒己见,不仅锻炼了语言表达能力,还可以培养学生质疑探究的能力。教师最后作一下总结,指出遗漏的内容和其中存在的问题,引出需求规格说明书中需要写明的内容及其原因。对比和强调需求规格说明书与用户需求说明书之间的区别,指出构建需求模型对于后续软件开发工作的重要性,并解释需求模型的组成内容及其关系。
(三)教师对知识点进行梳理,引入需求模型知识点
学生在经过了自己的思考之后,会对新引入的知识点产生浓厚的兴趣。教师在此基础之上对需求模型中的各部分内容进行讲解,例如比较难掌握的功能模型—数据流图,学生将会以前面的知识需求为背景,在听取老师的讲解过程中找到相应的答案,从而达到知识的理解和领悟能力的改善。
(四)运用新知识到自己的项目中
虽然对知识进行了重新的构建,在实际的运用过程中肯定还会存在这样那样的问题。因此,知识的及时运用非常关键。在老师讲授完新的知识内容之后,要求学生根据自己的项目背景重新修改、完善先前提交的项目需求文档,强化学生的知识的实际运用能力。
到此,该阶段的教学内容告一段落。
三、总结
针对软件工程课程存在的一些困惑,本文提出了一种结合CDIO理念“做中学”的软件工程课程新的教学模式,强化了学生工程应用能力的培养。目前这种教学模式仍处在一个摸索的阶段,虽然通过实践取得了一些有益的成果,但是在一些细节上仍然需要在继续深入领会融合模式精髓的基础之上做好进一步实践、完善和探索。
参考文献:
[1]査建中.論“做中学”战略下的CDIO模式.高等工程教育研究,2008,(3).
[2]徐学福.找寻迷失的人性:探究学习的终极关怀—柏拉图“回忆”学习、杜威“做中学”与建构学习比较.广西师范大学学报,2004,(4).
[3]顾佩华,沈民奋,李升平,等.从CDIO到EIP—CDIO——汕头大学工程教育与人才培养模式探索.高等工程教育研究,2008,(1).