Stanford CS106 class assignment 2 adts