CSCI3180 Assignment 4