algorithms part 1 - week 1