Prof. Jonathan Kelner
OCW has published multiple versions of this subject.
Kelner, Jonathan. 18.409 Topics in Theoretical Computer Science: An Algorithmist's Toolkit, Fall 2009. (MIT OpenCourseWare: Massachusetts Institute of Technology), http://ocw.mit.edu/courses/mathematics/18-409-topics-in-theoretical-computer-science-an-algorithmists-toolkit-fall-2009 (Accessed). License: Creative Commons BY-NC-SA