Although the materials in a class like Tim Roughgarden's Algorithms: Design and Analysis are extremely well presented, I can't help but think that for topics like graph search and dynamic programming, visualizations could be an additional, effective tool for helping students learn.
I tried my hand at creating one such visualization -- the algorithm is for finding the longest palindromic substrings within a given string, e.g. "racecar" within "red hot racecar". Here's the link.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAdp18Xo84kdHnDFZUzhda_RYxhfY3OAkxiQDKc8QOMwR8AfANt_BtxCg7QO0-zR_awLZtOqbcMEMsj7mlhovzLLJi5zck00aYBshzj89dFHqP69JnaeEdi7nd5_rGhCI7Hi8JbXLmYVs/s320/Screen+Shot+2013-11-16+at+3.55.02+PM.png)