My use of a little bit original.
I part-time teach computer science in the first year of one of Moscow Universities.
We have implemented Redmine in the educational process: the tasks students are given in the form of Redmine tasks for which prescribed life cycle (new, sent for review, sent back for revision, the code delivered, the problem is solved).
There is a common project for the class, there are lectures and General materials.
There are subprojects for each of the seminar groups, where local lives its own life.
Formally, for the semester, each student should be handed a few jobs that we have done versions of and defined in the overall project sharing with subprojects. Specific objectives students in the subprojects of the groups attached to these versions.