Machine Learning-powered Course Allocation