/student_track_match

Simple student/track matching script

Primary LanguagePython

Supported Python Versions Code style: black

Student/track matching script

About

This Python script assigns ENSC students to specialization tracks based on their grades, track wishes and track capacities.

Input data (student names, grades and track wishes) is loaded from a CSV file. Students ranking and track assignments are written to CSV files.

Algorithm goes as follow:

  • For each student, a weighted average of their grades during past semesters is computed.
  • These average grades are used to sort students by merit (best first).
  • In that order, students are assigned to the highest non-full track in their wishes.

Input data format is:

Last name First name S5 grade S6 grade S7 grade S8 grade First track wish Second track wish Third track wish Fourth track wish
... ... ... ... ... ... ... ... ... ...

Usage

> python -m match <students CSV file name>

Development Notes

This script needs Python 3.7+ and uses the following tools:

Run the following commands to check the codebase.

> python -m pylint match.py  # linting (including type checks)
> python -m mypy match.py    # type checks only