林 菲,孙 勇
(1.杭州电子科技大学 软件工程学院,浙江 杭州 310018;2.浙江交通职业技术学院 信息学院,浙江 杭州 311112)
基于CDIO工程教育模式的W eb开发课程教学改革*
林 菲1,孙 勇2
(1.杭州电子科技大学 软件工程学院,浙江 杭州 310018;2.浙江交通职业技术学院 信息学院,浙江 杭州 311112)
W eb开发是一门综合性较强的课程。在该课程中运用CDIO工程教育理念,通过团队项目驱动的形式,对课程内容、教学方法、考核方式等方面进行了教学改革的实践探索。通过实践证明,这种教学改革模式,对学生工程能力、团队协作能力和创新能力提升有极大的帮助。
CDIO;工程教育;项目驱动;教学改革
Web开发课程作为软件工程专业培养体系的一个重要组成部分,承担着学生的Web开发工程实践能力的培养。课程的培养目标是让学生理解Web开发的基本原理,掌握Web开发的流程,具有服务器端软件开发的能力,最终培养能够编写高质量代码,并能调试代码缺陷和完成模块设计工作的Web开发的工程型、应用型人才,该门课程综合应用了学生前期所学的程序设计基础、软件工程、数据库设计、静态网页设计等多门课程知识,是一门综合工程能力提升的课程。
近年来,CDIO作为一个相对新颖而有效的工程型人才培养的教育理念,已逐步被国内外高校认可和推广。CDIO工程教育理念强调学生的实践能力、学习能力以及系统掌控能力的培养,并提出了具有可操作性的能力培养、全面实施以及检验测评的12条标准,包括工程教育背景环境下课程计划的设计与实施、学生的学习经验和能力、教师的工程实践和教学能力、学习方法、实验条件以及考核标准。[1]因此,本文利用CDIO工程教育理念对Web开发课程内容进行重新设计。通过在教学过程中为学生建立真实企业软件项目开发的工作框架,引导学生“做中学”,提高学生的学习能力和工程实践能力,使学生结合某些具体工程项目来学习实践以得到通用的能力,进而能够处理解决一般工程项目全生命周期产生的问题,包括用户需求分析、系统设计、数据库设计、Web环境构建、Web编程、系统测试、Web安全配置及系统部署与维护的能力,掌握Web项目开发流程、开发技巧和编程规范,并通过案例库的拓展触类旁通,能以小组为单位独立开发一个实际的Web项目,能胜任.NET Web程序员。充分发挥Web项目开发课程在软件工程专业课程体系中的核心作用。
本课程将立足于企业实际需求,采用CDIO的工程教学理念,对课程的教学内容重新设计,并改革传统的教学方法、教学手段和考试方式,探索出一套符合本课程实际的课程教学模式改革方案。在课程内容设计上,突出工程教育的特点,施行理论教学、课内实践和课外实践相结合的模式。
1.项目驱动的理论教学
课程围绕服务器控件、状态管理、网页外观设计与布局、站点导航、数据库访问、数据绑定及绑定控件、安全管理、Web服务、AJAX、Web应用程序部署等技术的讲授。以企业真实的Web项目贯穿整个理论教学过程,将课程内容依据项目子功能划分为若干个知识点,并根据知识点与项目子任务的形式设计理论教学环节。当完成所有理论课程后,便开发出一个完整的Web项目。这种对项目进行解构与分离,分任务分模块安排章节的教学设计思想符合项目教学、任务驱动的课程体系改革的目标。
2.团队项目驱动的实践教学
在实践教学环节中,要求5~6人组成一个项目组,进行团队项目开发。项目开发过程中,需按照Web项目研发的过程实施一个完整的软件设计过程,如图1所示。以项目组为单位深入市场调研,进行项目挖掘,并做好立项工作。项目确立后,进行需求分析、系统设计、系统实现、系统测试、系统部署验收等完整的项目开发过程。通过此流程,学生不仅掌握了Web开发相关技术的运用,更重要的是熟悉了项目的实际开发流程,做到与真实岗位的对接。
在项目开发流程中,首先要解决项目源的问题。因此,本课程主要采用以下三种途径解决项目的来源问题:[2]
(1)校内项目的挖掘。随着互联网技术的发展,使得Web技术广泛应用在教学及科研工作中。信息化教育时代对教师提出了开发课程网站、毕业设计管理系统等Web应用系统的需求,而大部分教师都不懂Web开发技术。这些系统的需求相对明确,规模相对较小,学生在一个学期内基本能完成项目开发任务。如果能让具备Web开发技能的教师带着学生开发这些Web应用系统,不仅能解决其他教师的实际需求,也能满足学生通过实际项目的开发来训练自身的Web开发技能的需求,获得双赢效果。
(2)校外项目的挖掘。通过与企业和社会的紧密联系,结合学生Web开发的实际能力,承接一些可行性较高的Web项目。这种方式具有一定的风险和挑战,但能有效地解决学生培养与实际社会需要脱节的问题。
(3)自主选择项目。为提高学生项目开发的热情和兴趣,可以根据学生个人兴趣及开发能力,让其自主选择项目。
当项目来源解决后,接下来最为重要的就是按图2所示的各个任务完成项目的开发工作。每个任务的实施都包含下发任务、任务实施、任务评价和补充讲授四个步骤。通过这四个任务实施步骤严格控制项目的实施过程,确保各个团队项目顺利进行。
在本课程的教学中,将综合运用多种教学方法:
(1)分组教学。整个教学过程中,将采取项目组的形式,将全班学生分为几个项目组,一般项目组人数控制在5~6人,配有一个项目组长。教师在项目实施过程中充当总工程师和客户代表的角色。以“自主、协作、创新”的新理念,充分发挥学生的自主能动性,提高学生团队协作意识和创新精神。[3]
(2)互动式教学。在实践环节的项目评审阶段,学生将前一阶段的项目设计内容,制作成课件,以小组为单位,上讲台讲解,并和其他小组进行交流讨论。最后由教师负责点评各小组的前一阶段设计,并要求各小组,针对讨论和点评结果修改前一阶段设计。以此强化学生的质量意识,促进相互学习。
(3)启发式教学。对教学重点讲深讲透,使学生能举一反三;在讲解知识点时,以问题的形式,启发学生思考各个网站场景所使用的知识点。由于Web开发是各类技术的综合应用,因此在讲解过程中,需要介绍其他相关技术,并启发学生自主学习。
(4)创新奖励法。在设计过程中鼓励学生利用新知识、新技术,以提高自学能力。
总之,在教学方法上,注重学生分析和解决问题的能力培养,实施提问—判读—思考—讨论—总结的课堂启发式教学,激发学生独立思考,提高学生学习的主动性。开展第二课堂教育,通过业余时间辅导学生项目小组,鼓励承接社会企业项目,鼓励学生参加多媒体设计竞赛和申报各类大学生项目。充分利用网络资源,鼓励学生到网上交流,推荐学生浏览优秀的学习网站,指导学生参与网上专题讨论,学会通过网络查找解决方案,形成了生动活泼的学习局面。
本课程注重多元化的考核机制,从多个方面考核学生。着重考核学生的实际工程能力、团队合作能力和创新意识。该课程的考核体系包括三部分:[4]
(1)平时表现情况,占20%。根据学生的出勤情况、课堂纪律情况和作业上交情况给分。每次上课讲解的课堂案例,需要学生以作业的形式巩固并通过作业提交系统提交上来,教师检查完成情况,作为平时考核的一部分。
(2)项目完成情况,占40%。根据项目开发各阶段的任务完成情况及项目最终完成情况评分。该部分的成绩主要由教师、项目组长按照每人工作量的大小分配,避免学生偷懒,也有利于教师给每个学生打分。项目要求最后上交软件、项目文档。并要求各小组进行项目总结陈述及答辩。首先由项目组长进行项目总结,各项目小组成员陈述自己在开发过程中所完成的工作及收获。教师将根据不同学生的陈述进行提问,并由学生回答。根据学生的回答及项目实现情况,给予相应的成绩。通过提问答辩的形式可以真实反映学生的实际工程能力。
(3)期末上机考试,占40%。由于该课程的实践性较强,闭卷考试根本无法考核学生的实际工程能力,只能让学生死记硬背,毫无意义,因此本课程期末考试采用上机开卷考试形式。考核的内容立足于课堂讲解的知识,对课堂教学案例进行扩展,要求学生完成其扩展功能。根据完成情况,给予相应成绩。考试期间允许学生查阅各类参考书籍和MSDN等帮助信息。
以上三种考核方式结合,不仅能评测学生对课程内容的掌握程度,更能对学生的独创性、探索性、分析问题能力进行全面地评估。
本课程以CDIO工程教育理念为指导,以团队项目为核心,对课程教学内容进行重新设计。通过团队项目驱动的形式引导学生“做中学”,提高学生的独立分析问题和解决问题的能力,提高学生的开发技巧、编程规范和文档书写规范。课程教学中理论与实践并重,以团队项目实现为主线,利用学生的主观能动性,调动学生的学习积极性,培养团队协作意识。同时,本课程引入有效的考核机制,能有效评价学生实际工程能力,有利于培养真正具有实际工程能力的创新型软件工程人才。
[1]韩智,张振虹,李兴娟.基于CDIO 理念的软件工程课程教学改革[J].计算机教育.2010(11):56-59.
[2]林岭.软件工程的团队项目驱动教学模式探讨[J].福建师范大学学报(自然科学版).2011,27(3):14-17.
[3]刘林东.Web应用开发课程的教学研究[J],电脑知识与技术.2009,27(5):7834-7836.
[4]吴迪,李长荣.软件工程专业W eb类课程实验教学[J].计算机教育.2010,(18):147-149.
(编辑:金冉)
G424
B
1673-8454(2012)03-0072-03
*本文系浙江省新世纪教改课题(ZC2010023)、校高教研究课题(ZC1102)的研究成果。