COP4531: Programming Assignment 3