  We consider the problem of assigning students to schools, when students have
different utilities for schools and schools have capacity. There are additional
group fairness considerations over students that can be captured either by
concave objectives, or additional constraints on the groups. We present
approximation algorithms for this problem via convex program rounding that
achieve various trade-offs between utility violation, capacity violation, and
running time. We also show that our techniques easily extend to the setting
where there are arbitrary covering constraints on the feasible assignment,
capturing multi-criteria and ranking optimization.
