基于Flash的独立学院《数据结构与算法》教学改革的研究
2018-11-29刘海霞冉宇瑶王菊雅
刘海霞,冉宇瑶,王菊雅
(浙江理工大学科技与艺术学院,上虞 312369)
0 引言
《数据结构与算法》是应用型本科院校(独立学院)计算机科学与技术及其相关专业的专业基础课程,是许多后续课程如数据库原理、算法分析、操作系统等的基础[1]。该课程主要培养学生抽象思维能力、逻辑思维能力等,锻炼学生分析问题、解决问题的能力,抽象程度较高,这使得《数据结构与算法》成为一门公认的比较难学的课程。如何培养学生利用抽象的理论为,解决世界软件设计中的问题,是高校教师应该特别关注并亟待解决的问题。对于独立学院,这些注重应用型的本科院校,学生本身的特点是理论基础较差、学习积极性不高,很难达到好的教学效果。因此,提高学生数据结构与算法的理解与分析能力,采用动画教学模式对《数据结构与算法》实施教学改革,吸引学生学习的兴趣,提高教学效率是刻不容缓的问题。
1 《数据结构与算法》教学中存在的不足
(1)先修课程掌握不够扎实
课程的学习需要学生先修高等数学、C语言或C++语言、离散数学等学科,存在部分学生前面的语言及本课程理论学习掌握不够扎实,在课堂上能听懂,一旦动手上机,就显得力不从心。
(2)课程理论性强
《数据结构与算法》中涉及到很多的概念、抽象模型及算法,对模型和算法的理解,需要学生掌握扎实的数学基础和和逻辑推理能力[2]。而独立院校的学生数学基础相对较弱,逻辑分析不强,学习兴趣也不高,因此在学习《数据结构与算法》课程时,显得更加困难。
(3)学生实践能力弱
在理论教学过程中,很多学生反映,课堂上教师讲的知识点都能听懂,对课后布置的涉及少量的逻辑结构的书面作业也能够认真地完成。但是,课后自己独立编写程序却无从下手。而《数据结构与算法》书上的代码都是伪代码,任何一个算法的实现都需要编写主函数、定义各类变量等,因此实现起来更加困难。
对于目前存在的问题,主要从两个大的方面对《数据结构与算法》进行改革:理论方面采用动画和案例展现每个知识点的运行过程;实践方面采用验证性实践、设计性实践、综合性实践等由浅入深的方式进行。首先激发学生学习的兴趣,掌握扎实的理论基础,然后逐步介入编程,提高动手能力。
2 主要改革方案
2.1 理论教学改革
(1)“启发式”教学模式
启发式教学,就是根据教学目的、内容、学生的知识水平和知识规律,运用各种教学手段,采用启发诱导办法传授知识、培养能力,使学生积极主动地学习,以促进身心发展。《数据结构与算法》课程理论性强、概念多、算法解决方式灵活[3],因此,在课堂教学方面首先采用“启发式”的教学模式,课堂上讨论的方式,形成“问题-讨论-分析-总结”的模式。
例如:在讲栈和队列这一章时,先介绍了栈和队列的特性,然后进行举例。队列采用顺序表存储机构,在模拟运算时,出现了“假溢出”现象。如何解决呢?请学生结合生活中排队现象,提出问题解决方案。如元素迁移、计数、采用循环队列等,再逐步分析各方案的优缺点,由学生自己选择采用哪种方案更佳,逐步深入。另外,若采用循环队列解决,又会出现判断队列满或空相同的情况,如何进行解决?一次逐步引出问题,并解决问题;提出解决方案,分析解决方案的优劣,最终达到认识问题并解决问题的目的。通过这种方式的教学,学生从发现问题到解决问题整个过程都积极参与,学习采用借鉴的手段,认识到解决问题的多种方案,学习分析评价的方法,选择更适合需求的解决办法。
(2)“案例+动画式”教学模式
在教学中选择基础的知识点作为案例,通过“案例”内容的研究学习,激发学生深入探究的兴趣。例如讲解栈和队列一章时,将我们日常生活中常碰到的叠盘子、食堂排队买饭等现象联系起来进行比喻说明。采用这样的方式,学生不仅听起来有兴趣,并且易于理解。根据各个章节内容的知识点,利用Flash动画进行展示抽象的内容实现过程,使学生通俗易懂的理解掌握各个概念,更深理解课堂内容。眼睛看到的比耳朵听到的更加真实、更加直观,同时会吸引学生学习的兴趣,提高了教学效率。
2.2 实践教学改革
通过对独立学院学生的调查与分析,根据机电系各个专业的培养计划,修订实践教学项目,设计实践教学案例。坚持由简到难,由浅入深的原则,开展实践教学。主要分为验证性实践、设计性实践和综合性实践,其中通信专业、电子专业、自动化专业只需要做到验证性实践和设计性实践,对学习能力比较强的学生,可以去选做综合性实践;计算机科学与技术专业,要求做到综合性实践,并掌握解决实际问题的能力,实践教学层次如表1所示:
表1 实践性教学
3 主要改革方法
根据本学院课程内容先进行整体设计,如表2所示。然后根据不同教学方式,再分布进行方案的整理。
(1)动画教学
《数据结构与算法》是一门内容多、概念多、逻辑性强、高度抽象、实践性强的课程,很多学生在接触这门课的时候,普遍存在上课能听懂、下课不会做这种眼高手低的现象。为了解决将抽象思维进行简单、具体化,使学生更好理解,本次改革采用动画的教学方式,将数据结构课程分成4个大模块:线性结构(线性表、栈和队列、串、数组和广义表)、树状结构(树、二叉树和哈夫曼树)、图形结构(有向图、无向图)、混合结构(查找和排序)。对不同的学习模块和知识点,用仿真动画的方式将问题及解决方案展示出来。如线性表的生成、插入、删除等;入栈、出栈、入队列、出队列等;三元组的转换,二叉树的生成、遍历,树与二叉树的转换、哈夫曼树的构建等;图的遍历、拓扑排序、最小生成树、求关键路径和最短路径的过程以及各类查找和排序,等等,图1显示各个动画实例列表,图2是图的深度遍历动画,从V4节点开始遍历。
表2 整体课程内容设计图
图1 动画实例列表
图2 图的深度优先遍历
(2)分组讨论的启发式教学法
本次教学改革注重学生的主观能动性,教师重点做引导进行开展。根据学生的水平进行分组,直接参与课题讨论和问题解决,引导学生树立客观的学习态度和掌握科学的实际方法,培养他们的计算思维和创新能力。例如,在讲解矩阵转置时,可以采用对比的方式:先介绍内容,引导学生利用已经学过的线性代数知识点进行转置,然后采用刚刚学三元组表示进行转置。两种解法做对比,启发学生进行思考,从空间复杂度、时间复杂度、操作效率等多方面讨论二者的优劣。在讨论的过程中,任课教师进行适当的提醒和引导,帮助学生在理解的基础上掌握所学知识。
(3)案例教学
本次教学改革首先采用启发和动画教学,每一章比较抽象的知识点都制作成Flash动画,根据动画模拟进行理解。章节学习结束,每一章内容布置一到两个大的综合案例,先组织学生进行讨论,提出解决问题的关键,选择合适存储方式和算法,然后进行上机检验。通过一个学期的学习,采用案例教学法能充分调动学生的学习积极性,开拓他们的思维方式,使学生能够主动分析问题、设计程序,最终解决问题。
4 结语
《数据结构与算法》的动画制作,由相关参与教学改革的教师花费了3个月的时间进行完成。通过一个学期的应用实践,学生对数据结构与算法的理解相对深入很多,大部分学生感觉数据结构也不是太难。案例的设计是根据不同专业学生情况进行开展的,整体来说,计算机科学与技术专业的学生动手能力相对比较强,通信专业的学生在动手方面比较欠缺,在实现课本上伪代码时,还是有一定的困难。后期需要修订的方面主要体现在:(1)动画实例的优化,使动画更加生动;案例的更新,使其更贴近生活;(2)知识点题库的整理,供学生课下练习;(3)手机微信端App的开发,方便学生想学就学,想练就练。