MOOC下的计算机软件课程虚拟实验研究与实践
2019-05-10赵晓南刘海龙李战怀
李 宁,张 晓,赵晓南,刘海龙,李战怀
(西北工业大学 计算机学院,陕西 西安 710072)
0 引 言
随着计算机技术的飞速发展,在线教育目前进入了 MOOC(massive open online course)时代[1]。特别是近年来,以MOOC + SPOC(small private online course)为代表的教学模式逐渐兴起,并被越来越多的大学接受,该模式通过短视频网络在线学习、在线互动讨论等手段,有效解决了学习受时间、空间、师资等方面限制的问题[2]。然而单纯的视频学习或在线测试等仅能有效缓解理论教学的问题,对提升实验教学的效果帮助有限。实验教学一直是高校本科人才培养工作中不可或缺的重要组成部分,关系着培养人才的工程实践能力和工程创新能力[3]。因此探索适应MOOC环境下的虚拟实验技术和教学模式,不仅对辅助在线理论课程的教学有非常重要的意义,同时,是线下实验教学应对MOOC 冲击的创新与变革。
1 MOOC虚拟实验平台研究背景
现有MOOC 课程多以理论课程为主体,90%以上的辍学行为引起了研究者的广泛关注[4-6]。经过对MOOC上的学生学习行为进行跟踪,研究者发现在MOOC上学习文科类课程和计算机课程都比较容易,但是对于物理、生物、工程等学科,由于有实验训练的环节,若只提供线上理论课程教学,学生往往很容易放弃,只有一部分学习习惯非常好的学生才能够坚持,导致MOOC学习者高辍学率[7]。而且即使学习者能够坚持下来,因为缺乏实验练习,所以很难收到良好的教学效果,无法达到课程的预期目标。
虽然文献[7]提及计算机课程容易学习,但实际上计算机类课程的实践性都较强,如计算机软件专业核心课(包括程序设计语言、数据结构、数据库原理及软件工程等多门课程),每一门课程都需要学生通过大量的实验练习来加深对知识点的理解,进而完全掌握课程内容。因此,提供良好的在线实验环境和精心设计的实验教学内容,对提升软件课程MOOC教学效果的重要性不言而喻。
在目前的实验教学中,有部分软件编程类课程已经用OJ(online judge)等在线系统提交程序、自动对比程序结果等方式实现了实验方式的改革,但是仍有很多与实验环境紧密相关,涉及具体操作的实验多是在专业实验室实施,在辅导老师现场指导和答疑下,学生自主进行实验,并进行相关实验考核。这种传统的实验教学方式常常存在以下几个方面的问题。
(1)资源使用效率低。学生只能在安装了指定软件的机房实验,课余时间实验室资源无法利用。在实验课内未完成实验任务的同学,只能中断实验。另一方面,教师在下课后通常无法查看学生的实验进度,不能进一步指导和动态调整实验任务,严重影响了实验教学质量。
(2)实验成果和相关数据的可利用性较差。学生在实验过程中产生的实验数据和行为特点(如操作中常犯的错误等),难以被有效地收集与积累。这使得教师难以通过统计分析等对教学内容和方法进行持续的调整和改善。
(3)维护和管理成本高。同一台PC机需要反复安装不同实验所需的软件和操作系统,造成机器设备损坏率增高,增加硬件投入和维护成本。对于不兼容的软件需要反复卸载和重装。计算机设备更新换代快,使用3~5年就需要重新购置新的机器,否则无法满足性能要求。
(4)无法保证数据存储的安全性和可靠性。实验室由于安全性考虑,大多无法保存个人数据,导致教师和学生的个人文件和实验数据容易丢失,长期使用移动存储设备会带来病毒入侵的风险。
针对以上问题,国内外学者积极探索和研究虚拟实验系统的应用。目前已有一些虚拟实验系统应用于实验教学中的成果,如牛津大学开发的化学学科虚拟实验系统[8]和美国约翰霍普金斯大学电子科学虚拟实验[9]等,学习者可以通过开放的互联网远程访问站点进行在线实验。与国外相比,国内高校在该领域的研究起步较晚。当前,将实验教学虚拟化以及融入MOOC环境还面临许多困境,亟待发展。
参考其他虚拟实验平台设计方案与架构[3,7,10-11],通过构建一个适用于MOOC环境的基于云计算的计算机软件核心课教学虚拟实验平台,可以充分发挥MOOC与虚拟实验环境的优点,提高在线教学的质量。同时,若将该平台推广到线下的实验教学中也可弥补传统实验教学的不足。
2 MOOC环境下的虚拟实验平台MOOCElab
2.1 整体架构
MOOC环境下的虚拟实验系统主要包括MOOC系统平台、实验平台、客户端3部分,整体平台构架如图1所示。其中实验平台部分包括基于OpenStack云计算的虚拟实验平台和已有的其他在线实验平台(如OJ等在线测试系统)两部分。该虚拟实验平台既可以在线下教学中直接使用,也可在MOOC系统中支持MOOC实验。
图1 MOOC环境中的虚拟实验系统MOOCElab
基于OpenStack的虚拟实验平台是该系统的核心,主要包括资源管理、存储管理、用户管理、安全管理等部分。OpenStack主要通过虚拟化技术提供用户自管理和自服务的虚拟计算环境。
2.2 平台建设
1)云计算平台搭建。
由于大部分的实验需要以个人或者小组为单位拥有独立的一个或者若干个虚拟机,所以该虚拟实验系统的核心是云计算平台。本例中使用开源软件OpenStack,包含keystone、glance、nova、dashboard、neutron等组件。OpenStack可管理多种虚拟化平台,本系统中搭建在CentOS的KVM平台上,具体搭建过程参考OpenStack的官方网站。系统由一个控制节点和多个计算节点组成,根据虚拟机核数的不同,每个计算节点可提供20~50个虚拟机服务。
2)OpenStack平台中创建虚拟实验模板。
OpenStack平台搭建完成之后,利用其中flavor(虚拟机模板)创建各门软件核心实验课程所需的虚拟机模板,包括操作系统以及相关的软件环境。在具体实验中,学生可利用虚拟机模板创建虚拟机。这些虚拟机的操作系统和软件环境都已满足相关课程需要,可以即开即用。该步结束后,该系统就可以单独运行以支持非MOOC模式的虚拟实验。
3)开源MOOC平台搭建。
在虚拟机或实体机上搭建开源MOOC平台。本方案中使用开源软件OpenEdx,具体试安装版本为bitnami-edx-ginkgo.2-6-linux-x64,安装包下载地址https://bitnami.com/stack/edx/installer。
4)开源MOOC平台与虚拟实验系统集成。
在开源MOOC平台上创建不同的MOOC课程。在不同课程中将虚拟实验平台(如云计算OpenStack平台)链接加入课程内容中,并进行相应的用户管理与授权,完成开源MOOC平台与虚拟实验系统的集成。
2.3 平台管理
MOOCElab平台管理的重点是用户管理、资源管理、安全管理等。系统拥有3种类型用户:教师用户、学生用户和管理员用户。教师用户是维护MOOC课程信息的人员,包括课程内容发布、教学过程推进、学生作业实验查看批阅等。学生用户选修MOOC课程,完成课程要求的学习内容和实验内容,参加在线测试。管理员用户管理和配置开源MOOC系统和虚拟实验平台的资源和安全等。其中MOOC平台用户与虚拟实验平台的用户同步是用户管理的关键。资源管理主要指由管理员对支撑虚拟实验系统的物理机、虚拟机等设备资源进行管理,并对整个系统进行维护管理。安全管理主要指根据用户和访问对象的属性,设定不同用户的权限。
2.4 使用流程
MOOC课程以及实验环境准备完毕之后即可以投入使用。该系统的主要使用者是教师和学习者。教师使用MOOCElab平台的流程如图2所示。
图2 教师使用MOOCElab平台流程
MOOC学习者使用MOOCElab平台的流程如图3所示。
2.5 平台优势
(1)弥补现有单独MOOC平台课程学习中缺乏实验教学的不足,可以有效提高MOOC课程的整体学习质量。
(2)克服传统实验环境下硬件环境使用排他性而导致的实验时间、实验内容受限的缺点,虚拟实验可以同时开展多门课程的实验教学,学习者也可以随时随地利用该平台开展相关课程的实践。
(3)可以方便地进行实验环境的部署、存储和复用,节约实验成本。
(4)为教师对实验的有效指导提供可能性,教师可以随时、异地利用虚拟环境指导学生实验。
(5)可以集中存储实验程序、测试数据,为自动统计实验进展数据、检验实验结果等提供数据支撑,便于教师对学生实验情况进行基于教学大数据的分析,推进教学质量的持续提升。
图3 MOOC学习者使用MOOCElab平台流程
3 教学实践
3.1 数据库原理实验课程实践
我校数据库原理课程的实验传统都是在实验室PC机上事先准备好的操作系统和DBMS环境下进行。由于实验室PC机配置为网络启动,每次计算机重新启动时都会重置软件环境,无法保存学生前一次的实验结果。此外学生通常都会在本人的计算机上安装实验环境,用于在课余时间完成实验课内未完成的部分。这使得学生在实验环境准备上花费大量的时间,也增加了辅导教师的辅导工作量,降低了学生实验的效率。
在数据库原理实验课的探索实践中,我们选出部分学生试用该虚拟实验平台。实验课开始之前,教师团队首先创建准备好该课程的虚拟机模板,其中包括Windows操作系统、DBMS、基础编程软件和实验课所需要的全部支撑资料。学生只需在首次实验时创建个人账户,并利用数据库原理实验课的虚拟机模板创建各自的虚拟机,该虚拟机同时作为本地数据库的服务端和数据库访问的客户端。学生的全部实验都在该虚拟机环境下进行。由于这些虚拟机的存续周期贯穿一个学期,学生在初次申请后无需再做配置,实验课操作的连续性得到更好的保证。同时,学生也可以在课堂以外的任意空闲时间,在任意地点登录虚拟机继续实验。在学生实验课进展过程中,辅导教师可以通过登录虚拟机等方式完成辅导工作,并可以查询学生使用虚拟机时间的长短和时间段等统计信息,更好地掌握学生的学习情况。经过一年的试点应用,学生实验效率明显提高,教学效果也得到了改善。
3.2 软件工程实验课程实践
留学生教学是我校本科教学中的重要环节。由于留学生普遍存在基础知识薄弱,动手能力不强,汉语水平较低等问题,在实验教学环节也面临着更多问题。传统实验环境是以面向中国学生,实验室PC机上的操作系统和应用软件全部是中文版本,这使留学生在实验环境准备上需要花费更多的时间。在面向留学生开设的软件工程英文实验课程中,我们也试用了该虚拟实验系统。
由于本年度软件工程实验课留学生人数较少,将其分成两个小组展开实验。实验之前由教师创建面向留学生的实验环境的全英文版虚拟机模板,其中包括Windows操作系统、UML工具、基础编程软件、DBMS、版本管理工具等。学生只需在首次实验时创建小组账户,并利用该课程的英文实验模板创建各自的虚拟机。后续实验均在各自小组的虚拟机上完成。由于每个小组的虚拟机也是各组的版本管理服务器,因此各种设计文档、程序的开发设计过程均得到完整保留。经过一个学期的实践,该系统可以有效改善留学生的实验环境,有利于实验课成果的展示与交流。
3.3 数据结构实验课程实践
在数据结构实验课程的实践中,我们采用直接在MOOC系统中集成已有的数据结构课程实验系统OJ。由于该OJ系统在我校的教学中已使用多年,取得了较好的应用效果,因此在与MOOC系统中集成时,仅需要关注两部分的用户信息同步。
4 结 语
在计算机软件核心课的MOOC或SPOC教学中引入实验教学是在线教育发展的趋势,也是提高该类课程在线教育质量必须考虑的内容。将MOOC平台与基于云计算的虚拟实验平台有机融合是实现线上实验教学的有效方案之一。该方案可支持MOOC学习者完成课程实验内容,合理共享实验环境,降低实验成本,促进实验教学的持续改革。MOOC环境下的虚拟实验平台既可为MOOC或SPOC等线上教育提供实验支撑,也可单独作为线下实验教学中的替代方案,解决传统计算机软件实验课程中的问题。我们在计算机软件专业的几门课程教学中进行了初步实践,取得的良好教学效果证明了该平台的有效性。