cs301 assignment 2