CS354 Assignment 4