CS 2112 Assignment 4