CSC286: Assignment #4