CS130A Programming Assignment 2