Fair and skill-diverse student group formation via constrained k-way graph partitioning