在线教学典型案例之三——《软件工程》课程
韩业红(信息科学与工程学院)
一、课程简介
《软件工程》是计算机科学与技术专业一门重要的专业核心课,是一门指导软件开发和维护的课程,在计算机软件领域占有非常重要的地位。该课程设置的目标是:要求学生通过系统地学习软件工程的相关理论和技术,掌握软件项目开发的方法、工具和过程;培养学生对软件项目进行分析设计建模的能力;培养学生阅读与撰写软件项目相关文档的能力,从而使学生具有参与并完成中小型软件项目开发的能力。所以该课程对于计算机专业的学生来说,不管是在将来专业实习、毕业设计还是毕业后从事软件开发相关工作上都是非常有帮助的,是一门实用性很强的课程。
但《软件工程》课程在教学中存在课程内容抽象,学生缺少学习主动性;工具方法陈旧,缺少实用价值;课程实训时间不足等问题。针对以上问题,我们在《软件工程》线上教学的设计中采用了网络共享课和在线直播课相结合的线上混合式教学模式,学生利用网络共享课学习软件工程的相关概念、过程、工具和方法等知识,教师则利用在线直播课和翻转课堂进行所学知识应用的讲解和练习,引导学生利用所学的工具和方法进行软件项目的开发。
二、线上教学设计
1.教学活动设计
(1)理论知识教学
《软件工程》理论知识的学习主要以学生观看网络共享课为主,教师利用QQ学习群和翻转课程监控管理学生的学习过程。教学过程中充分发挥学生学习的主动性,采用以学生为主体的教学模式,具体教学过程如图1所示。
图1 《软件工程》线上教学过程
在以上线上教学过程中,教师主要引导学生完成学习任务,监控学习过程,并进行课后辅导和答疑。课前教师利用智慧树平台的翻转课堂和QQ学习群发布学习任务,引导学生完成学习知识的准备工作;课中教师根据教学大纲选择共享课中的教学内容,并利用直播课进行重点讲授、难点答疑以及知识拓展,重点引导学生利用所学知识解决实际问题;而课后教师利用智慧树平台布置批改作业、与学生线上交流答疑。
学生是线上学习的主体,课前学生要按照学习进度进行预习和学习知识的准备工作;课上学生会根据学习任务自主完成共享课中知识点的学习,并完成各项课堂活动;课后学生则会利用在线学习平台完成知识的巩固、拓展以及作业练习。
(2)项目实训活动
《软件工程》是一门理论性和实践性都很强的课程。如何将所学知识应用到软件项目开发的实践中,是本课程的一个重要内容。为了让学生更好地应用所学知识,课程安排了项目开发实训活动。项目实训安排如下:学生以自愿结合的方式组建项目小组,每个项目小组选定一个软件项目,根据课程进度和所学知识,通过小组合作和角色扮演的方式完成一个项目的开发。学生项目实训工作如图2所示。
图2 项目实训活动安排
学生选择项目后,将在组长的协调下完成一个软件产品的开发,根据软件项目需求分析、总体设计以及详细设计等阶段工作,项目小组的学生通过线上、线下交流完成自己所负责的工作,并书写各阶段的开发文档通过翻转课堂进行提交。教师在项目实训中随时监控各项目小组的项目进度,并进行指导。具体分工如图3所示。
图3 项目实训具体分工
2.教学内容设计
结合应用型高校人才培养目标,《软件工程》课程的教学目标以及实现目标的线上教学方式分别为:
目标(1)要求学生通过系统地学习软件工程的相关理论和技术,掌握软件项目开发的方法、工具和过程。(利用网络共享课)
目标(2)培养学生对软件项目进行分析设计建模的能力。(利用在线直播课以及章节作业)
目标(3)培养学生阅读与撰写软件项目相关文档的能力,从而使学生具有参与并完成中小型软件项目开发的能力。(利用翻转课堂共享资料以及项目实训作业)
为达到《软件工程》课程教学目标,保持教学内容的前沿性,课程选取的教学内容以传统软件开发方法学的软件生命周期为主线,以目前比较流行的面向对象开发方法和工具为重点,主要内容包括:软件工程概述、软件项目的可行性研究、软件项目的需求分析、软件项目的概要设计、软件项目的详细设计、软件项目的实现、软件项目的测试、软件维护、软件项目管理,具体内容如表1所示:
表1 《软件工程》课程教学内容 |
||
目录 |
理论内容 |
实践内容 |
软件工程概述 |
软件工程概念,软件开发方法学与软件开发模型。 |
|
软件项目的可行性研究 |
软件项目可行性研究的目的,可行性研究的过程、方法和工具。 |
对一个软件项目进行可行性研究;可行性研究报告的读和写。 |
软件项目的需求分析 |
软件项目的需求分析的目的,需求分析的过程、方法和工具。 |
对一个软件项目进行需求分析;需求分析规格说明书的读和写。 |
软件项目的概要设计 |
软件项目概要设计的目的,概要设计的过程、方法和工具。 |
对一个软件项目进行概要设计;概要设计说明书的读和写。 |
软件项目的详细设计 |
软件项目详细设计的目的,详细设计的过程、方法和工具。 |
对一个软件项目进行详细设计;详细设计说明书的读和写。 |
软件项目的实现 |
软件项目编码的方法、策略和规范。 |
将详细设计翻译成代码,并实现软件项目的具体功能。 |
软件项目的测试 |
软件项目测试的目的、测试方法、级别和过程管理。 |
设计测试用例,完成对软件项目的各类测试。 |
软件维护 |
软件项目维护的目的、类型、过程和方法。 |
软件维护过程文档的读和写。 |
软件项目管理 |
软件项目管理方法 |
对一个软件项目的开发进行管理 |
针对以上教学内容我们在线上教学过程中采用了网络共享课和在线直播课相结合的教学方法。对于软件工程的概念、软件项目开发的过程方法和工具以及软件项目管理方法等知识,学生利用网络共享课进行自主学习,掌握软件工程相关概念以及软件项目开发的方法、工具和过程。
对于共享课中所学知识、工具和方法的应用,教师则利用在线直播课,采用案例教学的方法,通过讨论的方式进行重点介绍。着重培养学生利用所学工具和方法对软件项目进行分析、设计和建模的能力。比如以数据流图的应用为例,我们在教学中以订货系统为案例,首先利用学生在共享课中所学方法和工具建立起一个系统的数据流图,然后让学生通过分组讨论的方法对最初的数据流图不断的修改和完善,并选择若干个比较好的数据流图全班同学一起分析优缺点并进行改进,最终通过投票的方式选取一个数据流图。利用课上讨论,征集方案让学习利用所学知识自己完成对系统模型的创建和修改,既可以让学生更好的掌握所学方法和工具,并灵活应用,培养学生对软件项目进行分析设计建模的能力,而且通过模拟软件项目实际开发过程,也可以增加学生学习的主动性。具体过程如图4所示。
案例:订货系统
一家工厂的采购部每天需要一张订货报表,报表按零件编号排序,表中列出所有需要再次订货的零件。对于每个需要再次订货的零件应该列出下面数据:零件编号,零件名称,订货数量,目前价格,主要供应者,次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给订货系统。当某种零件的库存数量少于库存量临界值时就应该再次订货。
图4 数据流图的创建过程
针对培养学生阅读与撰写软件项目相关文档能力,从而使学生具有参与并完成中小型软件项目开发能力的教学目标,教师通过在翻转课中共享资料和案例的方式指导学生进行软件项目开发相关文档读写能力的培养,并通过项目实训让学生参与软件项目开发的相关工作。
3.教学评价设计
课程考核方式采用过程性评价与终结性评价相结合的多元化课程评价体系。具体评价方式:过程化考核+项目考核+课程基础知识测试,具体构成如图5所示。
过程化考核由学生平时学习成绩构成,包括:视频学习时长和课堂成绩(20分),章节测试(20分),章节作业(60分)。过程化考核成绩占总评成绩的30%。
项目考核由学生提交的项目报告成绩、学生在项目开发过程中的表现以及项目答辩成绩构成。本课程的内容学习完毕后,要求学生通过自由组队、自主选题的方式选择一个软件项目进行实践,并根据课程所学内容提交软件项目开发过程报告。老师负责监控学生在项目完成过程中的表现,并根据项目报告和学生的表现对每个学生的项目实践进行打分。项目成绩占总评成绩的40%。
课程基础知识测试由期末测试成绩构成,期末测试主要考查学生对课程所学的基本知识点的掌握情况。课程基础知识测试成绩占总评成绩的30%。
图5 软件工程总评成绩结构
该评价方法强调了过程考核,增加了项目考核,突出对学生应用知识解决实际问题能力的考查。
4.思政融合设计
根据《软件工程》课程的特点,可以从以下几个方面将思政育人思想融入课堂,激发学生的家国情怀,激励学生拼搏进取。
(1)讲好计算机软件领域杰出人物的故事
(2)认识国产软件的重要性
(3)“健康码:数字技术助力战疫”
(4)项目管理:体验分工合作的重要性
三、线上教学实施
教学方式:线上混合式教学
线上教学平台:智慧树平台+QQ课程学习群
网络共享课:
教材:张海藩,牟永敏. 软件工程导论(第6版). 清华大学出版社
教学实施:
1.课前发布学习任务
利用智慧树翻转课堂和QQ学习群发布课前准备工作以及课上学习任务。
2.课上答疑、交互、讲授
课堂上学生利用网络共享课完成学习任务,学习过程中可以利用翻转课堂和QQ群与老师交流;或者教师利用在线直播课进行对所学知识巩固和应用的讲解。
3.课下分享学习资料,布置批改作业。
教师将软件开发相关文档的书写方法以及相关案例以学习资料的形式发布到翻转课堂,按照课程学习的进度要求学习完成相关文档的阅读,并按照课程进度完成章节作业的布置与发布。学生课下按时完成作业,并提交。课下教师要利用QQ课程学习群以及翻转课堂随时解答学生的问题。
四、线上教学反思
1.《软件工程》课程中的理论部分内容比较乏味、概念比较抽象,学生缺少学习兴趣。而通过网络共享课的形式进行学习,会导致主讲教师无法监控学生学习效果,所以在直播课中教师对知识的应用进行讲解时,会出现交互困难的问题。往往需要教师对使用的工具和方法重新进行讲解和介绍,课堂效率较低。
2.部分学生只能利用手机进行在线学习,以致学生在上直播课时常常遇到网卡、掉线以及屏幕不清楚等问题影响学习效果。
3.由在网络共享课为统一授课,不能很好地实施分层教学,也无法迅速捕捉每个学生的掌握情况,学生在线课堂学习效果存在差异。为防止学生失去学习兴趣,要及时听取学生反馈意见,完善课下答疑过程,并在直播课上对自己的教学内容及教学进度进行调整。
(撰稿:李楠 编辑:李莉 编审:辛源)