Do Algorithm Animations Assist Learning? by Amanda

This was a really, really intersting study, and I'm NOT kidding. It was so interesting to me because I feel that I am a test subject for the exact experiment conducted that the paper describes...

The paper thouroughly discusses the benefits of teaching algorithms with animations as tools. That is pretty much what is going on in cs16 this year. It is interesting, we often bring up 16 in conversation in class but rarely does it come up corresponding to the weekly readings...yay! I get to go on my little rant!

I think that teaching algorithms through animations is a really good thing. I learn extremely visually and whenever I can be exposed to an idea in terms of pictures I opt for that. When I don't understand an algorithm for 16 I ask one of my friends to explain it to me. But there are some inherent problems that are associated with this.

1) Last week we read an article on the seven different intelligences and teaching to them. If we continue teaching algorithms with the main teaching tool being a visualizer then the non-visual students will be severely disadvantaged.

2) It didn't work. The students said that the animation is good but it would be a lot better if there was explanation that went along with it. They liked the interaction but decided that seeing the algorithm implemented is not as helpful as understanding the program that ran the animation. The students also mentioned that after the animations were over it was hard to remember what happened. It would be better if you could scroll back to see what had happened. The researchers decided that it would be better for younger or rather less experienced students to code the algorithms themselves, they would understand it better. And that is essentially what we are doing in 16.

In fact, a whole lot of the problems that were described in association with this experiment have been fixed for 16.

But it doesn't work. there are problems with each of these suggestions, excluding the replay slider. First of all, for actual implementaitons of algorithms we can't actually see what is going on. There is one online demo for red black trees that blows me away. But there aren't demos like that for every algorithm, and I wish that there were...Instead, we write our own visual representations of algorithms. There are problems with this. If we don't understand the algorithm and cannot implement it, then we will never be able to see an actual working algorithm. If we don't understand it before we implement it then we are essentially screwed...

But, the point is to understand it WHILE we are implementing it and THROUGH implementing it. And, this probably works. But you have to understand what you code before you can code it. And, this forces 16 to depend on the lectures, and the book.

Now, the book is just terrible. The problem is that they tried to make a common bond between all of the sorting algorithms which are locators. The pseudocode they provide is absolutely atrocious. The main problem that I have with the psuedocode is that for all of the while, if, and for statements, they leave out the brackets and don't indent. I'm generally not a stickler for coding conventions, although I tend to be on the rigid side, but generally, and in any language, there are brackets for the most part. Leaving them out makes the pseudocode very, very confusing.

As for the lectures, they are supossed to be what the students said that they wished for in this study: a narrative describing what is happening. Roberto goes through the lecture slides and talks about what is happening but it is still unclear. I can point to two faults in the system, one is the lecture slides, and the other is Roberto's lack of a stage presence. While the latter cannot be fixed, the first MUST be reworked for next year. The slides have pictures, but that is all. They occasionally have words but the words that are included don't have anything to do with the hand simulationn in the later slides. There needs to be a dialogue going on at the bottom of the page describing in extreme detail what is happening. Could this lead to the fear of giving some code away? I hope that by explaining something that the students are supossed to know is giving some of the assignment away. How are we supossed to know what is going on other than that? Where are supossed to learn the materials if we can't depend on the book?

But, my frustrations with 16 are not all this article leads me to recall. It reminds me that algorithms are a hard thing to learn. And that teaching them does require some study of what the best way to do so is. While visual representation is, in my opinion, the best way to learn. It should not be the be all end all. Also, the current implentaition of this idea that 16 uses, is not working. People learn the material but it requires way to much effort and much suffering.


Reactions


Danah:

I just wanted to agree with you. The visualizer and the animations are really good for some students and not-so-good for others. I also wanted to give you a hint regarding your CS16 rant. Two ideas: talk to the professor (they are usually great about taking advice) and TA the course. Some of the best improvements to courses have been done by people who have beefs with the course and want to improve them!


Saul:

I do not want to play the role of "DEFENDER OF CS16" unless it involves some wine and red underwear, but that is definitely another story. I did want to make this statement about the cs16 visualizer. It is there to help the students understand the material. We would not have had someone work on it for 8 months out of the year (including full time in the summer) if we did not feel that it was one of the best ways to help the students understand the algorithms and write the programs. Because of it, there are certain "standards" that must be followed such as interfaces and locators/positions. These are done so that a) the visualizer will work, and b) so we can explain it to everyone using the same language (I don't mean java). I understand that it is not the way that ALL students learn best, but I know that for myself, and the rest of the cs16 staff, being able to see the data structures and when and how they fail made the course much easier. Imagine debugging a heap without a visualizer? Very long and unfortunate task. Just keep in mind what is the motivation behind the visualizer before you knock it. It is really trying to help you, the student.


Matt A:

Personally, I feel that the visualizer helps me to understand what's going on, especially with the more complex algorithms. The problem I find is that I rely too much on the pictures it produces. I found (especially with Red Black Tree) that more emphasis needs to placed on hand simulation. Specifically, more examples would be useful. The trivial examples generally shown to students are worthless. If more time were spent going over complex hand simulation in addition to showing animations, students would have a much better understanding regardless of how they feel about visualization.


[BACK]