Question: What is an NP-complete problem? Why is it such an important topic in computer science?

Answer: 
It's a class of problems where we must simulate every possibility to be sure we have the optimal solution. 

There are a lot of good heuristics for some NP-Complete problems, but they are only an educated guess at best.
As far as I understand

P is the set of problems which could be solved in polynomial time with a deterministic TM.

NP is the set of problems which requires a non-deterministic TM to be solved in polynomial time.
This means that we can check all different combinations of variables in parallel with each instance taking polynomial time. If the problem is solvable then at least one of those parallel instances of TM would halt with "yes".
This also means that if you could make a correct guess about the variables/solution then you just need to check it's validity in polynomial time.

NP-Hard is the set where problems are harder than NP. This means NP-Hard problem are more difficult than any problem in NP set. These problems are exponential even when using non-determinism of Turing machines. So parallel computation does not helps while solving these problems.

NP-Complete is the intersection set of NP and NP-Hard. According to what I understood,

1. problems in NP-Complete are at least as hard as the hardest problem in the NP set.
2. The class of all NP-Complete problems are equivalent to each other, i.e, a problem in NP-Complete set can be reduced to any other NP-Complete problem. That means if any of the NP-Complete problem would have an efficient solution then all of the NP-Complete problems could be solved with same solution.

If any problem in NP-Complete set is deterministically solvable in polynomial time, then the entire NP-Complete set is deterministically solvable in polynomial time. Also since NP-Complete problems are at least as hard as the hardest problem in the NP set, all problems in the NP set (which are equal or easier than the problems in NP-Complete set) will be bounded above by deterministically polynomial running time, expanding the P set over the NP set, resulting in P=NP.

Please let me know if I made any mistake.