Course Scheduling is a 2 quarters ICS honor research project at University of California, Irvine, and was finalized in June 2017. Zhaohua (Jenny) Zeng is the student and Professor David Eppstein is the advisor for this project. The course scheduling algorithm was inspired by the Coffman-Graham algorithm and the Hu's Algorithm. This algorithm can generate a four-year plan or a partial plan for students at University of California, Irvine, considering the course prerequisites, quarters that a course will be offered, Univ/major/specialization requirements, etc..
You can refer to the example.py to see how the data is loaded to the course scheduling graph and how to generate a schedule. Instead of using txt files to store data, it is also possible to build a database, and input preprocessed data into the Course Scheduling API.
I formed a team after I finalized the research project. Now we are working on building a website for the course scheduling algorithm, and the expected release time is late-August, 2017. If you have any suggestions, feel free to email me. Website development code is in the repository: CourseScheduling-Web
In the final report, there is an introduction to two related algorithms, the Coffman-Graham algorithm and the Hu's algorithm, as well as a detailed explanation about how the algorithm works.
In my initial plan, I illustrated my main idea of the course scheduling project, described the Coffman-Graham algorithm that I will be working on, and some difficulties as well as interesting points. research-initial-plan.pdf