VisuAlgo-通过动画可视化数据结构和算法

2020-05-18 17:20:16

专业提示:我们注意到您尚未登录。有一些不断增长的功能仅对已登录的用户可用。基本上,可以为您自定义VisuAlgo。VisuAlgo用户帐户是免费的,您现在可以注册。

这是https://visualgo.net.的英语(默认)界面。VisuAlgo将逐步成长为一个多语种网站。尝试访问VisuAlgo的其他版本,例如中文、印度尼西亚文、俄文等(请参阅统计页面)。

在VisuAlgo中,您可以对任何算法使用您自己的输入,而不是样例输入。在以下6个与图形相关的可视化中尝试图形绘制功能:Graph DS、DFS/BFS、MST、SSSP、Max Flow和Matching。您也可以在这6个与图形相关的可视化框中的任意一个中单击标记图形,或在搜索框中键入图形。

要比较两个相关算法,例如Kruskal和Prim在同一图形上的算法,请在两个窗口中打开两个VisuAlgo页面并将它们并排放置。单击此处查看屏幕截图。

您可以可视化可以用JavaScript编写的任何有效递归函数的递归树(或者DAG,如果有重叠子问题并且适用动态编程(DP))。单击此处查看屏幕截图。

VisuAlgo对于第一次访问的访问者加载速度很快,但对于返回的访问者,它几乎是立即加载的,因为我们缓存了VisuAlgo:)的大量静态内容(请不要使用隐名或私人浏览模式来保存缓存)。此外,如果您已经注册了VisuAlgo帐户,我们将在您登录后根据您的喜好加载VisuAlgo。

每个可视化页面都有一个电子演讲模式,可以从该页面的右上角访问,解释可视化的数据结构和/或算法。此e-Lecture模式自动显示给第一次(或未登录)访问者,以展示正在可视化的数据结构和/或算法。电子授课模式的质量将逐步达到新加坡国立大学算法课的授课标准:)。

请查看VisuAlgo的四个最新功能:1)。多国语言能力(如果你不是以英语为母语的人,你不必一直依赖/英语),2)。用户帐户(忠实用户可以获得有趣的额外服务和定制服务,请现在注册一个免费帐户),3)。更强大的电子演讲模式,以达到NUS标准和4)。NP-Hard问题的可视化(当前为MVC、TSP和Steiner树)。

VisuAlgo有两个主要组件:可视化页面(目前是23个)和在线测验组件(目前是12个,不久的将来也将是23个)。我们没有为在线测验中的任何问题编写脚本,所有答案几乎都会立即评分:)。您可以在我们的培训页面或单击可视化模块上的培训按钮尝试在线测验。

在您最喜欢的搜索引擎中搜索术语算法可视化,您在搜索结果的第一页中看到VisuAlgo了吗:)?下一级:再次搜索该术语,但使用您的母语(如果不是英语)。VisuAlgo是否仍列在首页?:)。准备好大吃一惊吧:搜索您最喜欢的数据结构或算法的名称,但不要提及关键字';动画';或';可视化';。VisuAlgo是否仍列在首页?:):)。

VisuAlgo目前每天从世界各地的各种计算机科学学生和教师那里收到大约3000次点击。虽然这是一个很好的数字,但我们将继续改进VisuAlgo,以便它每年对全球更多的(新)CS学生更有用。如果你是我们的回头客(注册一个免费的VisuAlgo账户,这样我们就可以知道你是谁),并喜欢这个工具,请传播这个消息。

✕VisuAlgo是Steven Halim博士在2011年提出的概念,它是一个帮助他的学生更好地理解数据结构和算法的工具,允许他们自己以自己的速度学习基础知识。

VisuAlgo包含许多先进的算法,这些算法在史蒂文·哈利姆博士的书(与他的兄弟菲利克斯·哈利姆博士合著的“竞争编程”)和其他书中都有讨论。今天,这些高级算法中的一些可视化/动画只能在VisuAlgo中找到。

虽然是专门为新加坡国立大学(NUS)学习各种数据结构和算法课程(如CS1010、CS1020、CS2010、CS2020、CS3230和CS3230)的学生设计的,但作为在线学习的倡导者,我们希望世界各地好奇的人也能发现这些可视化的用处。

VisuAlgo从一开始就不能很好地在小触摸屏(如智能手机)上工作,因为需要迎合许多复杂的算法可视化,这些可视化需要大量像素和点击拖动手势进行交互。良好的用户体验的最低屏幕分辨率是1024x768,只有登录页面相对移动友好。

最令人兴奋的发展是自动问题生成器和验证器(在线测验系统),它允许学生测试他们的基本数据结构和算法知识。这些问题是通过一些规则随机生成的,学生的答案在提交到我们的评分服务器后会立即自动评分。当这种在线测验系统被全世界更多的CS教师采用时,从技术上讲,它应该可以从许多大学的典型计算机科学考试中消除手工的基本数据结构和算法问题。通过设置通过在线测试的较小(但非零)权重,CS教师可以(显著)提高学生对这些基本问题的掌握,因为学生在参加在线测试之前几乎有无限数量的培训问题可以立即得到验证。培训模式目前包含12个可视化模块的问题。我们将很快添加剩下的8个可视化模块,以便VisuAlgo中的每个可视化模块都有在线测验组件。

另一个活跃的开发分支是VisuAlgo的国际化子项目。我们想为所有出现在VisuAlgo系统中的英文文本准备一个CS术语数据库。这是一项艰巨的任务,需要众包。一旦系统准备就绪,我们将邀请VisuAlgo访问者提供意见,特别是如果您不是以英语为母语的人。目前,我们还用不同的语言编写了关于VisuAlgo的公开说明:zh、id、kr、vn、th。

✕项目负责人兼顾问(2011年7月至今)史蒂文·哈利姆博士,新加坡国立大学计算学院高级讲师,谷歌(山景城)软件工程师菲利克斯·哈利姆博士。

毕业项目/UROP学生1(2012年7月至2013年12月)Phan Thi Quynh Trang,Peter Phandi,Albert Millardo Tjindradinata,Nguyen Hoang Duy。

本科生研究人员2(2014年5月至2014年7月)乔纳森·欧文·古纳万、内森·阿扎里亚、伊恩·列子伟、阮越勇、阮克东、史蒂文·凯斯特·尤沃诺、曹胜泽、莫汉·吉什努。

最后一年项目/UROP学生4(2016年6月至2017年12月)Truong Ngoc Khanh,John Kevin Tjahjadi,Gabriella Michelle,Muhammad Rais Fathin Mudzakir。

在统计页面上可以找到贡献了≥100个翻译的翻译者列表。

感谢NUS教学发展中心(CDTL)慷慨提供的教学强化拨款,使这一项目成为可能。

✕VisuAlgo对地球上的计算机科学界是免费的。如果您喜欢VisuAlgo,我们要求您的唯一报酬是通过Facebook、Twitter、课程网页、博客评论、电子邮件等将VisuAlgo的存在告诉其他您知道的计算机科学学生/教师。

如果您是数据结构和算法专业的学生/教师,您可以直接使用此网站上您的课程。如果您从本网站拍摄屏幕截图(视频),只要您引用本网站的网址(http://visualgo.net)和/或下面的出版物列表作为参考),您就可以在其他地方使用这些屏幕截图(视频)。但是,您不允许下载VisuAlgo(客户端)文件并将其托管在您自己的网站上,因为这是抄袭。到目前为止,我们不允许其他人分叉此项目并创建VisuAlgo的变体。使用(客户端)VisuAlgo的脱机副本供您个人使用是可以的。

请注意,VisuAlgo的在线测验组件本质上是重服务器端组件,没有简单的方法将服务器端脚本和数据库保存在本地。目前,普通公众只能使用培训模式访问这些在线测验系统。目前,NUS的考试模式是一个更受控制的环境,可以使用这些随机生成的问题和自动验证来进行真正的考试。如果您想尝试这种测试模式,其他感兴趣的CS教师应该联系Steven。

这项工作已在2012年ACM ICPC世界总决赛的CLI研讨会(波兰,华沙)和2012年IOI大会(意大利Sirmione-Montichiari)上作了简要介绍。你可以点击这个链接来阅读我们2012年关于这个系统的文章(它在2012年还没有被称为VisuAlgo)。

这项工作主要是由我以前的学生完成的。最新的最终报告在这里:艾琳,王紫,罗斯,伊万。

VisuAlgo还没有完成。史蒂文·哈利姆博士仍在积极改进VisuAlgo。如果您使用VisuAlgo并在我们的任何可视化页面/在线测验工具中发现错误,或者如果您想请求新功能,请联系Steven Halim博士。他的联系人是他的名字和地址gmail.com的拼接。