基于大数据视域下软件工程专业教学改革的举措探讨
2023-10-02张帅
张 帅
广州工商学院工学院,广东 佛山 528138
软件工程专业教学在大数据时代下面临更多的新情况和新问题,要结合软件工程专业学科的系统性、专业性和实践性特点,分析大数据时代下软件工程教学面临的问题,认真查找大数据背景下软件工程专业教学需要进行怎样的改革和发展,才能应对其专业人才培养的需求,提升学生创新使用大数据工具并解决问题的实践能力。
一、软件工程专业教学概述
软件工程主要是软件维护和开发过程中所涉及的普遍原理和应用技术,涵盖设计模式、系统平台、数据库、程序、设计语言等。在软件工程专业教学之中,既要系统学习计算机科学相关技术,也要全面了解基本理论知识,并且,对软件工程管理方法和运行模式进行教学,引导学生进行软件测试、软件工程工具方法、软件设计、软件构造与维护、软件工程管理、软件需求及配置管理等方面的教学,较好地提升学生对软件工程产品的定义、维护、开发和管理[1]。
具体来说,在软件工程专业教学之中,要让学习者理解软件工程专业教学的基本理论和专业知识,引导学习者进行面对对象的程序设计、Java语言和实践训练,学习网络数据库的设计、应用和编程能力。同时,通过大量的实践提升学习者的实际问题解决能力,并能够逐渐进入到社会中从事计算机软硬件开发、系统集成、程序设计、数据库设计等行业领域之中。
二、大数据时代软件工程专业教学存在的问题剖析
(一)课程目标定位存在偏差
当前软件工程专业教学课程目标存在一定的偏差,软件工程专业课程设置与计算机专业存在一定的重复。为此,需要培育出软件工程特色专业应用人才,凸显软件工程专业人才在软件领域中的作用和地位。
(二)课程内容设置不够合理
大数据时代下的软件工程专业教学课程结构不够合理,课程内容较为陈旧,没有跟上大数据发展的速度,局限于面向对象方法教学内容和生命周期教学内容等,对于CMM、UML、软件度量、软件配置管理、软件质量管理等课程内容缺乏充分的关注[2]。这些大数据时代的时兴技术没有体现在课程教学内容之中,不利于学生对软件工程专业课程的深入理解和应用。
同时,在软件工程专业实践课程设置中也存在一定的欠缺。由于受到诸多条件的限制和影响,软件工程教学实践与社会需求存在错位现象,学生在学习中无法将理论较好地应用于实践操作之中,不仅软件配置和软件风险在管理上存在问题,而且在软件过程等管理方面距离标准差距也很大,更不要说复合型以及复合型人才的相关需求。
(三)专业教学实施较为单一
现阶段软件工程专业教学只是采取了单一化的模式,使学生在课堂上并不占据主导地位和发挥主导作用,只能是被动式的接受,所以,不利于培养学生在软件工程专业学习中的主动性和创造性。同时,由于软件工程专业教学实施模式较为单调,学生的学习动力明显不足,缺乏良好的师生互动和交流,导致学生对软件工程专业缺乏具象化认知,没有充分认识到软件工程在社会实际中的应用价值,降低了软件工程专业教学的效果。
三、大数据时代下软件工程专业教学改革的举措
(一)明确软件工程专业教学课程目标
要明确大数据时代下软件工程专业课程培养的目标,充分体现软件工程专业的自身特色,结合社会需求进行精准定位,如:某高校在软件工程人才培养的过程中就提出了“面向软件工程领域前沿,融合国际先进的NIIT 软件人才教育模式”为人才培养目标,重点培育能够对大中型复杂软件系统进行开发、管理等具有高级水平的人才。
同时,在对软件工程专业课程目标进行合理定位的前提下,要结合IT 产业的市场需求,注重理论、方法、技术和软件管理教学并重,合理设计切实可行的软件工程专业人才培养方案,设计科学合理、切实可行的理论和实践课程。
(二)完善软件工程专业教学结构
首先,要改变先进行理论课程学习后进行课程设计学习的纵向课程结构,使得理论教学和课程设计能够同时安排,推进学生对软件工程专业知识的理解和应用。
在软件工程专业理论教学之中,要进一步加强在软件工程方面的理论教学,并且将结构化方法教学作为重要基础,为学生提供接触到专业软件工程方法机会和实践,帮助学生拥有更强的软件开发运维能力[3]。还可以让学生在课堂实践中运用主流的C#或Java 语言进行软件开发,让学生对软件工程理论知识有更为深入的理解。同时,还要增设《Python 程序设计》《数据科学基础》《算法分析与设计》《人工智能导论》《云计算技术》等课程,还要更新数据库相关课程内容,包括分布式数据库、NoSQL 数据库等,为学生的软件工程专业学习提供新的视野和思路。
其次,要进一步加强软件项目管理知识的授予以及科学教学方法的采取,使得学生尽可能多地掌握软件项目管理科学可行的方法。比方说,知晓怎样估算项目规模和具体的工作量,明白怎样估算项目当前的实际进度,了解进度计划的相关方法等,这对于软件开发实践过程来说非常重要。
在软件工程专业实践教学之中,可以采用校内实践和校外实践的不同方式,较好地改善实践教学效果和质量。在校内实践教学之中,可以组建项目开发小组,选择难易程度适宜的研究课题,对标对表进度安排,认真细致地落实软件开发任务,教师则在这一过程实施及时必要的指导和帮助,如帮助学生进行软件开发的需求分析、系统设计、软件设计等方面的指导,学生要充分借助分工合作这一有利契机,彼此之间进行深入探讨和多方交流,在完成软件开发后编制课题报告并进行课题答辩,通过软件开发实践掌握软件相关技术和方法。在校外实践教学之中,要由任课老师带队,分组进入到实践基地之中进行实训练习,增强学生动手实践的能力。
另外,在完善和优化软件工程课程结构的过程之中,要采用模块化管理的方式,构建基于大数据的软件工程专业教学课程体系,主要包括公共基础与自然科学模块、综合素质、专业基础、专业课程、工程应用与创新等不同模块单元,使之形成高内聚、低耦合的特征,较好地适应在大数据时代背景下,越来越多的软件工程专业人才需求。
(三)探索多样化的课程实施方法
1.案例教学法
基于大数据时代的软件工程专业教学要充分利用大数据平台和系统,将教学内容呈现于真实复杂的可视化情境之中,引导学生对各个知识点产生沉浸式的学习体验,快速融入到软件工程开发的可视化场景之中,积极主动地进行学习和探究。
考虑到软件工程案例构建存在一定的难度,要贴近学生的实际学习需求构建基于软件工程的第三方智能化教学与实训平台,如:EduCoder[https://www.educoder.net/]等,在该平台中设计不同的子模块,包括建模系统平台、Git 可视化分析系统、代码阅读标注系统、团队项目管理平台等,在教学改革实践中借助于基于软件工程的第三方智能化教学与实训平台开展辅助教学,凝练、总结和设计教学案例,引领学生深入挖掘软件工程专业知识重点和难点,帮助学生进一步理解案例中的关键知识点[4]。具体设计如下几个教学案例:
案例一:模型保存功能。针对“保存模型”的教学需求,程序员要能够利用“自动保存”功能捕捉所有界面退出的事件,并在该事件后自动运行保存功能。在这一案例之中,程序员首先要有效获取软件需求,进行有效的用户验收测试,从用户的感受对功能进行分析和设计,从而较好地提高用户的使用体验。
案例二:时间紧张下未充分测试的问题。对于这一问题的解决要进行全面的分析,不能仅仅是由程序人员对本机进行测试,还应当进行跨平台的系统测试,并在测试用例中设计完整的内容,包括黑盒测试、白盒测试等,并设计完整的测试用例代码。同时,还要进行实际的用户验收测试,考虑用户的使用偏好和习惯,对于测试中可能存在的异常操作进行设计和实施,从而较好地提高建模的效率。由此可见,软件工程人员要进行合理高效的工程项目管理,准确评估软件开发的难度,制定合理可行的项目计划,避免开发周期过长而缩减软件测试的问题。
案例三:技术方案的局限性而导致需求变更。对于部分浏览器不支持jQuery AJAX request 的模型丢失现象而言,程序员在比较短的时间之内并不能修改好,因此,要在固有的系统需求外添加约束条件,也即对软件需求进行适当的演化,使之能够跟随系统的开发和使用发生变化。
2.基于MOOC、PBL 和FC 的课堂教学
传统教学模式教学手段较为单一,缺乏多样性和灵活性,难以有效培养学生的创新能力、自能力、团队协作精神和实践动手能力。当前,在大数据时代背景下的软件工程教学要充分利用MOOC、PBL、翻转课堂等方法进行融合教学,系统改革现阶段的软件工程专业教学模式,以问题为载体,充分调动学生对于探究的激情和热情,在教师的指引和点拨之下提高学生的自主学习和创新能力。
在基于MOOC、PBL 和FC 的课堂教学之中,老师要预先设计软件工程专业课程问题,要将学生当前的实际情况和学习要求作为出发点和落脚点,富有创意地设计实用性、扩展性、启发性和综合性的课程问题[5]。并将课前准备好的课件、教学视频、教案、测试题等资源上传到MOOC 平台,学生根据自己的学习需求和学习时间进行自主学习,登录到慕课平台之中学习相关课程章节,并进行相关章节的习题在线测试,记录下自己在学习和测试中遇到的问题,教师对学生进行在线学习的问题进行归纳之后进行集中解答和讨论,在课上对学生遇到的问题进行反馈和讲解。并在课后对课堂情况进行梳理,在慕课平台上布置随堂测试和课后作业,检查学生的学习效果,以此作为后期教学计划的调整依据。
3.引入CDIO 教学模式
CDIO 是将理论与实践融合的教学模式,涵盖构思(Conceive)、设计(Design)、执行(Implement)、运作(Operate)等内容,是以软件产品的研发、测试、运行等生命周期为载体进行有针对性的理论实践教学改革,既要着眼于基础知识和实践能力,也要聚焦于工程系统等不同维度开展对学生的专业培养和教育,让学生在主动的、联系实际的、课程互动的环境中进行自主学习和探究。
教师合理设计相关课程问题,引导学生围绕课程问题进行思考、自主分析和探索,培养学生的自主学习意识和问题探索能力。以学习《操作系统》的“存储管理”知识点为例,教师精心设计课程问题,向学生提问:“Linux 操作系统采用哪种存储管理方式?”“Linux 操作系统实现内存扩充的途径是怎样的呢?”学生带着问题进行思考和探究,能够快速进入到对专业知识的学习之中。
教师预先设计一个完整的课程项目,让学生围绕这一项目开展学习和实践。以学习《Java 程序设计》的课程为例,教师可以结合学生的生活经验进行教学,合理设计课程项目“员工薪酬管理系统”和“图书馆管理系统”,全程教学围绕这两个完整的项目展开,让学生在相应项目模块中进行设计和实践,体会项目中蕴藏的专业知识点,实现理论与实践的有机结合。
(四)大数据软件工程实验室的建设
大数据时代下的软件工程专业教学要根据课程体系设计要求,建设软件工程实训实验室,既要引进我国和国外的高校人才,也要重视研究机构以及企业界的“行家里手”,并且树立和巩固大数据全生命周期管理的核心地位,重点做好软件工程实验室的大数据存储、处理和计算分析等内容,形成以大数据系统软件产业为核心的创新网络,并且在创新研发上花更多的心思,在技术转化上下更多功夫,在应用示范平台上做更大的努力,使得专业课程教学和行业应用能够更加紧密联系在一起。
综上所述,想要与大数据产业发展和软件人才的各项需求同频共振,需要改革当前的软件工程专业教学,找到大数据背景下最为符合客观发展的培养创新模式,同时,转变传统的教学方法和手段,融入多样化的软件工程专业人才教学方法,重点培养学生面向大数据环境的问题解决能力和实践创新能力,从理论和实践相结合的角度开展软件工程专业教学,从而帮助学生更好地突破软件工程专业课程的重点难点,增进对软件工程专业课程的理解和应用水平。