基于创新教育的“软件工程”课程教学研究
2020-06-08余员琴张弘华彭姣丽李晨韦荣堂
余员琴 张弘华 彭姣丽 李晨 韦荣堂
摘 要:现已进入知识密集型软件开发时代,“软件工程”课程教学效果优劣对软件工程本科学生从事IT工作及软件开发质量有着重要的影响。依据软件工程本科专业人才培养方案、学科前沿发展和学生就业去向,结合长期一线教学实践经验和现代化教学技术手段,从优选教材、优编课程内容、精设教学过程、精用教学方法、构建网络课程教学平台、尝试双语教学等多视角探讨该课程资源和教学方法。实践证明其教学效果较佳,以供其他课程教学借鉴。
关键词:创新教育;软件工程;教学内容;教学方法
Abstract:Now it has entered the era of knowledge intensive software development. The teaching effect of “Software Engineering” course has an important influence on IT work and software development quality of software engineering undergraduates. According to the software engineering undergraduate professional talent training plan,the forward development of the discipline and the orientation of studentsemployment,combined with long-term experience of first-line teaching practice and modern teaching techniques,the course resources and teaching methods are explored from multiple perspectives,such as optimizing teaching materials,optimizing course content,refining the teaching process,intensive use of teaching methods,building a network course teaching platform,and trying bilingual teaching. Practice has proved that its teaching effect is better,for other courses as teaching reference.
Keywords:innovative education;software engineering;teaching content;teaching method
0 引 言
近年來,各高校逐步实施创新教育。以首都师范大学为例,该校全面制定和实施了“大学生科研创新能力培育计划”,以《本科生科研创新工作管理办法》《校内创新实践训练基地建设管理办法》《创新学分认定办法》等一系列管理制度为保障,部门协同、层次递进,紧密围绕学生实践创新能力训练环节,形成了“实践动手能力和科研创新能力双融合”机制。
近年来,计算机技术快速发展及应用多元化,软件数量、规模和复杂度成指数倍增长,因此,为了促进软件产业的健康发展,必须有一套科学、合理的软件管理和技术手段来保障软件项目的顺利实施,保障软件客户权益最大,使得软件更好地服务于社会,基于上述需求,“软件工程”课程顺应应时代要求出现了。
湖南交通工程学院(下文简称交工学院)2016年申报软件工程本科专业成功至今,“软件工程”课程成为该专业的核心课程之一,也是相近工程专业学生学习和了解工程项目开发知识的主要课程,也是我国很多高校计算机科学及相关专业硕士、博士学位入学考试的主要专业科目,也是我国软件工程师中级、高级考试重要的考点,更是IT行业确保软件质量、数量的必备技术支持。AI时代的到来,随着软件智能化、个性化、规模化发展,进行“软件工程”教学内容的优化和教学方法的改革是大势所趋。
1 “软件工程”课程的特点
“软件工程”课程内容抽象难懂,更新快,是集理论性、专业性、工程性、实践性的一门专业核心课。其内容涵盖数据科学、工程学、认识学、人工智能、社会学等多学科交叉技术领域。与计算机语言类课程有很大不同,语言类课程主要与“机器”交互,而“软件工程”课程是与“机器”和“人”一起交互作业。由于学生前几学期只是学习和操作过语言、算法课程的理论、实践、课程设计,难以将编程思维向项目思维转变,再加上缺乏实战项目经验,导致学生学习起来有一定难度。因传统方法学和面向对象方法是现今使用最广泛的两种软件工程方法学,在这两种开发方法学中,每一个开发阶段都包括大量的原理、方法、技术、工具,其课程内容繁杂交替,理论与技术方法繁多,相关概念抽象,学习起来较难。
2 “软件工程”课程教学的优化
2.1 优选教材和优编教学内容
优选教材影响着教学质量和教学效果,教材是教学资料和精设教学内容的主要来源,至今,“软件工程”的教材有几十种,五花八门。研究分析我国近五年来软考中、高级考试大纲要求,依据交工学院软件工程本科专业人才培养方案和对比研究其教材的内容体系、教学目标及市场对软件工程人才的培养要求,选吕云翔主编的普通高等教育软件工程“十二五”规划教材《软件工程——理论与实践(附微课视频 第2版)》,作为我校软件工程本科专业课程教材,另优选4本参考教材供学生课外自主学习。基于优选的课程教材提供的教学内容体系,优编教学内容由以下“10+1”个教学模块组成:软件工程导论(2课时)、面向对象软件工程(8课时)、软件设计模式(10课时)、软件分析与建模(10课时)、软件质量保证与测试(10课时)、软件项目管理(10课时)、软件形式化方法(10课时)、小组软件项目实践(10课时)、创新创业计划训练(10课时)、企业软件项目实践(16课时),另加一个课程设计(16课时),共设5学分(4学分理论+1学分实践)。
2.2 优化教学内容模块
交工学院以培养应用型人才为特色,围绕AI、大数据、物联网等学科发展动态,优化课程内容:
(1)软件工程导论教学模块。以开发“小型网上书店系统”案例为切入点,软件、软件危机、软件工程的概念、软件过程模型、项目开发计划由学生自主学习,以软件工程研究内容、目标、原则、知识体系、可行性研究为本教学模块主要讲授内容。“结构化分析”“结构化设计”被传统软件工程学方法删减掉,增加“需求管理”的教学内容。
(2)面向对象的软件工程教学模块。面向对象方法的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界、解决问题的方法与过程,也就是使描述问题的问题空间(也称为问题域)与实现解法的解空间(也称为求解域)在结构上尽可能一致。其开发的软件系统具有稳定性、可重用性、可修改性的特点。面向对象的基本概念、分析过程、分析原则由学生自主学习,统一建模语言(UML)、UML“4+1”视图、面向对象模型为本章教学主讲内容。在开发知识密集型软件时,如计算机辅助自动驾驶、人工智能、大数据处理等需要引入介绍“MATLAB数学计算机软件”知识,增强本专业学生解决专业问题的能力。
(3)软件设计模式教学模块。软件设计模式是大多数IT人了解并能常态化使用的分类编目的代码设计经验的总结。代码的重用性、可靠性、易读性是影响软件质量重要的三个因素。软件设计模式中的基础模式、委托模式、代理模式、单例模式、原型模式等由学生自主课外学习完成,创建型模式和适配器模式由学生主讲完成,抽象工厂模式、工厂方法模式、接口模式、生成器模式及设计模式的五种原则为本教学模块主讲内容。
(4)软件分析与建模教学模块。高度连续性、唯一性等特性的面向对象的软件工程技术集成到软件分析、设计和编程等生存周期的相应阶段。从模型概念到数学模型、描述模型引入图形模型,并以“校园导览服务”小程序为案例,用UML的用例图、类图、对象图、状态图、顺序图来建模。
(5)软件质量保证与测试教学模块。项目质量体现在其性能或者使用价值上,增设“项目质量管理过程”“项目质量管理的技术和工具”。软件测试是与软件开发紧密相关的一系列有计划、系统性的活动。软件测试的原则、模型、分类,并以“校园导览服务”小程序软件测试实例贯彻本教学模块,将测试报告加以分析,来完善测试用例的设计和测试方法的调优。增设“软件测试技术”和“项目测试管理”以拓宽学生软考的知识面。
(6)软件项目管理教学模块。软件项目管理是现代管理学科中一个地位日显突出的新分支。从基本概念、定义、特征、理论、技术、方法和工具进行较为系统地探讨,对项目的九大知识域和过程管理等环节进行全面阐述,重点以项目管理实践部分为主。
(7)软件形式化方法教学模块。是基于数学严格性、计算机软硬件系统进行描述、开发和验证的技术。增加软件形式化的理论、方法、工具和应用的现状,扩展與人工智能、网络空间安全、量子计算、生物计算等领域交叉融合的知识,以拓宽学生的前沿科学的知识面。
(8)软件项目开发实践教学模块。以小组软件项目实践、创新创业计划训练、软件企业项目实践丰富学生开发项目的经验、增强开发技术能力及项目管理能力。如“校园导览服务”小程序是一组学生实践训练开发的项目,“校园导览服务”界面源代码如下:
3 “软件工程”课程教学方法的改革
3.1 精建师资精设教学
“软件工程”课程“教”的质量取决于教学过程的设计,任课教师的专业素养和教学水平。交工学院“软件工程”课程的学科带头人为交工学院电气与信息工程院软件工程教研室主任,学校的“优秀”教师,具有软件工程师(二级)和信息项目管理师资质。筹备及计划组建一支责任心强、教学能手和具有丰富的项目开发经验的教学团队。依据教学三纲、教材及学生差异,并以课时、课题为教学单位,从教学内容、教学步骤、教学方法等精心设计一种实用性、科学性、创新性、艺术性、可操作性及扩展性强的教学文本开展教学。
3.2 定位课程
在上“软件工程”课程时,尤其是第一堂课就强调该课程的地位。该课程是集计算机编程语言、算法和结构、数据库等相关内容学习后的综合运用的核心课程;是软考中、高级考试必考的内容之一;是大多数高校硕士、博士研究生入学考试的主要专业知识考点。提醒学生要深刻意识到此课程的重要性、实用性,重塑学生的学习态度,引发他们的学习兴趣。
3.3 比赛项目驱动教学
好的教学效果除了与任教老师有关外,其关键是要让学生对课程产生浓厚的兴趣并认识到课程的重要性。以“互联网+”大学生创新创业比赛、“软件杯”比赛、“物联网”比赛和“北斗——智能导航”比赛等项目驱动“软件工程”的教学,使学生能够接触到更前沿的科学技术,以此来引导各组选定项目、明确项目目标并引导各组学生运用软件工程学分析项目中的各种问题,进而利用自己身边的资源找到相应的解决方案。从而培养他们发现和解决问题的能力,锻炼学生自主的、有目的的去听、去看、去储备自己所需要的知识和技能,同时,迫使他们深入市场进行调查,根据调查结果优化项目,这种集思考、实践、教学、竞赛于一体的教学模式,使得学生学习的目的性更强,让他们对知识的渴望度更高,能够现学现用,在知识的掌握程度上也会更加熟练突出。
3.4 构建课程网络教学平台
近几年来,尝试利用现代教育技术、云集国内外相关高校“软件工程”课程教学资料,总结本课程以往教学经验,编集教学素材,从教学三纲、教案、课件、项目案例、图书资源、参与资料、试题库、交流讨论平台和网络链接资源等构建网络课程教学平台,如图2所示。
3.5 尝试“双语”教学
专业课程实现双语教学是大势所趋,为大四学生学习专业英语打下良好的基础。与国际接轨是我国高等教育改革发展的重点及热点问题。软件项目开发的领头军还是西方国家,“软件工程”课程尝试双语教学是非常有必要的,一方面紧跟学科前沿,优化“软件工程”课程双语教学内容,另一方面营造互动交流的环境氛围,实现新概念、新理论和新技术。“软件工程”课程双语教学近年来逐渐进入了课堂,成为培养国际化人才最有效的途径,同时也为其他专业课程教学的改革打基础。
4 结 论
“软件工程”课程是集合了其他软件工程专业课程的综合运用课程,也是软件项目开发的必备储备知识。为了实现良好的授课效果,必须利用先进的教学理念和现代教育技术手段,以课程教学内容和教学方法改革为抓手,通过实践探索合适“软件工程”课程的教学方法和教学内容,让学生在项目中学,在快乐中学,并学以致用,为我国经济快速发展和培养社会所需软件工程类人才提供有利条件。
参考文献:
[1] 张秋余,张其文,顾群.以软件工程为主线的课程群体系建设 [J].西部素质教育,2019,5(2):10-12.
[2] 余员琴,陈海文,崔静茹,等.“互联网+”背景下基于大学生创新创业项目驱动的软件工程课程教学模式研究 [J].计算机产品与流通,2018(9):241-242.
[3] 刘霞,李海涛,梁霏霏,等.应用型民办本科高校的课程专项教学改革研究——以山东华宇工学院试点课程改革为例 [J].文教资料,2019(4):172-175.
[4] 谢慧.应用型本科院校计算机软件工程课程改革的探究 [J].通讯世界,2017(9):297.
[5] 梁宝华,郑尚志,邢慧芬.基于校企联动平台的软件工程实践教学改革与创新 [J].巢湖学院学报,2016,18(6):106-110.
[6] 于仁师,许海洋.面向应用型人才培养的软件工程教学模式的改革与实践——以青岛农业大学为例 [J].高等农业教育,2016(3):73-76.
作者简介:余员琴(1983—),女,汉族,江西九江人,副教授,硕士,研究方向:智能安全监测与无线网络。