英语原文共 13 页,剩余内容已隐藏,支付完成后下载完整资料
创造迷人的在线学习材料与JSAV JavaScript库算法可视化
Ville Karavirta和Clifford A. Shaffer
文摘 - 数据结构和算法是计算机科学的核心部分。由于他们的抽象和动态的性质,他们是一个困难的话题为许多学生学习。为了减轻这些学习困难,教师已经转向算法可视化(AV)和AV系统。研究表明,特别引人入胜的视频可以影响学生学习DSA主题。直到最近,大多数AV系统都是基于Java的系统。但是,Java的流行已经下降,并且被HTML5和JavaScript内容在线取代。在本文中,我们提出JSAV:JavaScript AV开发库.JSAV超越传统AV库支持,用于显示标准数据结构组件,提供功能,以简化在许多参与级别包括交互式练习的AV的创建。我们描述了越来越多的使用JSAV创建的内容总结了我们三年的经验和研究结果,并使用JSAV来构建支持CS教育的内容。
索引术语 - 数据结构和算法可视化,算法动画,交互式课件,HTML5,活动电子教科书,超文本书,JSAV
1引言
计算机科学导师有一个长期的传统,使用算法可视化(AV)[1],[2],[3]来传达算法过程的动态方面。 数以百计的AV已经创造了多年[2]。还有一个有意义的数据结构和算法(DSA)交互练习的历史,以TRAKLA2系统开创的算法模拟或算法熟练练习的形式[4]。但直到最近,由于技术上的限制,将AV,互动练习和内容大量整合在一起,如整个学期eTextbook的形式是不可行的。在20世纪90年代中期出现Java之前,AV系统非常脆弱,每个系统都只能运行在有限的计算机上。Java允许AV和AV系统爆炸[2]。但是,Java小程序从来没有真正与其包含的HTML页面中的内容相匹配,也没有不同的浏览器为Java实现提供了一致的环境。由于安全性考虑,Java小程序越来越难以呈现在网页上。作为替代方案,Adobe Flash经常用于提供广告和流媒体。然而,在Flash中已经开发出很少的AV。
现代网络浏览器对HTML,许多JavaScript API和高级CSS样式的相对一致的支持使得比以往任何时候都更容易开发网络的交互式内容。因此,HTML5(作为现代HTML,JavaScript和CSS的组合经常被称为)已经成为互联网标准。开发人员现在希望内容可以在任何用户的计算机上运行。HTML5甚至可以在大多数平板电脑和许多移动设备上运行。现代网络技术包括所有必要的计算,图形和界面支持,以创建复杂的可视化。第一次,浏览器和工具的成熟度之间具有足够的一致性,从而使AV,自动评估的练习和教程内容在一起有意义的规模相结合。
在本文中,我们提出了JSAV:JavaScript算法可视化库。JSAV是用JavaScript编写的,旨在支持开发用于在线学习资料的AV。鉴于AV的历史知识的读者可能会怀疑是否需要另一个AV支持系统,因为已经存在很多。JSAV的两个主要动机是:
1)随着Java的不可避免的衰落,需要一个基于HTML5的解决方案。现在对JavaScript的AV开发几乎没有支持。此时,HTML5 / JavaScript中还没有其他主要的AV开发工作,所有这些都缺少有效AV所需的一些关键功能。
2)JSAV集成了旨在支持基于AV的练习开发的功能,这些练习涉及主动学习技术,以及易于集成到在线教程中的视觉内容。特别地,JSAV API支持用于创建视觉算法模拟练习的特殊功能,以及支持在教程中嵌入AV。
JSAV反映了三大AV发展集团的集体经验:阿尔托大学(TRAKLA2 [4]的开发商),弗吉尼亚理工学院和JHAVE社区[5]。每个组织都撰写了许多广泛使用的AV,并且开发人员的不同观点确保了JSAV能够在开发环境(HTML5)中支持广泛社区的需求,这将对未来的在线教育产生重大影响。JSAV的主要功能包括许多传统数据结构的自动布局,支持演示幻灯片,以及支持TRAKLA2风格的熟练练习,要求学生通过模拟其关键步骤来演示熟练程度。JSAV是OpenDSA项目的开发库[6],[7],[8],[9],其目的是提供一个完整的开源资源,用于教授数据结构和算法课程。
本文的早期版本如[10]所示。自那篇文章以来,JSAV已经发展,并被用于开发各种可视化和互动练习。在撰写本文时,所产生的材料在数十个学院每学期都由数百名学生使用,其中可视化和交互式练习的总体观看次数数十万。
本文的其余部分安排如下。第2节介绍一些背景,介绍AV系统的要求,并评估现有的AV系统。第3节详细介绍了JSAV。第4节总结了三年使用JSAV的经验。第5节讨论了我们的贡献,第6节介绍了我们的结论。
2相关工作
由于以前有关AV的研究比以前可能适合本文的页面,我们将重点关注近几年的研究课题,影音系统的一般要求和现有系统的评估。AV研究的历史和现状概述可以在[2],[3],[11]中找到。
我们应该注意,[11],算法可视化和程序可视化(PV)之间的区别。算法可视化是对算法的行为的可视化表示(可能以特定的编程语言表达)。因此,它本质上是教程。通常,AV需要良好的质量支持以精确控制演示文稿,如本节后面所述。程序可视化相对的是自动生成程序的视觉反馈,特别是程序员的最小干预。其目标是提供对程序行为的洞察,包括调试等任务。由于其本质(即程序员的最小干预,从而自动生成视觉反馈),对视觉元素的详细控制不是该工具的要求。相反,PV工具必须集中在解析和解释程序代码等方面,这完全不是AV系统的问题。用于教育目的的两个流行的光伏工具是jGrasp [12]和Python Tutor [13],它们都不支持AV系统所需的功能。
2.1算法可视化研究趋势
AV研究的一个趋势是将交互式可视化组件与超文本教程内容集成在一起。Ros和Grinder [14]完成了这个主题的工作。他们将术语超文本定义为超链接文档。他们看到它应该包括可视化和主动学习对象。2006年ITiCSE工作组提供了如何将可视化整合到超文本和课程管理系统中的指导方针[15],为这些系统制定了可视化计算机科学高级手册(VizCoSH)。另外一个工作组在二十一世纪被用于电脑科学电子书[16]。他们的报告包括教学和技术创作和使用书籍的讨论和指导。
将可视化与教程内容合并的一种尝试将AIMIM可视化系统与超文本集成为Moodle模块[17]。在该项目中,使用Java Web Start从超文本启动可视化。另一个提出的解决方案是JSXaal,一个在HTML5和JavaScript中实现的可视化系统[18]。目前,最大的这个项目是OpenDSA [6],[7],[8],[9]。OpenDSA使用术语活动电子书来指代内容,视听和练习与自动评估的合并。
越来越多的证据证实了这样的假设:学生参与是AVs教育有效性的关键[1],[19],[20]。 AV中遇到的不同类型的互动已被归类于“参与分类”[1]。分类法定义了学生和AV之间的五个层次的互动:
1)观看:学生被动地观看AV,可能具有控制动画速度或逐步向前和向后移动的能力。
2)回应:学生在查看AV时回答有关内容的问题。这些是最常见的弹出式问题,需要学生选择或输入正确的答案。
3)改变:学生通过例如为算法提供输入数据来改变AV。
4)构建:学生构建AV。这种方法的变化提供了数据结构和算法,并期望学生模拟算法。 也就是说,他们需要通过操纵界面来控制AV的进度来模仿算法的步骤。
5)介绍:学生向其他人呈现AV。
分类学的假设是,参与程度越高,视听学生的教育效果越高。因此,可以将创建接合材料的可能性视为AV系统最重要的特征要求。
2.2 AV系统的要求
已经尝试定义AV系统的要求。大多数这项工作已经由R&oaps和Naps [21],[22]完成,其他要求[15],[23],[24]引入了进一步的要求。我们在表1中总结了这些要求。但是,由于大多数这些努力已经十多年,而且早于HTML5,我们重新定义了它们,以更好地反映AV系统的现状。这更新了第一作者介绍的类似列表[18]。我们可以将参与分类级别映射到要求。要求R2,R3和R5可以增加观看的控制。级别响应匹配R7,并更改匹配R9。层次构建是要求R11的一部分。
表1
AV系统的16条要求
要求 要求说明
R1 该系统的平台应允许尽可能广泛的目标受众。
R2 系统应支持可视化倒带,以便用户可以返回到失去内容跟踪的地方。
R3 学习者应该能够使显示适应当前的环境。这包括显示背景颜色的选择,以解决照明情况,转换速度,显示放大率。
R4 系统应该是通用的,而不是主题特定的,允许更多的重用和集成到给定的课程中。通用系统允许大量动画的通用接口。
R5 应为用户提供平滑的动画转换和离散步骤之间的选择。
R6 可视化应包括伴随的散文。 示例包括解释概念的静态材料,意识到算法状态的动态解释,以及意识到学习者知识的教学动态解释。
R7 应该支持关于算法在以下状态下的行为的问题。问题应纳入反馈。
R8 系统应支持与课程管理设施数据库的沟通。然后可以使用数据库来例如通过回答问题来存储所接收的积分。
R9 系统应允许用户为算法提供自定义输入。
R10 可视化应该给出算法主要部分的结构视图,可以用于跳转到相关的可视化步骤。
R11 系统应通过自动反馈支持可视化构建练习。
R12 系统应包括可重复使用的可视化模块,从而有助于未来AV的创作。
R13 应该可以轻松地将可视化与超文本合并。
R14 可视化应该以两种方式进行本地化:1)匹配周围超文本的书面语言,2)匹配周围超文本的编程语言。
R15 系统应该可以导入/导出不同格式的可视化。
R16 学习者应该能够与当前步骤同时查看可视化的以前步骤。
接下来,我们根据这些要求评估现有的AV系统。我们专注于基于HTML5的系统,因为我们认为该领域的技术未来。然而,我们包括了几个最着名的基于Java的AV系统,因为这些影响了JSAV的设计。
2.3现有的算法可视化系统
任何AV系统有望广泛使用的必要条件是它应该尽可能地支持广泛的目标受众。自从20世纪90年代中期以来,这意味着在Java中实现该系统,直到最近才导致Java成为AV最常见的实现技术[2]。自从2010年左右开始广泛采用HTML5以来,随着近期安全性的考虑和对浏览器中Java的支持的减少,Java在网络上的重要性不断减弱。相比之下,HTML5和JavaScript正在迅速普及。因此,在过去几年中,已经开发了基于HTML5的AV系统。在这里,我们简要介绍我们熟悉的几个系统,并根据表1所示的要求进行评估。
NIMAL [25]提供了几种创建AV的不同方法。它具有图形编辑器,脚本语言和可定制的内容生成器,用于许多算法。它支持图形图元和数据结构。AV可以包括有关内容的弹出式问题,并允许用户自定义输入。
JAWAA [26]是一种用于编写动画的语言以及用于可视化这些动画的系统。 动画可以包括图形图元,以及一些数据结构。
JHAVE [5]为不同动画语言的多个可视化提供支持。AV主要使用数据结构构建,并且可以包括弹出问题。
TRAKLA2 [4]是包含算法模拟练习的学习环境。练习要求学生通过模拟算法的步骤构建AV。系统支持多种数据结构,包括几项练习,自动评估学生解决方案,并给出视觉反馈。
JSXaal [18]是我们所知道的第一个基于JavaScript的AV系统。它是用X AAL算法动画语言编写的AV的可视化器。虽然有几种可用于创建这样的动画的工具,但是观众从未见过重要的用途。
Galles已经在JavaScript中创建了AV的全面集合1。它包括AV,学生可以提供自己的输入,并看到关于数据结构如何更新的动画。一些数据结构可以由用户进行交互操作,例如通过用于最小堆的“Remove Smallest”操作的按钮。排序AV允许学生在随机数据集上运行算法。
Vamonos是可视化算法和数据结构的系统,在PV系统中更为常见,如断点和观察点。 在线收藏2包括排序和图表算法。 目前支持的数据结构是数组和图形。
Algomation网站3广泛收集了各种主题的现成可视化。该系统包括阵列,树,堆和图形的可视化程序。
VisuAlgo [27]是AV的在线集合。用户可以通过查看其执行(例如,排序算法)作为幻灯片,或通过探索数据结构(例如,二进制堆)的操作来学习算法。该网站的一个有趣的功能是在线测验系统,它会产生关于学习者回答内容的问题。在许多问题中,答案是通过与数据结构的直接交互来提供的。支持的数据结构包括数组,树,图形和列表。
这些系统对表1的要求的评估总结在表2中。我们已经对JSAV进行了评估。评估有三
全文共24700字,剩余内容已隐藏,支付完成后下载完整资料
资料编号:[143817],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。