CS401 Assignment 3