可视化系统是计算机技术的应用领域之一。在可视化技术日渐成熟的背景下,专家们将 该技术应用于开发数据结构与算法演示系统。目前,大多数算法演示系统的思想都源自 M。 Brown 等提出的 BALSA[17]系统。该系统首次提出感兴趣事件的概念,用于标识算法状态改变 的关键点,只有对这种关键点进行可视化义才更有意义。目前,领域内已涌现出大量的算法 演示系统,如 POLKA[18]、ALADDIN[19]、GAIGS[20]等等。多媒体、可视化以及丰富的其他表 现方式已成为最近所关注的焦点。从实现技术看,现有的数据结构和算法演示系统可以分为 下面两类:80455
1) 动态演示构件
此类演示构件是利用一些软件工具制作的,例如 Flash、PowerPoint、Authorware 等。利 用它们制作的演示构件,画面华丽,而且制作方法简单[21]。但是由于该方法依赖于软件工具, 因此实现方式受到限制,难以恰如其分地演示数据结构和算法的动态过程,而且在交互性上具有较大缺陷。
2) 可视化系统 可视化系统对算法演示界面的布局较为统一,系统演示界面一般分为三个部分,分别是
动画演示区(包括算法的图形变换和辅助演示标志)、代码演示区、数据提示区三个部分。每 个部分既相互独立又相互联系。它的算法演示过程、代码显示过程和数据提示,使得学习者 可以观察到算法的执行流程以及执行过程中数据的变化,有利于学习者对算法的理解[22]。论文网
可视化系统使用的确定程序中可视化的技术通常可以分为四种类型[23]:
a) 事件驱动。事件驱动方法是指在程序需要演示的程序点用感兴趣事件进行注释,然后 根据这些感兴趣事件进行相应演示动画的编辑。采用事件驱动来实现可视化的先驱系统有 BALSA,以及已经应用于许多算法动态演示系统的 Zeus。事件驱动的特点是需要重新编写算 法源代码和编写动画的源代码,这增加了用户使用系统的难度。
b) 状态驱动。状态驱动方法是指在程序与可视化状态之间确定一个映射关系,这个映射 关系通常在程序运行之前由可视化工具指定。状态驱动方法的特点是将编写动画的部分从源 代码中分离,但是在使用这些系统的时候,用户还是需要重新编写程序源代码,从计算状态 到图形对象的映射是相当复杂的,而且如果图形对象不适用,用户还需要重新设计一个新的 图形对象。
c) 可视程序设计。可视程序设计方法在于通过可视符号表示程序命令和句子来使程序更 容易确定。使用可视程序设计方法的优点是需要可视化对象的路径与属性的细节都由系统自 动提供,开发人员只需要关心动画的高层次描述,也就是说,开发人员只需要关心什么对象 需要可视化,而不需要关心如何对这些对象可视化[24]。
d) 自动动画。自动动画方法是开发算法演示系统最简单的方法。它提高了程序开发人员 的编程效率,而且这种方法调试起来十分方便[25]。
通过比较上述两类演示系统,可以发现,可视化系统具备更好的交互性,但是相对地对 开发人员的要求也更高。另外,虽然现今开发出来的数据结构与算法演示系统数量众多,质 量也很高,但是都无法避免地在交互性方面具有一些瑕疵。
可视化系统国内外研究现状:http://www.youerw.com/yanjiu/lunwen_93479.html