Generally the assignments were really well done. I think everybody understand the basic idea behind NP and the reductions. The only common error was a misuse of the loop invariant. Many people would give loop invariants that are too vague. For example, in problem 3, some people have the correct reduction but the loop in was that G always had a clique of size k. They said nothing about the vertices that have already mean checked and what that means. In loop invariants have to be stronger. G has a clique of size k and every node that we did not delete is part of every clique of size k.