Finished Assignment 1 for CS193P