
This may have been fixed, as the tutorial currently says:
"In fact, there are quite a few important problems for which the bestknown algorithm that produces an optimal answer is insufficiently slow for most purposes. The most famous group of these problems is called NP, which stands for nondeterministic polynomial (don't worry about what that means). When a problem is said to be NPcomplete or NPhard, it mean no one knows a good way to solve them optimally. Furthermore, if someone did figure out an efficient algorithm for one NPcomplete problem, that algorithm would be applicable to all NPcomplete problems. "
I would still suggest rewriting that last sentence as: "Furthermore, if someone did figure out an efficient algorithm for one NPhard problem, that algorithm would be applicable to all NP problems."
That is by the definition of NPhard. It may also be worth mentioning that NPcomplete problems are simply problems which are both in NP, and NPhard. There may be some confusion, as an NPhard problem is not necessarily in NP (hence why an efficient solution to one NPhard problem does not mean an efficient solution exists for another).
Finally, there are problems known to be in NP, but not yet proven to be either in P or NPhard  thus no one knows an efficient solution to these either, despite not being NPComplete or NPhard. But working that into the tutorial would require also mentioning P, the subset of NP for which efficient solutions exist, and I understand it was only meant to be a simple overview. 