Course participants

Implementing #185 
We really should do the group_by in DB level...