Assignments 1-3 for Stanford CS193 course