It requires minimal mathematical background (undergraduate level discrete math). But you will learn a bunch of relevant algorithmic concepts. And the problem sets are hard!
Reply on news.ycombinator.com