Do You Know?
You can visualize the recursion tree (or recursion DAG, if there are overlapping subproblems and Dynamic Programming is applicable) of ANY valid recursive function
visualising data structures and algorithms through animation
No results were found.
VisuAlgo was conceptualised in 2011 by Dr Steven Halim as a
tool to help his students better understand data structures and algorithms, by allowing them to learn the basics on their own and at
their own pace. VisuAlgo is like a 24/7 copy of himself. Together with some of his students from the National
University of Singapore (see the "Team"), a series of visualisations were developed and consolidated, from simple sorting
algorithms to complex graph data structures and algorithms, and also string+geometry algorithms.
VisuAlgo contains many advanced algorithms that are discussed in Dr Steven Halim's book and beyond (Note: This 'Competitive Programming 3' book is co-authored with his brother Dr Felix Halim). At this point of time, some of these advanced algorithms visualization/animation can only be found in VisuAlgo. For example, in Graph Traversal visualization, we do not just discuss the standard Depth-First Search (DFS) and Breadth-First Search (BFS) algorithms, but also their variants, e.g. the modifications of DFS for finding Articulation Points (Cut Vertex) and Bridges, Tarjan's and Kosaraju's DFS-like algorithms for finding Strongly Connected Components (SCCs) of a directed graph, and we also have feature to visualize the implication graph of a small 2-SAT(isfiablity) instance and check if the instance is satisfiable.
Though specifically designed for NUS students
taking various data structure and algorithm classes (e.g. CS1010, CS1020, CS2010, CS2020, CS3230, and CS3233), as
advocators of online learning, we hope that curious minds around the world
will find these visualisations useful as well.
VisuAlgo is an ongoing project and more complex
visualisations are still being developed. The following visualizations are next in line to be developed by our team:
Hash Table (using several hashing techniques), Jack Edmonds' Graph Matching algorithm, Chu-Liu Edmonds' algorithm for
Directed MST, etc.
However, the most exciting development is an automated
question generator and verifier (the online quiz system) that allows student to test their knowledge of basic data
structures and algorithms. The questions are randomly generated via some rules and students'
answers are instantly and automatically graded upon submission to our grading server. This online quiz system,
when it matures, should technically eliminate manual basic data structure and algorithm questions from typical
Computer Science examinations in many Universities. By setting a small (but non-zero) weightage on passing the online
quiz, a CS instructor can (significantly? -- to be proven after Dr Steven Halim finished this experiment with his
algorithm class this semester) increase his/her students mastery on these basic questions as the students have
virtually infinite number of training questions that can be verified instantly before they take the online quiz. To try this exciting online quiz feature,
click the "Start training!" button on the top right corner of this page.
VisuAlgo is not a finished project. Dr Steven Halim and
his team are still actively improving VisuAlgo. If you spot a bug in any of our visualization page/online quiz tool or
if you want to request for new features, please contact Dr "Steven Halim". His contact is the concatenation of his name and add gmail dot com.
This work has been presented briefly at the CLI Workshop at
the ACM ICPC World Finals 2012 (Poland, Warsaw) and at the IOI Conference at IOI 2012 (Sirmione-Montichiari, Italy).
You can click this link to read
our 2012 paper about this system (it was not yet called VisuAlgo back in 2012).
The list below contains the answers to frequently asked
questions since this site went public in early August 2014:
This project is made possible by the generous Teaching Enhancement Grant from NUS Centre for
Development of Teaching and Learning.