NTU SC1003 mini-project (Computational Thinking & Programming) · awarded A+
Student Grouping Optimisation Algorithm
Completed (Oct – Dec 2025)
A team mini-project (awarded A+) that automatically sorts an entire NTU cohort, 120 tutorial groups, into balanced mini-groups of five. Students are bucketed by CGPA relative to their tutorial group's median, a greedy algorithm then builds groups under diversity constraints, and an iterative-swapping optimiser trades students between low- and high-scoring groups to raise the cohort-wide diversity score.
Features
- Processes a full cohort of 120 tutorial groups into balanced mini-groups of 5
- CGPA bucketing relative to each tutorial group's median (ideal 2 above, 1 at, 2 below)
- Greedy group construction under diversity limits on gender, school, and CGPA bucket
- Quantitative diversity scoring function rating each group from 0 to 1
- Iterative-swapping optimiser that trades students to raise the cohort-wide average
- Validated across 20 random seeds with score-distribution analysis
Built with
- Python
- Greedy algorithms
- Iterative optimisation
- Jupyter
- Data visualisation