Tuesday, August 20, 2019

Human Centric Computing: Algorithm Animation :: Essays Papers

Human Centric Computing: Algorithm Animation To many computer science students, algorithms are evil incarnate. They are hard to learn, understand, and teach. So, is there any way to make this difficult (and rather important) aspect of computer science easier? I believe that if algorithm animations are not a step in the right direction then maybe we need to change the direction. Algorithm animation is just a small piece of the software visualization puzzle. Software visualization is "the visualization of computer programs and algorithms" (Price 4). Unlike the visualization of computer programs, which is the visualization of the code or data, "visualization of an algorithm is the visualization of the higher-level abstractions which describe software" (Price 6). Visualization of algorithms can further be broken down into two more groups: inactive algorithm visualization, which is the use of flow charts, and active algorithm visualization, which is algorithm animation (Price 6). According to Marc H. Brown and John Hershberger, there are a few basic concepts that need to be met for an algorithm animation to be useful. The first is that the algorithm must be shown from different view points, each "displaying only a few aspects of the algorithm. Each view..." should be "...easy to comprehend in isolation, and the composition of several views is more informative that the sum of their individual contributions" (Brown 83). The next issue they talk about is "state cues"; "state cues reflect an algorithm's dynamic behavior" (Brown 84). This means that when the program algorithm is passing a certain part in the program, it should be visually clear; for instance, "when a sub file is partitioned, the animation replaces its box by a tree node at the splitting element with two smaller boxes as children" (Brown 84). Next, they talk about "static history"; this is just a log of what the algorithm has already accomplished (Brown 84). Lastly, they talk about how the changes to the algorithm animation should look as the animation goes on (Brown 84). The animation needs to know when to just abruptly change two subjects (i.e. replacing a dot with a square) and when to show a more fluid switch of two subjects (i.e. gradually show two squares changing places) (Brown 85). One of the most common human centric uses for algorithm animations is its potential as a learning device. The only problem is that it's not clear whether it is effective. There are many programs that allow algorithm animations to be used for learning purposes, and as an example of one, I will look at an early program called Animated Algorithms.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.