王素琴,王 新,石 敏,马素霞
(华北电力大学 控制与计算机工程学院,北京102206)
基于CDIO和翻转课堂的《软件工程》课程教学研究*
王素琴,王 新,石 敏,马素霞
(华北电力大学 控制与计算机工程学院,北京102206)
《软件工程》课程理论性强、比较抽象,难以理解和掌握。文章采用CDIO和翻转课堂相结合的教学模式,将软件工程的理论教学和实践教学有机结合起来,同步开展课堂教学和课程设计实践活动。在教学中采用翻转课堂教学模式,学生在课前通过观看视频、回答问题等形式学习软件工程的基础理论知识,在课堂上通过教师讲解和分组讨论让学生深入理解和掌握如何运用这些基础知识解决实践问题。这种教学模式能够激发学生学习兴趣,显著提高《软件工程》的教学效果。
CDIO;翻转课堂;软件工程
《软件工程》是指导计算机软件开发和维护的工程学科。软件人才所需要掌握的系统理论和方法,所需要具备的软件项目的理解与掌控能力、全面的实践开发能力以及良好的沟通协调能力都与《软件工程》课程的教学内容和教学目标紧密相关,因此《软件工程》课程在软件工程专业人才的培养上具有重要地位。
《软件工程》教学内容理论性强,表面上一看就懂,实际上很难掌握。近年来,该课程的教学方法和手段不断改进,在教学效果上有了明显提高,但仍然存在诸多问题。例如,将基础理论和方法的学习与软件开发实践割裂开来;在教学方法上以教师讲授为主,忽视了对学生积极性、主动性、创新性的培养;强调学生个人软件开发能力的发展,忽视了团队协作精神的培养等。
CDIO[1-3]教育模式是近年来国际工程教育改革的最新成果,CDIO代表构思(Conceive)、设计(Design)、实现(Implement)和运作(Operate),注重通过实做来加深对理论知识的理解和掌握,培养学生的创新意识、项目开发能力和团队协作精神。《软件工程》这门课程对于没有开发经验的学生来说枯燥抽象,无法产生共鸣。学生只有通过实践才能理解并掌握其理论知识,才能熟练运用相关工具完成软件建模和软件开发。其次,随着软件规模越来越大,软件开发工作必须以团队形式进行,但是很多大学生都缺乏良好的沟通能力和团队精神。采用CDIO的教学模式,学生以小组形式共同完成软件开发任务,必然会提高学生的沟通协调能力。因此,将CDIO模式引入《软件工程》课程教学势在必行。
翻转课堂[4-6]是一种新型的教学模式。传统情况下,学生的学习过程分为两个阶段:第一阶段是 “知识传授”,通过教师在课堂上的讲解来实现;第二个阶段是“吸收内化”,在课后由学生通过复习、写作业等形式来实现。“吸收内化”的过程需要灵活运用所学知识解决问题,相对于“知识传授”阶段来讲难度更大,但此时却缺乏教师的支持和辅导,学生常常感到挫败,渐渐失去了学习动力,作业抄袭成了普遍现象。“翻转课堂”对学生学习过程进行了重构,“知识传授”在课前由学生自主进行;“吸收内化”是在课堂上通过教师讲解和师生互动来完成。在学习《软件工程》课程时,学生普遍感到看书时仿佛理解了,合上书本后却什么也没有留下,说明学生并没有掌握软件工程思想的精髓,知识的吸收与内化没有做好,需要教师在这一过程中提供及时的帮助。
因此,在CDIO模式下融入翻转课堂的思想,要求学生课前完成知识的了解,课堂上对学生理解不了的难点问题重点讲解、讨论,同时利用先进的实践环境进行实操训练,一定能够有效提高课程的教学效果。
在以往的教学中,理论教学在前十二周进行,然后到学期末尾进行软件工程的课程设计,为期两周,这两部分完全脱节。在理论教学中,由于没有实践环节,学生单纯学习理论知识,感觉枯燥乏味,不知所云,学习效果差。到了课程设计环节,由于前期没有打下坚实的理论基础,学生只是重视代码的编写,对分析和设计往往是在课程设计验收时才匆忙写一写,应付了事,并没有得到应有的训练,没有领会软件工程的思想精髓。
采用CDIO教学模式后,将《软件工程》的理论教学和实践教学有机地融合在一起,同步进行。
1.学生组建若干个软件项目开发小组
授课之初,将学生以自愿为原则分成若干组,每组3~5人,确定一名负责人,然后大家共同选定一个软件开发项目,这些项目可以由教师指定,也可以由各组同学按兴趣自行选定,教师给出指导意见,确定项目范围。
2.随着理论教学的推进,同步开展项目实践活动
软件开发分为需求分析、软件设计、编码和测试等阶段。按照这些阶段的先后顺序安排教学内容,并同步开展实践活动。例如,学习需求分析时,要求学生围绕自己的项目进行充分的需求分析,包括查阅资料、实地调研和分析建模,并撰写需求分析文档。学习软件设计时,要求学生进行项目的概要设计、详细设计和设计建模,撰写软件设计文档。
在开展软件工程各个阶段的工作时,要求学生采用业界常用的软件建模和开发工具,例如Enterprise Architect、MyEclipse、Visual Studio等。
3.充分利用课堂教学和课程设计之间的空档时间进行软件编码
软件工程理论教学结束后和课程设计开始前的这段时间是编码阶段的工作时间,每个项目组根据之前的分析和设计结果,选择程序设计语言和开发工具进行编码工作,实现系统的核心部分。
4.在课程设计时间段进行软件测试,编写课设报告
在软件工程课程设计的两周时间里,采用人工测试和机器测试相结合的方法进行软件测试,记录整个测试过程,包括测试用例和测试结果,形成测试报告。最后,根据课程设计文档的要求撰写课程设计报告。
采用这种教学模式,在理论教学中采用案例教学方式,让学生直观地感受软件工程的基本原理与方法;在课程设计中,通过动手实践使学生深入理解和掌握软件工程的基本原理与方法;通过研究性和探索性学习进行课题研究等形式,培养学生的研究能力和创新精神。
在实施CDIO教学模式时应该注意的是,学生的实践活动不应该着眼于一个个孤立的小任务,而应该定位在一个完整的项目上,随着课程内容的进展,一步步地完成软件项目的各个阶段任务。这部分的难点在于项目规模的控制,项目过小学生无法体会软件工程的重要性,项目过大会占用学生过多的时间。可行的方法是将一个规模较大的软件项目划分成若干个子系统,每个小组负责一个子系统的研发,各个小组之间分工合作、协调配合。在实践过程中,一定会遇到各种各样的问题甚至是失败,正是这些问题和失败使学生充分认识到软件工程方法的重要作用。
1.翻转课堂网络教学系统
实行翻转课堂教学需要一个教学软件系统的支持,现在有很多软件公司都提供了功能丰富、使用方便的教学系统。如果要实现特定的要求,可以自行开发。软件工程教学系统运用Java Web技术基于SSH框架开发,分为数据访问层、业务逻辑层和表示层,其体系结构如图1所示。使用本系统,学生可以方便地查看教师的任务单、观看视频、与教师进行交互和提交文档和作业等,教师可以发布任务单、上传视频、及时了解和掌握学生学习的情况以调整授课策略。
图1 系统体系结构图
2.确定适合翻转课堂教学模式的教学内容
本科的《软件工程》教学主要讲述传统的软件开发方法和面向对象的软件开发方法,适合翻转课堂模式的教学内容比较多,如结构化分析、结构化设计、面向对象分析和面向对象设计等。这些内容都包含了建模技术的学习,如UML等,这些技术及其工具都比较简单,容易掌握,难的是如何将这些技术应用到具体的软件项目分析与设计中。因此,将建模技术的学习放在课前通过观看视频进行,将较难掌握的分析和设计方法结合具体项目在课堂教学中展开,通过师生之间的交流讨论,使学生能够对这些理论和方法有更深刻的理解和掌握。
3.制作教学视频
教学视频是实现翻转课堂的基础和前提。教学视频的制作,需要一个功能强大的视频制作软件,例如Camtasia Studio、OBS Studio等。视频内容要求体现重点和难点,将时间控制在20分钟以内。可以恰当使用背景音乐来营造良好的学习氛围。视频画面要求简洁清晰,富于变化。在视频中最好有一些分析和推导过程,教师通过手写板等工具对重点内容进行勾画并配以细致的讲解,吸引学生的注意力。教师的影像可以出现在画面中,增强面对面进行交互的感觉。在视频中放置一些问题,学生回答后才可继续观看视频,这一方面能够引导学生总结和思考,另一方面能使教师了解学生对知识的理解和掌握程度,从而更好地安排后续的课堂教学内容。
4.课堂教学
在课堂教学中,教师首先针对学生课前提出的问题和学习任务单完成的情况,有针对性地讲解相关知识点。然后以一个实际的软件开发项目的分析或设计为目标组织学生分组讨论。在此过程中,教师可以参加各组的讨论并进行答疑,对存在的共性问题统一讲解[7]。最后,随机抽取2~3组学生汇报其工作成果,并请其他组的同学发现存在的问题,然后教师再对这些问题进行点评,提供更多有针对性的帮助。
5.反馈与评价
教师根据学生掌握知识的情况以及反馈的各种意见,总结教学环节存在的不足,以此调整教学内容和教学方式。教师在评价学生时主要考虑两方面,一是根据学生观看视频、回答问题的情况以及在网上交流的情况;二是根据学生在课堂上的表现,包括学生所负责工作的难度和工作量,在组里的参与程度,和教师、其他学生的互动情况等。教师将评估结果及时反馈给学生,促使学生发现自身存在的问题,不断进步。
通过在《软件工程》课程中实施CDIO和翻转课堂相结合的教学模式,解决了传统教学模式的缺点,使学生成为主动的参与者,激发了学生的学习兴趣,发挥了学生的主观能动性,更有效的促进学生对知识的内化,教学效果得到了显著提高。不过,翻转课堂教学模式要求学生必须进行课前自学,否则教学效果很差,如何保证学生能够自觉地学习需要进一步探索。
[1]李彤,赵娜.基于CDIO的软件工程国家精品课程建设[J].计算机教育,2012(1):14-19.
[2]韩智,张振虹,李兴娟.基于CDIO理念的软件工程课程教学改革[J].计算机教育,2010(11):56-59.
[3]汪军,强俊.基于CDIO理念的软件工程专业人才培养模式的研究[J].重庆工商大学学报(自然科学版), 2015(6):70-74.
[4]宋朝霞,俞启定.基于翻转课堂的项目式教学模式研究[J].远程教育杂志,2014(1):96-104.
[5]曾明星,周清平,蔡国民等.软件开发类课程翻转课堂教学模式研究[J].实验室研究与探索,2014(2):203-209.
[6]赵兴龙.翻转课堂中知识内化过程及教学模式设计[J].现代远程教育研究,2014(2):55-61.
(编辑:鲁利瑞)
G642
A
1673-8454(2017)08-0050-03
北京市共建项目专项资助(编号:2014JG48)。