P, Np, and Np-Completeness: The Basics of Computational Complexity