cmps111 assignment 1