CS 2303 Homework 4