6.4.3 Programming Algorithms