CS174A assignment 1, Fall 2014.