CSCI 4630 assignment 1