cmps111 assignment 2