Friday, August 24, 2012

Algorithms

"For me, great algorithms are the poetry of computation. Just like verse, they can be terse, allusive, dense, and even mysterious. But once unlocked, they cast a brilliant new light on some aspect of computing" - Francis Sullivan

Algorithms.  I think they are fascinating, scary, and, as the author above states, like poetry.  In just a few lines of code, pseudocode, or math, a whole concept and idea can be expressed.  But once you get that a-ha moment of understanding, its a great rush, and can be quite beautiful (see fractals, etc..).  They require (for me at least), multiple readings and deep study to pull out the underlying meaning.  Then putting them to use is another big challenge.  As any computer scientist knows, an algorithm can make the difference between a program that runs, and one that will never finish.

To further my knowledge on algorithms, I've enrolled in the Coursera algorithms class which has so far been pretty good.  I think they are taking a great approach to understanding the algorithm, and having the students implement them.  Thus far my favorite has been Union-Find, of which I'll try to do a writeup of tomorrow.