assignment 3 for CPSC 112