Second assignment of the PG3300 course.