An assignment I just completed for CS 312