CS193P Assignment 4