This is Assignment 1 in CS 3307a at UWO.