programming assignments from algorithms part 1