Algorithms from P to  NP, Vol. I: Design and Efficiency