You need Python 3.9.9 to run the code in this project, which is defined in .python-version. Dependencies are specified in requirements.txt.
More detailed instructions on how to set up Python in macOS can be found here.
We model the school timetable problem using PuLP, a popular linear programming modeler for Python.
We adapt a simple example from the PuLP documentation (the "blending problem"), which is solved in blending_problem.py.
Our current formulation can be found here.