软件工程教学模式的应用

软件工程教学模式的应用

摘要:翻转课堂是对传统教学模式的改革和创新,通过分析软件工程的教学特点和翻转课堂的优势,针对软件工程课程存在的内容抽象,实践性强、教学方法单一问题,提出基于“翻转课堂”的教学改革方法,从课堂教学,实验教学等环节阐述具体的改革内容,有效提高了学生自主学习的能力,同时采取项目案例教学为主线的模式提高了学生的实践能力,激发了学生的学习兴趣。

关键词:翻转课堂;软件工程;项目案例

1引言(Introduction)

翻转课堂作为一种新兴的教学模式,不断强调学生的主体地位,推动着国内外教学模式的改革创新,引起了学者的广泛关注[1]。传统的教学模式,不能因材施教,不能顺势引导学生发散思维,让学生自己去思考问题的谜底,反而让学生都去接受教学大纲的“标准答案”,这样会让学生疏于思考,缺乏自己的思维,不能开拓学生的创造性思维[2]。这样就达不到启发学生独立思考的目的,挫伤学生的创新性思考的能力;传统的教学模式是在课堂上进行知识的传授,而知识的内化则在课堂外完成。翻转课堂是学生在课外自主完成知识的学习,在课堂进行提问,完成知识的内化[3]。翻转课堂增加了师生之间的互动,使教师可以更好地“对症下药”,让学生能够及时掌握知识,从而加深学生对所学知识的理解及应用;在这种教学模式下,学生可以随时随地观看视频学习,掌握学习进度,不必像在传统的教学模式下进行紧张的填鸭式的学习,使学生掌握了大部分主动权。软件工程是一门理论抽象、工程性强、操作性强、重实践性的学科[4],这就使得学生难以及时掌握所学知识,采用翻转课堂的教学模式正好可以弥补传统课堂在软件工程课程中存在的缺陷,所以将翻转课堂应用于软件工程课程中就显得尤为重要。

2软件工程的特点及教学中存在的问题(Thecharacteristicsofsoftwareengineeringandtheproblemsinteaching)

《软件工程》是软件工程专业的一门重要的专业基础课。这门课程强调用工程的思想、概念、原理、技术和方法来设计开发和维护软件;要求学生了解结构化思想、掌握敏捷开发等软件开发技术,掌握面向对象的软件需求分析、设计及实现的一般方法,为今后更好地学习和从事软件工程领域的工作打下良好的基础[5,6]。该课程的特点及教学中存在主要问题:

(1)课程内容抽象实践性强,教学方法单一

软件工程这门课程的内容比较抽象,有较强的实践性。目前该课程大部分都是由教师讲授理论知识,学生填鸭式学习。但是这些理论知识并不是空洞的理论,它是从实践中总结出来的或是前人不断总结摸索出来的,内容比较抽象,不易理解,教师仅讲授理论知识点学生难以理解,而且内容比较枯燥,容易使学生产生厌学心理,打击学生学习的积极性,这对软件工程课程的教学内容及教学模式提出了新的要求。

(2)前序课程依赖程度高

软件工程的前序课程包括C++程序设计、算法与数据结构、数据库原理等,由于学生对前序课程知识的掌握程度不同,积累程度不同,学生的基础也参差不齐,这就给该课程的教学带来一定的难度。在课堂讲授的过程中,需要对用到的前序课程的知识点进行复习,否则可能导致本部分内容有一部分同学不能理解或理解不到位,甚至对后续内容的学习造成更大影响。

(3)项目案例缺乏完整性和实用性

有的教师在选取教学案例时偏离学生实际,即使花费大量的时间讲授了一些案例,由于学生平时缺少实际项目的开发经验,也很难理解软件开发的全过程。有的教师所选案例规模较小,如简单的学生成绩查询系统等,在学生看来,可能不需要完全遵循软件工程的设计过程,也能做得较好,软件的可用性也不差,这就导致学生不能更好地建立系统完整的软件工程概念体系,缺乏对所学知识的整体认识。

(4)学生项目开发经验不足,学习积极性不高

软件工程是一门理论性与实践性较强的综合性课程,如教师只注重理论课程的教学,忽视了学生自主学习能动性的发挥,学生缺乏对实际项目案例的设计开发,缺乏对所学知识的整体认识。对于刚刚讲过的知识,抽取其中一部分进行提问,学生常常回答不上来,这说明学生没有将知识内化,一学期下来,学生可能感觉只学会了几个概念原理,对于如何去使用这些原理根本不清楚,挫伤了学生的积极性。

3软件工程翻转课堂教学模式(Flippedclassroomteachingmodelforsoftwareengineering)

3.1课堂教学模式

基于翻转课堂的软件工程课程教学采取以项目案例为主线的教学模式,整个教学过程由项目案例为导向,以一个具有一定规模完整的软件开发项目贯穿于整个课程教学过程的始终[7]。软件工程课程翻转课堂教学模型主要由课前在线理论学习、课堂讲授及训练、课后总结巩固三个相辅相成的过程所组成。(1)课前在线理论学习课前理论学习是课堂讲授及师生互动的基础,学生在这一阶段将学习基本的概念原理性的知识点,教师根据教学大纲、教学进度、章节特征安排教学活动,并录制视频上传到网络教学平台,要求学生提前观看并完成习题。学生按照老师布置的任务,根据自己的实际情况自主学习。教师可以在视频中间或末尾穿插一些习题,让学生可以在看视频的过程中完成习题,让他们了解自己的学习情况,增强互动性。如果习题完成效果不好,学生可以反复多次观看视频,在每个章节最后教师可以对本章知识进行汇总并给出一套有深度的课后习题让学生完成,当学生完成课后习题后,网络教学平台将学生的完成情况反映给学生,学生肯定会产生很多疑问,然后学生自己整理自己的问题,这些问题学生既可以在课堂上跟老师、同学讨论,也可以在平台上与教师交流沟通。(2)课堂讲授及训练翻转课堂的目的在于通过灵活多样化组织课堂活动把知识内化最大化[8]。对于软件工程这门课程,教师应该围绕项目案例软件定义、软件开发、软件维护三个时期八个阶段设计教学活动,在课堂上,根据每个章节内容的特点,教师可以选择演示项目进展、讨论案例、答疑等不同的教学形式[9],教师可以从以下三方面完成课堂讲授知识的内化。a.课前学习情况测试。教师根据学生课前观看视频情况、课后习题完成情况,以及学生提出的问题初步掌握学生的学习情况;然后教师选取一些具有代表性的问题,对学生进行提问,查看学生观看视频效果,或者教师可以根据平台反馈的学生学习情况及课程内容设计出一些新的习题问题,上课时检验学生掌握知识的情况;学生也可以提出自己目前的问题,由老师或学生进行答疑;最后教师根据课堂的反馈总结需要重点讲解的知识。b.知识讲解。教师根据课程教学大纲,简单的对所有内容进行串讲,然后根据课堂反馈对重难点知识进行详细讲解[10],对于一些操作性强的问题教师可以边演示边讲解。首先,导入案例,这要求教师将准备好的项目案例作为教学材料,通过展示一个具体的项目或一个现实生活中的例子将学生带入到课堂中[11]。例如,在图书管理系统中,可以通过学生自己平时在图案书馆的借、还书情况,让学生提前知道这个系统是干什么用的,有哪些主要的功能,开发这个系统需要什么工具等一系列问题,先让学生对这个系统有一个感性认识,然后再演示项目,理论联系实际,让学生更好地理解所学知识。c.项目练习。通过理论知识的学习,学生对所学知识有了基本了解,接下来最重要的就是实践。教师可以将学生按角色分组,每组3-4人,保证每个组既有学习能力强的也有学习能力一般的。然后让每个组完成一个小项目进行实战,进一步理解知识,在完成项目过程中老师可以适当给每组提示、指导,使学生能较熟练地把理论知识应用于实践中。(3)课后总结与巩固课后学生重新思考课堂中遇到的问题,对老师在课堂上提到的重要知识点进行总结,也可以回看视频加深对知识点的理解[12]。针对复杂问题,给出可行的开发方案和开发计划,具有设计满足特定需求的中小型软件系统和大型系统的独立子系统的能力;具有独立撰写软件项目实施过程所需的可行性研究、项目计划、需求分析、系统设计、系统测试等报告文档的能力。

3.2实验教学

由于软件工程是一门实践性很强的课程,所以我们在教学的过程中更加注重实践教学环节的安排与设计。为了使学生更好地掌握理论知识,同时又能较好的把理论应用到实践中,每个阶段我们都配备了相应的实验环节,实验教学与课堂教学保持同步进行,更好地激发了学生的学习兴趣,巩固了所学的理论知识,除此之外我们还安排了相应的课程设计。在实践教学环节,要求学生能严格按照软件工程的设计思想独立完成各自的任务,并坚持阶段评审的原则,最大限度的发现软件设计过程中的缺点、错误,保证软件的可用性、可靠性。教学方法上,以培养学生自主创新和独立思考为目标,以项目案例驱动为主题,组织学生以团队的形式参与到实际项目开发的整个过程中,将复杂抽象的理论知识融入实验环节中,使学生能熟练掌握软件工程的整个开发流程。根据项目案例的实际需要对学生进行分组,确定各自的角色,各组通过实地调研或查资料确定具有一定规模的开发项目,或参与教师的科研项目,然后选取各自熟练的开发方法按照软件工程的思想对其功能逐一进行设计、编码、测试等工作,要求每个阶段都有相应的文档资料直至提交最终软件产品。最后,我们采用小组的形式进行答辩。每组选派一名代表进行答辩,能够通过各种形式清晰表达和回应客户的要求,具备基本的软件工程项目管理学知识,其他成员可以进行补充说明。每组自述5分钟,教师提问10分钟,各位教师可以针对每个同学在其项目中所担任的角色进行提问,根据回答问题及项目演示情况进行评分,然后算出平均分,并将其成绩计入期末总成绩。通过几年的改革与实践,学生的实践能力得到了有效的提高。对于掌握较好的同学在学习的同时就能参与到一些公司的项目研发中。

4考核方法改革(Reformofassessmentmethods)

软件工程课程既要求学生掌握一些设计原理、设计方法等理论知识,又要求学生能够分析设计和开发软件,建立和使用合适的软件项目管理和质量保证体系,提升软件的质量。同时要求学生具有在多学科环境中组织并管理软件项目实践的计划和预算、协调组织任务、合理调配资源,提升项目组的工作质量和效率的能力。鉴于此,传统单一的卷面考核形式不能真正全面客观的反映学生实际学习效果,因此,我们采用多元化的考核机制[13,14]。在翻转课堂模式下,老师可以根据课堂情况、作业完成情况以及实践环节等多方面作为考核依据,最终客观地给出学生的期末成绩,在这种模式下可以很好地培养学生的创造性思维,激发学生的学习兴趣。翻转课堂软件工程课程考核分为两大部分:形成性考核和总结性考核。形成性考核分为课前在线预习、课堂讨论、课后作业三部分,总结性考核分为实验报告、项目答辩和期末考试。具体的考核形式如表1所示。表1课程考核形式Tab.1Courseassessmentforms考核类型考核项评分标准形成性考核(30%)课前在线预习在线观看视频、检测、提问等课堂讨论课堂回答问题及准确度课后作业完成课后作业的质量等情况总结性考核(70%)实验报告实验完成情况及报告质量项目答辩软件需求规格说明书、系统设计说明书、演示文稿等质量情况期末考试知识类、分析类、设计类考题

5结论(Conclusion)

翻转课堂为软件工程教学模式提供了一种新的教学方法,把翻转课堂教学模式应用到软件工程的课堂教学和实验教学中有效提高了学生自主学习的能力,同时采用项目案例教学的模式提高了学生的实践能力,激发了学生的学习兴趣。通过让学生参与教师实际科研项目的研发,使学生能真正把所学的理论原理性的知识应用到实际项目的开发过程中,熟练掌握项目开发的流程,更好地调动了学生的学习积极性和主动性。

作者:赵淑芳 王江帆 潘理虎 陈立潮 单位:太原科技大学计算机科学与技术学院