[PDF] Elements Of The Theory Of Computation - James Grimmelmann, Harry R. Lewis, Christos H. Papadimitriou - 2nd Edition