当前位置:首页 期刊杂志

软件工程课程翻转课堂教学探索与实践

时间:2024-05-04

郑小蓉

摘 要

面对软件工程课程教学中出现的教学困难,基于对教学中学生教师身份的再认识,应用“翻转课堂”理念,借助教学云平台发布微课等教学资源,结合学习者和行业发展需求,采取案例教学法和项目导向学习法,改革课程考核方式,对《软件工程》课程教学内容、方式及进程再造,激发学习者自主学习的热情,提升课程教学效果。

【关键词】软件工程;翻转课堂;微课;教学云平台

1 问题的提出

《软件工程》课程讲授现代软件工程的基本理论,培养学生运用软件工程原理进行软件需求分析与设计的能力,是重要的专业核心课程。《软件工程》的基本理论简要、富有原则性,初学者普遍感觉抽象、空洞。一方面教师需要依托真实的软件项目,将理论具体化、层次化、生动化,备课任务重;加上学习者对相应内容掌握程度深浅不一,教师无法在有限的课堂教学中兼顾,导致顾此失彼、应接不暇的困难局面。另一方面,对于理论思维较弱的学习者来讲,如果没有良好的引导和合适的学习资源,学习《软件工程》往往困难重重。传统课堂主要任务是传授“正确”的知识、方法,学生在既定的范围内加强理解、练习,成为规定套路的“熟练工”。学生没有尝试、发现、归纳、总结的机会,面对新的课题就茫然无措。面对教与学中存在的问题,可在传统课堂的基础上,实施翻转课堂,不断探索《软件工程》的有效教学实施方式和办法。

2 分析课程在专业体系中的任务定位

优秀的软件技术专业人才能够熟练使用软件工具、先进的工程化方法和技术,胜任软件分析、设计、开发、测试、实施和维护等工作。在我校软件技术专业的课程体系中,在《软件工程》之前的课程有《计算机导论》《C语言》《数据结构》《数据库技术》等,并行的课程有《WEB前端交互技术》《WEB程序设计》两门课程。《软件工程》课程理论性强、综合实用性强,在软件技术专业课程体系中起着承上启下的作用。

按照软件生命周期一般分为软件的项目定义、需求分析、设计、编码、测试与维护等。软件工程所有专业技术不可能在《软件工程》课程中全部讲授,对课程任务进行合理分工十分必要。比如“编码”可在《.NET》《JAVA》等课程中完成,“测试与维护”可在《软件测试》课程中讲解,《软件工程》课程则可重点讲解“需求分析与设计”。通过《软件工程》课程,学习者建立工程化的思想,建立软件开发过程整体框架,理解软件开发过程各阶段任务及作用,为开展真实软件项目的编码、测试与维护等打下基础。

3 建立实施翻转课堂的软硬件平台

建立包括慕课等学习资源在内的《软件工程》教学资源,是实施翻转课堂的前提和保证。借助教学云平台软件,可以支持学习者自主学习、自主确定进度。

慕课资源一般包括一系列覆盖课程重点内容的微课、教材讲义、习题库及扩展资料等。梳理课程知识的重点和难点,合理取舍和编排,建立微课主题,如软件工程规范文档的编写。对数据流模型的顶层、中层与底层设计,E-R模型的设计,用例图、类图、序列图的设计等重难点均应制作专题微课。汇总微课、课件及其他专业学习资料,上传学校教学云平台软件,形成课程教学资源库。

教学云平台集信息处理软件、近焦投影仪及触摸控制白板于一体,既是存储、汇集课程教学中各种资源的仓库,也是师生学习交流互动的园地。教师上传教学资源、发布作业及批改结果,学生也可下载、观看教学资源及上传作业,还可师生即时对话实现远程辅导功能。可分别应用于计算机、手机、平板等多种终端,学习时间、地点灵活机动。基于教学云平台软件,每位教师管理任教的多门课程的资源,每位学生管理在学的多门课程的学习资料。教学云平台因人而异、内容开放,根据授权和被授权,人人可定制个性化的教学辅助平台,对于每一名应用者都是不同的。信息化教学资源和网络化教学平台为实施翻转课堂提供了良好的软件、硬件基础。

4 激发学习者、行业从业者参与教学活动的热情

4.1 结合学习者自身需求

学习者因为看不到某课程的作用,往往产生迷茫、懈怠心理,甚至反感、厌恶对该课程的学习。相反,如能看到当前学习内容的用途,特别是自己即将用到的课程内容,学习者常常干劲十足、表现出浓厚的兴趣。为此,在《软件工程》授课内容的选取上,也要考虑学习者的当前学业考证和后期职业岗位的需求,真正服务于学习者的个人发展。如笔者所在学校软件技术专业学生,在学习《软件工程》的学期,往往会参加程序员、软件设计师的考试。结合软件水平考试的知识点,在课程讲解中,着重对数据流模型、E-R图的设计、UML的用例图、类图、序列图等内容进行深入讲解分析。

4.2 紧跟行业单位工作需要

面向对象方法、结构化方法是目前软件开发的普遍方法,也是软件生产企业惯常工具,当然成为《软件工程》课程重点。对于软件统一开发过程、构件复用模型以及敏捷软件开发过程模型,则可以简单介绍。紧跟行业需求的课程教学,培养出的学生必然受到行业单位欢迎。

4.3 建立专业培优实验班

高职软件技术专业学生有多种来源,如普通高中、职业高中、对口中职等,生源质量参差不齐。如果按统一标准要求每个学生,势必造成冷热不均、饥饱不一的状况。可以采取分层次教学,满足不同基础的学生的学习需求。如对编程基础较好的同学,学校与中国科学院重庆绿色智能技术研究院合作,组建软件大数据实验班,在模拟软件公司和专门实验室中提升软件开发能力。

5 采用有效的课程教学方法

5.1 采用案例教学法

在结构化方法讲解中,全程以分析、开发教学管理系统为例,使用Visio工具画数据流模型图,用Powerdesigner进行数据库的设计等。在面向对象方法讲解中,则以图书管理系统的分析、开发一以贯之,使用Rational Rose工具设计用例图、类图、序列图、状态图、协作图、活动图等。学习者以两个具体软件的开发为案例,掌握软件开发基础理论知识,做到理论联系实际,逐渐提升软件开发能力和水平。

5.2 项目导向法引导学习

在软件模拟开发中,学习者自由组合,建立项目组。一般3人为一个项目组,成员最好强弱搭配,便于互相学习、做到取长补短。可以组建固定成员的项目组,成员角色随着不同项目不断改换,便于体验软件开发中的不同岗位。项目组也可以成员不固定,随着每一次项目实施重新组建项目组。在项目组长的协调下,小组成员经过查阅资料、讨论调研等方法,独立确定软件开发项目的主题和任务,如《校车订票系统》《咖啡厅管理系统》《体育器材管理系统》等。

通过软件项目模拟开发,学习者熟悉了软件开发各阶段,并完成符合国家标准的软件开发文档,如结构化需求分析说明书、概念设计说明书、详细设计说明书、面向对象需求分析说明书等。在软件开发的阶段,小组成员分工合作、分别陈述小组设想和做法,其他同学则担任客户角色,对小组项目提出问题,教师关注评审项目的进展情况并给予适当的点评与帮助。项目教学法增强了学生之间、学生与教师之间的互动,培养了学生的团队协作精神,为进入社会奠定良好的沟通能力、协作能力。

6 联合同期课程创新考核方式

由于软件开发的特殊性,学习者只掌握课程理论远远不够,单纯考核知识点意义不大。若要求开发具体软件产品作为考核内容,对于《软件工程》一门课程显然要求过高,且初学者独立完成明显是力不从心。单纯考察知识掌握和考核软件成果都不恰当,有必要创新课程的考核方式。我们的做法是联合并行的两门课程《WEB前端交互技术》《WEB程序设计》,进行联合考核。即各项目组做出本小组项目的需求分析说明书,再联合开发完成小组项目。每个小组根据软件工程这门课的理论知识,小组三个成员分工合作,做出项目的PPT并上台讲解,教师提问,小组成员答辩。软件教研室的教师根据每个小组的规范文档编写能力、PPT的制作能力、学生上台讲解项目及答辩的能力,小组项目前端网页和后台代码功能的设计情况等进行评分,评定出三门课的期末考试成绩及综合实习成绩。每项能力在考核中所占的比重如下:规范文档编写能力、PPT的制作能力、学生上台讲解项目、答辩的能力各占10%,小组项目前端网页设计情况为20%,后台代码功能的设计情况达40%。

一般来讲,学生所做的系统功能实现都比较简单,但这是第一次完成的一个真实项目,大大地提升了他们学习的成就感与自豪感。系统没有做完的功能会在后续课程中继续完善。到毕业时,学生会完整地做完一个系统,这些系统的文档和代码以及其他的资料会上传至学校的教学云平台,为下一届学生的学习提供参考。

7 结束语

通过对《软件工程》课程实施翻转课堂教学的探索和实践,鼓励学生先做,即大胆试,允许犯错误。先教后学、先学后做变为先做后学、先学后教,变化的不仅是学习的流程,更是激发学生好奇心,自主探索知识的过程。学生学习知识的同时,也习得了学习的方法。学生在学习过程中感受到了学习的乐趣,培养了团队协作意识、沟通交流能力,取得了较好的效果。

参考文献

[1]殷海明,叶利华.“微课”在软件工程课程教学中的应用.计算机教育,2014(03).

[2]秦放,何丹丹,曾维佳.案例驱动与项目导向结合的软件工程课程教学模式.计算机教育,2013(05).

[3]古凌岚,李洛.终身教育视角下的高职软件专业课程系统[J].计算机教育,2014(12).

[4]杨继鹏.对高职《软件工程》教学改革的思考[J].中国成人教育,2010(05).

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!