6th Programming assignment in Mehran's CS106A, Programming Methodology.