2012 ANU COMP2300 assignment.