stanford cs 106 assignment 1