Instead of the animation speed setting it should have a slider (like, for instance, here http://debug.elm-lang.org/edit/Mario.elm). Otherwise, it's more like a nice animation than a learning tool.
Searching for "Quick Sort" on the other hand returns results for me. Not sure if it's just a case of a different naming convention and finicky search, or intermittent site issues.
Awesome thanks! The site looks great. It would be cool if you could add some support for algorithms that a lot of new programmers would be looking for. eg: DFS, BFS, and maybe Dijkstras. I didn't see any of those :(
This is really great. I always wished something like this existed when I was going through CS undergrad (and grad, for that matter). Have you tried reaching out to any CS professors to tell them about it? You might also spread the word by telling some "coding interview" blogs about it.
Feature plea: it would be awesome to have legible YouTube screencast videos of all the algorithms from sites like this for lecture purposes.
I teach various CS classes and love using these kinds of sites. It really is a powerful way to demonstrate concepts. Usually what I do is go to the site, choose an algorithm, then show the algorithm working with the default options. Then I'll change a few options and try it again. Then I might pick a different algorithm and do another demo. Then I'll share the link with the class and encourage students to experiment on their own to really understand the algorithm.
It would be convenient to have screencast demos doing the exact same thing as a backup for lectures in case there are any problems. Problems I've encountered: general Flash/JavaScript failure, projected screen resolution so bad that the site is unusable, site temporarily slow or down, sites with ads showing inappropriate content for classroom use. Video backup lets me not worry about any of that.
agreed, but compiling the code does have the benefit of providing syntax checking and you are assured the full benefits of whatever JS engine your browser is running. How do I create new algorithms on you site? I could not figure that out.
I make use of Tailspin [1], which is a JS-in-JS interpreter and almost fully ES262 compliant. The visualisation gets called on every line of code and updates itself based on inspecting the interpreter state.
Two benefits are, the visualisation code is kept completely separate from the code being visualised. And secondly Tailspin offers the ability to step back in time.
In terms of creating algorithms, it's a bit of an awkward wiki syntax at the moment, see the tutorial [2] and bubble sort example [3].
When you restart a visualization, it automatically switches back to 'continuous' even if you had single-step selected. Making it easier to start from the very beginning would be beneficial I think. Just a suggestion.
Another cool algorithm animation site: http://rosulek.github.io/vamonos/demos/ uses Vamonos (http://rosulek.github.io/vamonos/). However, it looks like you have to write the algorithm twice, once in pseudocode to present to the reader and once in javascript to execute. In the Javascript code, you annotate the execution with the corresponding lines in the pseudocode so that the library can show what's executing.
I haven't dug into Vamono to figure out how that interacts with the browser's event loop. Duncan's use of ES6 generators for that interaction is clever, as is Will's Tailspin JS interpreter.
Wow, that is super sweet. I have been planning to add user interaction to algomation.com but have not had the time yet. The input mechanism would need to support validation and defaults so that algorithms could always run unattended but otherwise very doable despite the web workers that I use on the site.
http://www.algomation.com/algorithm/towers-hanoi-recursive-v...
http://www.algomation.com/algorithm/dijkstra-graph-shortest-...
http://www.algomation.com/algorithm/reversi-othello-engine-n...
http://www.algomation.com/algorithm/heap-sort-priority-queue