CS112 Assignment 3