CDIO工程教育理念以产品的需求、设计、研发到产品的运行和维护的一体化存在周期为主线 ,让学生以自主性和实践性探寻课程之间有机内在联系的迭代式学习方式。Android应用程序开发课程引入CDIO 工程教育模型,学生按照构思、设计、实现和运作四个方面迭代式完成课程要求的内容,形成整体性的开发项目实例。这种从抽象到具体的逐步化实践步骤,使学生深刻体会到CDIO工程实践的精髓,建立起完整的工程开发理念。
1 引言
CDIO工程教育模式是麻省理工学院和瑞典皇家工学院等四所大学经过四年的不断探索研究,于2004年创立并成立了以 CDIO命名的国际合作组织。CDIO代表构思(Conceive)、设计(Design)、实现(Implement)和运作(Operate) ,它以产品的需求、设计、研发到产品的运行和维护的一体化存在周期为主线 ,让学生能够以自主性和实践性的有效方式寻求课程之间有机内在联系,从而实现工程课程的学习过程。它为学习者提供一种建构在工程基础之上、体现了真实世界的产品和系统的构思、设计、实现和运行过程的背景环境的工程教育模式。将工程师必须具备的工程基础知识、个人能力、人际团队能力和CDIO全过程能力以逐级细化的方式表达出来,使工程教育课程具有更加明确的方向性和系统性。
随着Android操作系统在智能终端的日益普及,推动了移动互联网技术的快速发展。在这种形势下,各大高校纷纷开设了Android 系统相关的课程,作为一门新兴的软件应用软件开发课程,其教学方法的思想和实践也处于不断探索之中。课程的教学目标主要是培养学生开发 Android 应用程序和实际工程项目的能力,作为一门注重动手实践能力的课程,如何让学生灵活应用课程的基本理念和知识系统,建立起Android的实际工程应用是当前面临的重要难点。我们引入了 CDIO 工程教育理念,将一个综合案例进行多模块分解,将知识点融合在众多小案例中讲解,每个模块按照CDIO模型以不同侧重点独立完成,最后形成整体性的开发项目实例。学生在学习过程,特别是在完成各功能的实践中,深刻体会到CDIO工程实践的精髓。这样不断的迭代式开发,从小到大的累积知识和实践能力,建立起完整的工程开发理念。
2 CDIO的核心应用价值
科学教育与工程教育在内容与形式上有着明显的区别。科学教育的主要目是发现与探求物理世界的普遍规律,是追求形式化的逻辑确定性,而工程教育的主要任务是构建人类与周围环境的最大适应性,创造能够满足人类需求的物质存在。工程实践在实施过程中具有不确实性和风险性,在工程进程中各类偶然因素会随机突发出现,所以不存在忽略外在不可控因素的普适性真理,适用于某类工程项目的系统体系不能够简单地复制或移植到相似的其它活动中。在完成众多子系统的组成的复杂系统中,要求工程实践人员根据外在客观因素、人文环境等众多影响因子的条件下制定合理实施方案和掌握工程进度,没有放之四海皆准的工程真理。在工程行动过程中,随着不断演进的进度推移,将会出现某些非预期的不利或有益因素,这要求建构者不断的根据实际情况调整工程实现的策略与进程细节,以应对工程进展中的不确定性。
CDIO的重要特性在于强调探究式教学模式。它所提倡的学生主动参与,进一步探究发现,进而通过交流合作的连续性的学习过程,将教学活动变成充分展现以学生为主体的自我进化领域范畴。对于工程专业,基于以项目主导的自我探究式进化教学方式,将传统的学习过程转化为激起学生探索和寻求多种解决方法的愿景式学习需求。该模式培养了学生自主学习、发现问题、解决问题等创造性思维活动,是把知识与能力整合在一起“一体化”的人才培养思路。这种有别于以教师为中心的传统模式,重要的是解决工程实践中面对非确定性问题的挑战,能够激发起人类天生的团队意识与合作精神,通过不同特长的协作解决工程实践的现实难题。
在实践高校的工程教育中,以实现产品或系统的生命周期过程做为教学的主体框架,将知识、技能、思想和人文精神贯穿于整体的教学过程,反映了CDIO 的检验标准以实践能力出发,将个人工程能力、人际处理能力及对产品的构建能力做为成果体现的重要组成部分。工程专业培养计划中应重点强调学科课程之间相互支撑,强调个人协调与组织能力的应用价值,实现一体化相互关联的教学整体。不但重视课堂内的实践教学活动,也注重课外的实训与经历,关注学生在不同外在环境下的随机处理过程,在复杂的外部世界中掌握核心操作的能力。
3 Android课程的CDIO工程模式应用
遵循 CDIO 工程教育理念,通过实例项目让学生进行自主学习,从实践开发中总结经验,积极吸收教材的理论知识,从而达到“学得活,做得出”的教学效果。教师主要充当“顾问”角色,当学生遇到困难疑惑时给予必要的帮助和指导。在教学中,我们引入了“手机订票系统”做为项目实例,将其分解成众多功能子模块,在完成每个模块的教学中,按照构思、设计、实施、运作的具体教学流程,取得了良好的教学效果。
1)构思阶段:
在每个功能模块完成之前,引导学生确定业务需求,发现问题并制定开发计划。如在完成用户查询功能时,先了解用户的功能需求和非功能需求,列出详细的清单记录,清除用户需求的模糊性、歧义性和不一致性,分析用户的数据要求,建立初步的逻辑模型。此阶段主要培养学生认识和把握现实工程需求的能力,纠正软件工程项目就是写代码的错误观念,利用文字、图形等UML元素将需求结果完整记录下来。这个总结的过程,使项目相关人员逐渐明确和统一了认识,达成了需求工程的一致性。
2)设计阶段:
设计过程主要引导学生解决子模块的设计思路、实现步骤、确定实现算法,形成具体设计方案及实施过程中需要解决的关键技术问题等。如在完成查询功能时,根据前期的需求分析,确定界面的总体性布局方案,控件的选取及用户使用的易操作性、速度响应能力等问题,这要求学生自主性的学习界面布局知识,控件应用知识,及图形界面监听机制等相关技术知识。通过这样的不断提出问题,带着问题主动寻求解决方案的探索式学习方式,会激发学生的学习热情,真正达到理解并灵活运用知识点的良好成效,让学生深刻体会到模块划分,接口设计等在软件开发过程中的重要性。
3)实施阶段:
模块的实施阶段是学生掌握和消化知识点的关键阶段。通过具体案例实施方案,教师以明确的目的性引导学生学习完成功能所需要的知识内容,如在完成查询功能之前,教师应重点讲解图片视图、图片按钮、下拉列表、日期时间控件、手机菜单、对话框、进度条等控件知识,在学生前期自学的基础上,加深基础知识的理解和应用。学生在具体完成代码的过程中,教师应强化规范性作用,定义实施过程的边界,集中精力解决有限范围内遇到的现实难题。在学生进行编写和调试时期,教师通过提示编译错误、组织讨论,反复测试功能等辅助性工作,帮助学生完成自主学习的全过程。通过这个反复迭代式的深入学习,使学生在完成了功能实现后,深刻体会到软件工程开发过程的需要的开发技巧和思维方向性,建立起学习兴趣和完成后续其它功能的信心。
4)运作阶段:
在每个模块功能完成之后,都要在AVD上运行演示,并在智能手机上实际测试。教师可以对学生工作进度进行检查,确保在每个不同的开发阶段都具有一个可以运行的Demo 版本。按照需求分析的要求进度,在教学过程中贯穿着项目从简单功能到复杂功能的实现,按照CDIO的基础原则,利用迭代化的软件工程开发思想,逐渐使学生建立起从抽象到具体,从概念到实现等工程化思维方式,为以后走向社会实践打下牢固的理论基石。
4 结语
CDIO的教学实践过程中,重视营造工程教育文化,注重教育软环境建设,加强师生互动,两者在精神上也是融通的。CDIO工程教育模式是以学习结果为导向的工程教育认证与实践的影响为依据,它是培养学生到企业对产品进行构思、设计、实施和运作能力的工程教育模式。CDIO教育理念是欧美高校和教育机构研究实践的产物,作为一种普适性方法学,它同样适合中国的高等教育。同时我们也应在继承和消化其基本理念的基础上进行中国化和本校化。在充分考虑学生、教师、区域化产业布局等利益相关者诉求基础上,结合海南省IT行业的人才需求标准,针对三亚学院具体专业设置情况,我们对CDIO在软件工程能力培养上做了理念继承和实践创新工作。构建了具有海南区域性特色的CDIO能力培养体系,为海南省IT软件行业人才培养探索出具有一定可借鉴价值的教育模式路径。
作者:王明松 钱静媛 来源:电脑知识与技术 2015年14期