csc521 hw