Automated course scheduling and class conflict minimization for University of Toronto Engineering