Computational Complexity - Goldreich, Oded (Cambridge University Press, 2008)