Algorithms: The Building Blocks of Computer Programming