Stanford's CS193p Homework 2 (not finished)