技术领域
[0001] 本发明涉及的是一种数据结构教学软件,辅助《数据结构》教材,帮助有志于从事计算机专业的初学者,理解书中的知识,体会到软件设计的奥妙,激发起他们对软件开发的兴趣。属于信息技术与多媒体领域。
相关背景技术
[0002] 数据结构是计算机科学与技术专业、计算机信息管理与应用专业,电子商务等专业的基础课,是十分重要的核心课程。所有的计算机系统软件和应用软件都要用到各种类型的数据结构。其前导课程是“程序设计基础”、“离散数学”,其后续课程有“操作系统”、“数据库原理”、“编译原理”、“软件工程”等。
[0003] 学习本课程旨在帮助学习者深入的掌握数据结构的知识和原理,熟悉各种常用结构的特性,各种运算的实现方法及其性能,提高运用这些知识解决实际问题的能力,能根据具体问题的要求设计出合理的数据结构和运算,从而为掌握程序设计的方法奠定扎实的基础。
[0004] 但是,《数据结构》课程内容抽象、琐碎、庞杂,涉及很多概念和技术。所有这些内容均自成体系,相互之间的衔接线索很少,总体感觉内容零散,没有一个整体的知识框架体系。同时,因教学内容多,知识量大,很难取舍,所以不免在教学过程中变得面面俱到,重点、难点不突出,学生理解困难,教学效果不理想。
[0005] 《数据结构》课程中的各种数据类型及其操作具有直观性、形象性和可展示性,所以可以把多媒体技术和传统教学方法相结合,必定能帮助学生加深对书本知识的理解。同时,可以利用程序可视化思想来培养学生的数据抽象能力、算法设计能力和创造性思维能力,同时还可以对学生分析问题、抓住本质、组织数据、设计算法、解决问题的能力作出引导,并且要求学生能举一反三,触类旁通,培养学生的综合能力。
[0006] 针对这种现状,本发明设计了一款用于《数据结构》辅助教学的软件,运用趣味生动的多媒体动画和趣味游戏,准确充分地表示出书中知识点的同时必须要作到趣味性和实用性,同时要求操作简单,通俗易懂。本发明运用flash AS和xml数据库等,按照教材的结构,把整个程序划分成各个功能模块:背景知识、C语言介绍、编译环境介绍、线性表、队列、图等。在每个模块中介绍涉及的不同知识点。图2表示的是程序的流程图。
[0007] 通过生动形象的演示动画和趣味游戏与书本知识的结合,改变以往学生对《数据结构》课程枯燥乏味的观念,使其更容易的从数据结构的逻辑结构、存储结构和数据的运算三个方面掌握线性表、树、二元树、图和文件等常用的数据结构,为学习后续软件课程提供必要的基础,提高运用数据结构解决实际问题的能力。
[0008] 本发明采用自顶向下,逐步求精、模块分解的方法,将《数据结构》书本中的知识分解,找出各个章节的重点所在。把握住“一条主干,三种逻辑结构,两种存储表示”的整体轮廓。
[0009] “一条主干”指数据结构是一门研究非数值运算的程序设计问题中计算机的操作对象及相互间的关系和运算的学科。
[0010] “三种逻辑结构”指:(1)线性结构:该结构的数据元素之间存在着一对一的关系;(2)树型结构:该结构的数据元素之间存在着一对多的关系;(3)图形结构:该结构的数据元素之间存在着多对多的关系。
[0011] “两种存储表示”指:(1)顺序存储:借助于地址连续的存储单元来存储数据元素;(2)链式存储:不要求逻辑上相邻的数据元素在存储空间中也相邻,而是在存储一个数据元素后紧接着存储其相关数据元素在存储空间中的首地址。
[0012] 本发明中的内容正是围绕这“三种逻辑结构,两种存储表示”而展开,把各章节的教学分成几个模块,运用模块化的方法,按照“先认识逻辑结构,再确定存储结构,趣味游戏,编码实践”的流程而进行。
[0013] (1)背景知识演示动画的研制
[0014] 演示动画主要将原本抽象的概念和算法思想用形象的图形演绎出来:针对《数据结构》所涉及的线性结构、树和图的算法进行了图形演示。采用形象的动态图形演示内存空间的变化情况,其余部分主要是针对算法思想的演示,充分应用声音和色彩体现算法的细节,将算法对数据的影响展示在屏幕上,算法的语句执行情况在学生大脑里,从而训练了学生的抽象思维。
[0015] 为了适应课堂教学的要求,《数据结构》演示动画具有如下功能:
[0016] 界面的设计要求:较强的交互能力、动态的算法演示、形象的图形设计、充分应用声音和色彩体现算法的细节、屏幕设计简洁明快、屏幕元素布局合理、突出教学内容的重点,等等;
[0017] 不仅包含主要的教学内容,而且,还应提供一些特殊例题的算法演示,用以扩大学生的编程思维能力,从而实现用形象的图形界面为学生搭起通向掌握抽象思维方法的桥梁;
[0018] 《C语言程序设计》是《数据结构》(C语言版)的前序课程,学生对该门课程的掌握往往不是很好,这就给《数据结构》的教学带来了较大的困难,为了缓解这种困难,同时,让学生快速了解和掌握《C语言程序设计》的关键内容,该课件中,包含了对C语言的简单复习;
[0019] 操作简单,易于理解,符合Windows的操作规则,便于学生使用。
[0020] (2)题库管理和知识问答
[0021] 《数据结构》是计算机专业很重要很基础的理论课,如果课外学生不能很好复习和继续钻研,那么这门课程也是学不好的。因此,课外练习也是学习中很重要的一个环节。题库中存储了大量的习题,随机产生10题用于知识问答,让学生检查对所学知识的掌握并为后续的学习做巩固。
[0022] (3)数据结构相关趣味游戏
[0023] 在传统观念中,《数据结构》比较枯燥乏味,难以理解,所以在“趣味游戏”模块中,尽量把书本中的知识生动的表现出来,通过与日常生活的结合,让学生体会到数据结构的重要性并通过互动加深对数据结构的理解。
[0024] (4)上机实验与编码实践
[0025] 实践是理论联系实际的重要教学环节,针对具体的教学内容和目前的学生能力,专门设计出“编码实践”模块,该系统为学生提供了很大方便,使学生及时理解课堂上学到的理论知识。该模块包含了数据结构的全部教学内容,包括线性表、堆栈、队列、树、图等部分,系统对每种数据结构都设计了相应的基本操作及应用操作,对学习数据结构是一个系统的辅助工具。附图说明:
[0026] 图1数据结构和计算机相关课程的联系
[0027] 图2软件流程图具体实施方式:
[0028] 下面将附图所示的具体实施例对被发明作进一步的说明。
[0029] 根据图2中所示数据流程,在进入flash之前,首先开始加载进度条界面。如果没有一个预载的过程,动画观看起来也不会很流畅。特别是在动画中加入了大量的声音和图像的动画,没有了Loading将不会流畅的展现在我们眼前。
[0030] 到进度条完成后,经过一段片头动画后,点击“进入”按钮,进入主界面。
[0031] 游戏的主界面,罗列一系列数据结构中的内容,例如背景知识、线性表、堆栈、队列、树、图等,每个内容下面有知识问答、趣味游戏、编码实践等子模块,玩家可以根据自己的选择进入相应模块。