CS502 - Fundamentals of Algorithms
    Introduction to Algorithms by Thomas H.Cormen, Leiserson, Rivest, and Stein