Summer Work & Algorithmic Series07 May 2015
I feel the need to make this somewhat of a monumental announcement, as this blog may finally get updated more than once every four months. I recently decided that I would be interning with TMC Bonds this summer. TMC is a company based in Manhattan that creates electronic trading platforms for fixed-income securities. Bank of America Merrill Lynch, Citi Global Markets, and Morgan Stanley all have a stake in TMC.
About half of the company is focused on software development in one form or another. I think I will learn quite a bit in my 10 week stint there.
Now, the reason I bring this up is not simply to declare the fact that I’m working. The one hour bus ride to and from my hometown of Caldwell means that I will have plenty of time to do some reading. I’ve decided I will spend that time reading the fourth edition Robert Sedgewick and Kevin Wayne’s classic textbook, Algorithms. I chose this text over Thomas Cormen’s Introduction to Algorithms because of the fact that Cormen’s work focuses more heavily on explanations with discrete mathematics. I find that algorithms are best explained with code (in the case of Sedgewick’s text, Java) and plenty of English. Additionally, Sedgewick’s work comes with an extensive library of online materials that I will very happily toy with once I get back from work.
Every important algorithm or data structure that I come across in Algorithms, I will write about right here on this blog. The greatest way to learn about something is to teach others about it, and so I believe that writing about the data structures and algorithms I come across will prove to be a fruitful exercise.
One auxiliary benefit is that I expect this process of reading and writing will provide great training for the rite-of-passage in the EECS department at the University of Michigan: EECS 281. Though they use Cormen’s work as the required textbook, I’m sure Sedgewick will be a fine replacement.
Check back in for my enlightening discussion (yeah, right) on everything from mergesort, to quicksort, to heapsort, to priority queues, to everything in between.