This page documents the process used for the UCL Institute of Cardiovascular Science iBSc and MSc Cardiovascular Science programmes to match students and supervisors for their independent research project modules.
Both programmes employ an automated system for allocating projects to students at the start of each year. In this system, students indicate their preferred choices of projects from a list of all available proposals before being allocated to one of these choices by an automated, unbiased, and anonymous minimisation algorithm designed to ensure the fairest spread of choices across the entire cohort.
A workflow for the process can be seen below, followed by more detailed instructions and templates for each step of the process.
- Potential supervisors submit project proposals using form such as that shown in following MS Form
- Once complete, all proposals downloaded as Excel sheet similar to that shown in
ProjectList.xlsx
and filtered to separate iBSc and MSc projects. ProjectList.xlsx
merged withProjectList_MailMerge.doc
to create PDF booklet to circulate to students on respective programmes.
- Students with pre-arranged projects (e.g. clinical students already working with pre-existing supervisor, students who have arranged external project) removed from allocation process.
- All remaining students select top six desired projects from list of available projects in order of preference using form such as that shown in following MS Form
- Once complete, all preferences downloaded as Excel sheet similar to that shown in
AllProjectData.xlsx
.
Here we use a mathematical optimizer to 'best' match between the students choices to the research projects available. We have used Google's open source software suite for optimization, OR-Tools, which provides an MPSolver wrapper for solving linear programming and mixed integer programming problems. This is a mixed integer programming (MIP) problem Since the constraints are linear, this is a linear optimization problem in which the solutions are required to be integers. More information about algorithm can be found here: https://developers.google.com/optimization/mip/mip_example. We use the MIP solver 'SCIP' (Solving constraint integer problems). https://www.scipopt.org which is currently one of the fastest non-commercial solvers for mixed integer programming. SCIP is a framework for Constraint Integer Programming oriented towards the needs of mathematical programming experts who want to have total control of the solution process and access detailed information down to the guts of the solver. In SCIP the problem is successively divided into smaller subproblems (branching) that are solved recursively.(details of the algorithm can be found here: https://www.scipopt.org/doc/html/WHATPROBLEMS.php )
- Upload
FINAL_MatchingAlgorithm_MSc2022.ipynb
to a Colab Notebook on Google Drive using https://colab.research.google.com/ - Upload
AllProjectData.xlsx
to a folder on the same Google Drive ensuring that relevant line of code in opening section of .ipynb file points to this folder and file. - Run code to automatically allocate projects and generate new file called
AllProjectData_time_date.xlsx
- Use
Supervisor Email Following Matching.docx
to link to PROJECT_RESULT_final tab inAllProjectData_time_date.xlsx
. - Remove any supervisors from mailing list who have not been allocated a student.
- Generate mail merge to automatically send to all successful supervisors.
- Use
Supervisor Email Following Unsuccessful Matching.docx
to link to PROJECT_RESULT_final tab inAllProjectData_time_date.xlsx
. - Remove any supervisors from mailing list who have been allocated a student
- Generate mail merge to automatically send to all successful supervisors.
- Use
Student Email Following Matching.docx
to link to STUDENTS_RESULT_final tab inAllProjectData_time_date.xlsx
. - Generate mail merge to automatically send to all students.