UC-berkeley CS162 proj3