虚拟化技术在《数据结构》课堂设计中的应用
程秀峰 罗小路 熊回香
摘要:为促进现代信息技术与教学的有机融合,推动计算机类课程教学改革,文章以《数据结构》课程为例,针对传统课程教学中存在的不足,对该课程的授课形式、实验内容、考核方式等环节进行设计与重构,利用虚拟化技术构建出《数据结构》虚拟化实验平台,并将其应用于实际教学实验环节中。最后,基于该平台的应用效果,对该类型的远程实验平台为《数据结构》课程的教学改革带来的积极影响进行探讨。
关键词:数据结构;虚拟化技术;教学改革;实践教学
中图分类号:G434;TP311.12-4? ? 文献标志码:A? ? ? 文章编号:1673-8454(2020)08-0090-04
随着科学技术的发展,虚拟化技术在各类教学活动中已得到广泛应用,各大高校纷纷改变传统的教学模式,将虚拟化技术与课堂教学结合在一起。《数据结构》作为计算机、信息管理、电子商务等学科的基础课程,在整个学科体系中处于重要位置,对学生了解计算机中的算法、逻辑起着关键作用。但由于某些计算机技术类课程对实验环境要求较高、实践部署对于学生来说难度较大,在实际教学过程中往往效果不理想。因此,如何利用虚拟化技术来对此类课程的实验教学进行改革,从而提升实验教学质量,是教师面临和需要思考的问题。
一、概念简介
1.《数据结构》课程介绍
《数据结构》是普通高校计算机相关专业的一门必修课程,主要讨论现实世界中的数据的逻辑结构、描述、组织及存储的一门技术类课程。[1]它作为计算机类学科的基础必修课,在整个信息类课程教学体系中处于重要位置。该课程不仅需要一定的程序设计基础,也是实现编译程序、操作系统、数据库系统以及其他系统程序和大型应用程序的基础。[2]该课程的教学大纲可分为数据的逻辑结构、存储结构以及数据的运算三大板块,其中,逻辑结构包含线性结构、树、图等内容,存储结构包含顺序、链接、索引和散列结构等,运算包含元素的插入、删除、查找以及排序等,这些都是重点考察的知识点。
2.虚拟化技术在《数据结构》课程中的应用
虚拟化技术(Virtualization)是近年来流行的一种资源镜像管理技术,它将计算实体资源如服务器、网络、内存等予以抽象、转换后呈现出来,打破了实体结构间的不可切割的障碍。[3]同时,依托互联网技术,通过构建虚拟模型,将原本虚拟的事物具体化后进行可视化展示。[4]利用虚拟化技术可以实现对计算机资源的重新组合或分区,为计算机提供多个运行环境,提高资源利用率和计算机的工作效率。[5]
目前,虚拟化技术已在许多高校的计算机类课程中推广使用。《数据结构》课堂中,教师可以利用其进行动画、视频演示,也可以建立实验设备,搭建虚拟实验室,为学生提供一个高效便捷的实验环境。总之,虚拟化技术所具备的可移植、易维护、直观性强、低成本[6]等优点,对于解决传统《数据结构》课堂教学中的众多问题有很大帮助, 具有良好的应用前景。
二、《数据结构》课程教学现状
《数据结构》对理论和实践的要求都比较高,许多高校在课程设计时将其拆分成数据结构理论与算法实现两个部分进行教学。理论部分主要由教师讲解数据结构相关概念与原理,当学生掌握一定理论知识以后,再安排学生上机操作实现算法。然而,由于上机条件的不一致性,在实际教学中还存在着以下几个问题:
1.课程难度大,内容抽象
课程的目的在于培养学生抽象思维能力,理解算法程序,为后续相关课程的学习打下良好基础,使其在实际工作中也能够熟练操作系统。[7]课程要求学生在理解数据的逻辑结构、存储结构以及基本运算的基础上建立算法,实现对数据的处理,[8]然而该学科涉及到的知识点都十分抽象,并且算法难度较大,学生难以理解。
2.学生基础薄弱,学习积极性不高
课程一般开设在大学的第三学期,是以C语言程序设计的学习为基础。但程序语言课程开设时间较早,此时学生尚未形成完整的知识体系,又因为C语言概念复杂、规则繁多[9],学生难以及时消化。并且,除程序语言类课程的学习外,该学科还要求学生掌握计算机原理、离散数学等相关知识。[10]加之其他课程的同时学习,为学生带来负担过重的困扰,在后期实践时容易产生畏难情绪,失去学习兴趣。
3.理论与实践脱节
在实际课堂教学中,由于受到教学场地等条件的限制,很难实现理論教学到实践教学的快速转换,学生掌握的理论知识不能及时应用到实践上,很快就会遗忘,学习效果会大打折扣。
4.实验内容过于传统,缺乏科学的考核机制
数据结构实验大多围绕教材中提供的例子来展开,学生只需照搬书中代码就可以完成任务,当遇到稍有难度的问题时有些学生还会选择逃避思考,抄袭他人答案来应付教师布置的任务。久而久之,不仅学生的能力得不到提升,还会对教师了解学生学习的真实情况以及教学评定造成干扰。
5.授课形式不合理,教师与学生之间缺少有效沟通
传统课堂上,大部分时间都是教师在讲解知识,学生被动地接受[11],即使是遇到疑难点时多数学生也不愿主动提问,逐渐就形成了一种“满堂灌”的被动式教学。师生之间没有交流,学生缺少解决问题的途径,也就无法进一步深入学习。
三、虚拟实验平台设计方案
本研究以《数据结构》课程为应用背景,以解决传统《数据结构》课堂教学中的问题为目的,参考现有的一些研究成果,结合实际需求对系统进行重新设计。
1.功能模块设计(见图1)
(1)管理员模块
管理员的工作是对系统后台进行维护,协助教师展开实验,因此管理员界面与其他用户界面功能不同。在实验课开始前,管理员需要向教师了解实验班级的学生信息,然后通过管理页面为上机的学生分配账号和密码,并在与教师沟通后为实验设置合理的分值。实验过程中,管理员需要解决出现的系统故障,以保证实验顺利进行。
(2)教师模块
教师不仅要负责讲解理论知识、设计实验内容、为学生演示系统,还要领导学生参与实验、在实验过程中为学生解答疑惑,对实验结果进行打分。在实验结束后,系统要向教师反馈学生的实验行为数据,并对结果进行分析,方便教师了解整体水平,找出表现突出的学生,为后续教学提供帮助。
(3)学生模块
学生登录系统前,应使用管理员发放的账号进行身份认证。进入系统后,学生可以查看相关的课程介绍,然后根据教师的任务选择相应实验,创建文件。在实验过程中,系统应为学生提供详细的实验步骤,并且支持学生查看提示信息、自动插入代码、清除代码、运行程序等操作。实验结束后,学生可以自行查看实验成绩。
2.实验内容设计
该平台中涉及的实验遵循从易到难、循序渐进的规律,[12]在实验初期,先设置一些简单的实验,让学生有一个适应的过程,随着教学进度的深入,再慢慢提升实验难度。采取这种方法有利于培养学生的学习兴趣,使学生在不同的学习阶段都能够顺利完成相应的学习任务。结合难度逐渐提升的想法,实验内容上选取《数据结构》课程中的单链表、栈、队列、串、查找、排序等重要知识点,根据课时安排设计十六组实验,表1所示为部分实验列表。
3.考核方法制定
传统的实验考核标准仅仅局限于实验是否成功,而忽视实验过程,一味追求结果会导致最终评定过于片面,缺乏说服力。为方便学生进行实验,也是为教师评定提供依据,本系统设计“自动插入代码”和“查看提示”两种功能。当学生在实验过程中遇到答案不确定或者无法独立完成代码的情况时,可以通过查看提示继续实验,这样做既能适当减少实验的难度,保证学生在规定时间内完成实验,同时也可以减少教师的工作量。而且为保证实验难度,两种帮助的使用次数均有一定限制。
实验结束时,“自动插入代码”和“查看提示”的剩余次数就能很好地反映出学生的学习情况:剩余次数多说明学生能够独立完成实验,知识掌握程度更高,学习能力更强,反之,则说明学生还缺乏独立思考的能力,表现不够优异。再结合“实验成功与否”以及“完成实验的总时长”两个指标,就能够较为客观地评价学生学习的真实情况。
四、系统的实现与实践
1.系统架构
系统采用简单的B/S架构,利用HTML、CSS、Java等语言进行开发,整个实验平台分为数据库、后台服务器以及应用层三层结构。其中,应用层采用HTML语言呈现实验及相关内容,CSS用于内容的排版,AJAX实现页面的更新,JS则用于支持界面交互等操作。实验界面截图如图2。
本虚拟实验平台主体框架如图3所示。后台服务器采用Tomcat服务器和Docker镜像,用于处理前台发出的请求以及虚拟环境的部署。当后台服务器接收到前端发送的请求时,就会连接Docker控制程序,启动Docker,然后调用g++ 编译器运行相关程序,并返回运行结果。不同于传统的虚拟化技术,Docker是一种通过封装软件运行环境,以达到创建、发布和运行应用目的的虚拟化平台,它具有“一次封装、到处运行”的优点。[13]选择该技术作为实验平台的技术支撑,在一定程度上可以简化系统配置,降低系统开发的难度。系统数据库则采用现在最为流行的MYSQL,主要用来存放实验数据以及数据的反馈。
2.应用案例
实验平台首次应用以第一组实验“单链表中增加删除节点”为例,实验过程分为准备、实验、总结三个阶段。在整个实验过程中教师与管理员、学生都有密切交流,角色分工和主要流程如图4。
准备阶段,教师讲解相关理论知识,并提供实验平台链接。随后,系统管理员向学生分发账户与密码,学生登录该平台。实验前教师告知实验中的注意事项,并布置实验任务,组织学生讨论,然后开始实验。
实验阶段,学生根据要求补充完善两个程序文件,实现在一个链表中的指定位置插入一个节点,并以可视化的方法将插入前、后的效果展示出来。教师在实验过程中对学生遇到的问题进行解答。
总结阶段,教师通过平台查看学生的实验行为数据,展示得分情况,评选出表现优异的学生,对其进行奖励,并安排学生进行经验交流。
五、系统评价与讨论
实验结束后,組织学生进行满意度调查,调查结果显示:大部分学生认为该平台使用流畅,实验设置合理,基本满足《数据结构》实验课程的教学要求,研究成果获到了用户的一致认可。为方便今后研究者在该领域继续深入,我们对此次实验平台的开发与实践经验进行总结,思考其对该课程教学改革带来的积极影响。
1.平台提供免费的学习机会,鼓励学生自主学习
教师提供《数据结构》课程的理论知识、教学视频、课件、实验源代码等学习资料,当学生在课上不能当堂消化教师讲解的知识点时,课后可以自行查找相关资料继续学习,以弥补基础知识的不足。同时,虚拟实验环境不受时间地点限制的特点,使学生可以随时随地登录实验平台,通过多次练习不断强化记忆。
2.教学模式发生转变,师生交流的机会增多,学生思考和动手能力得到锻炼
在实验课堂上,教学重心从教师转向学生,由学生来完成实验、提出疑惑和解决方案,教师只是发挥引导的作用,在学生遇到困惑时予以适当的帮助。这对培养学生独立思考、解决问题的能力有很大帮助。
3.设立严格考核机制,对实验进行全程监控,有利于激发学生的学习兴趣
与传统考核方式相比,利用实验平台记录学生的实验数据并对其进行打分,能够让学生更直观地了解自己的学习状况,明白自身能力与目标之间的差距,在今后学习过程中就会更有针对性,学习兴趣也会有所提高。通过数据反馈还能让教师及时了解班级整体的学习情况,辨别出表现突出的学生。
4.突破了经济条件的限制,使理论与实践、“做”与“学”相互融合成为现实
虚拟化技术的应用,为无法负担实验室高额的开发和维护费用提供了一条可行路径,在虚拟实验环境中,学生依然可以体验系统操作、界面转换、用户交互等功能,有效解决了传统课程教学中理论和实践脱节的问题,促进了“做”与“学”的融合。
六、总结
从本次教学实践的结果来看,利用虚拟化技术的确有助于解决《数据结构》课程教学中的一些问题,提升学生的学习兴趣,锻炼逻辑思维和动手能力,实现培养复合型应用型人才[14]的目标。但是通过此次实践,也暴露出该平台的一些不足,例如实验时长的设计不够人性化、无法同时容纳大规模数量的用户、实验验证环节过于死板等,今后针对这些问题还需继续优化设计,逐步完善平台建设,以期促进虚拟化技术与课堂教学的深度融合,进一步推动《数据结构》课程教学改革。
参考文献:
[1]Gregory Goth.Turning data into knowledge[J]. Communications on the ACM,2010,53(11):13-15.
[2]严蔚敏,李冬梅,吴伟民.数据结构(C语言版)[M].北京:清华大学出版社,2012:4.
[3]刘霞,祝艳茹,郝丽丽.虚拟技术在高校计算机教学中的应用探讨[J].南方农机,2018,49(21):139+144.
[4]郭香柏.虚拟技术在计算机组装与维护中的应用[J].计算机产品与流通,2019(10):13.
[5]余孝奎,吴金堂.探究计算机网络安全教学中虚拟技术的应用[J].教育信息化论坛,2019(7):78-79.
[6]刘世荣.虚拟技术在高职计算機实验教学中的应用[J].中外企业家,2019(28):131-132.
[7]张铭,许卓群,杨冬青等.数据结构课程的知识体系和教学实践[J].计算机教育,2004(Z1):89-91.
[8]纪颖,周欣,刘彦君.数据结构教学改革探讨[J].黑龙江教育学院学报,2010,29(5):55-56.
[9]石曼银.基于应用型人才培养的数据结构课程教学改革[J].宁德师范学院学报(自然科学版),2013,25(3):327-329.
[10]葛云生.《数据结构》课程教学改革与探索[J].高教论坛,2010(1):75-77.
[11]刘波.“算法设计与分析”教学探讨[J].高等理科教育,2007(4):78-80.
[12]郭天娇.《数据结构》实验课程教学改革的研究与探讨[J].产业与科技论坛,2019,18(17):178-179.
[13]金琦.初识DOCKER容器技术[J].中国信息技术教育,2019(Z3):105-109.
[14]牛秋月,唐国良.应用型人才培养目标下《数据结构》教学方法探讨[J].现代计算机(专业版),2017(28):38-40.
(编辑:鲁利瑞)