Reaction for: Do Algorithm Animations Assist Learning? by Lucas

I don't know if rcd and Roberto have been corresponding, but this article seemed rather timely. Having just completed BTHeap, I am quite familiar with CS16's usage of algorithm vizualization.

An abstract view of a complex data structure is very beneficial to me personally. I have programmed linked lists, sequences, and other basic data structures in C++ without the aid of any sort of vizualization, and I can say without a doubt that it is easier for me to debug and conceptualize by using pretty pictures as supposed to memory addresses. However, I think it all comes back to what we've been talking and reading about during these last few weeks -- the subject of different learning styles and "multiple intelligences."

So, neat little moving red black thingeys might help some people more than others. That's a given. However, a problem arises when people become more focused on surviving by satisfying the vizualizer than actually understanding their algorithms. I think an actual practical application would be very beneficial to the students (something along the lines of pizzadex, but, um, better .. :-) ). But perhaps during the learning phase, a vizualized conceptualization would be useful.


Reactions


Matt C:

I agree completely that visualizing algorithms has helped me understand what's going on with it. Watching how a sort works, or watching how a tree structures itself, especially with explanations as it is running is very valuable. However, once you start coding I have seen it go both ways. Sometimes a visual representation of a tree is useful, sometimes you spend so much time trying to figure out why your visualizer doesn't like your code, that you realize the algorithm was fine, you just weren't passing your tree correctly. While these issues should be minor, when we are trying to teach the theoretical aspects of an algorithm, it is a shame to see so much time spent dealing with silly code issues.


Danah:

I wanted to piggy-back on Matt's thought about writing them versus viewing them. I think that two different types of people benefit from the visualizations. Some people learn a concept really well by programming it while others learn rather well from just fooling around with an already- working program. The question then becomes, are we trying to teach the concepts or how to code the concepts?


Jon:

I think that to some degree, both are important. There are two aspects of data structures and algorithms, theory and implementation. It is probably most crucial to be able to understand how the algorithm works, its abilities, and its limitations. But learning how to implement a relatively complex algorithm is a good skill to have as a computer scientist, because that is the end result of an algorithm.


[BACK]