Stanford CS193P - Assignment 6