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.
Honestly, [Wikipedia](http://en.wikipedia.org/wiki/NP-complete) might be the best place to look for an answer to this.

If NP = P, then we can solve very hard problems much faster than we thought we could before. If we solve only one NP-Complete problem in P (polynomial) time, then it can be applied to all other problems in the NP-Complete category.