programming assignments for algorithms part 1 (coursera)