In computational complexity theory, NP (nondeterministic polynomial time) is a complexity class used to classify decision problems. … An equivalent definition of NP is the set of decision problems solvable in polynomial time by a non-deterministic Turing machine.It is difficult to prove that something can not be done.
Let me repeat that, it is difficult to prove that something can not be done.
So, while we know how to solve many of these algorithms in exponential time, whose to say that one of you bright students won’t come up with a clever polynomial time algorithm!
NP-Complete is useful from that standpoint, if any of them turns out to have a polynomial time algorithm, they all do (hence P=NP).
Of course, us old professors feel that these problems have been looked at from every angle and no such solution will ever be found (hence, P ≠ NP).