A couple entries ago, I described 6.046 (Design and Analysis of Algorithms), one of the classes I’m taking the semester. We have a test coming up this Thursday ( O.O ahh ), and in the process of studying for it, I’ve realized how much I love it. <3
Every algorithm we’ve learned in the class is so incredibly relevant to daily life.
(warning: i’m about to nerd out hard core, so feel free to go back to homepage and click on a different blog entry if algorithms just ain’t yo’ thang)
Check out this screenshot of class notes; it describes the concept of interval partitioning. And it links it directly to the item that basically controls my life – google calendar:
The idea behind interval partitioning is that you have bunch of activities you need to take care of, and you want to minimize the number of resources needed to take care of them. The idea behind google calendars/timing conflicts between events happens to be the same thing :)
Need more convincing that algorithms are cool?
Check out yet another screenshot of course notes:
This relates the NYC subway line to a concept called skip lists, where the lowest row of items contains every single item associated with the problem. On top of this most basic list, you stack more lists, which progressively include fewer items than the list below it.
Mkkk, I’ll stop nerding out now, since I think you get the idea :)
There are so many classes I’ve taken in my life where I’m just like – okay, I know how to do this, but why is this important?! And why should I care?! 6.046 (and its little sister, 6.006 – a class I took last semeseter) are the first classes where I’ve been like – COOL. EVERYTHING MAKES SENSE NOW.
My current excitement over this could also just be because I’ve done nothing but 6.046 for like the last 6 hours and am therefore a little loopy.
In any case, I hope you appreciate algorithms as much as I do! But even if you don’t, you should wish me luck on my test :P