Stanford cs106 Assignment1