Skip to content
All projects

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