cpsc 457 - assignment 4