Assignment 2  of Stanford's CS106a