Using real open source projects in the context of a University course can be a quite successful experience. Both from the didactic point of view and from a software production perspective.
Five years ago I decided to involve my students of the advanced computer graphics course at the Pisa University in the collective writing of an extensible mesh processing system that we called MeshLab with a plugin based architecture that allowed a easy to be managed compartmental development. Students get very involved and, beside the computer graphics hard core topics of the course, they learned a lot in term of collaborative development, ethics of sw development, open source licenses. At the end of that course a working system was successfully distributed under a GPL.
Since then, every year, I have repeated this approach extending it, and with the helps of tens and tens of willing students the system evolved into a serious complex mesh processing system, GPL'd, multiplatform, included in ubuntu and that is used worldwide by ten of thousands of users in academic and commercial environments.
I found that the knowledge of participating to the development of a **real** system gives the students a really strong motivation to give their best. The fact that their contribs will be released publicly with their name linked to the commits and listed in the official developer page was a strong incentive to do not cheat. For most of them it was the first time that they were making something real (not only exercises) something with a purpose that was quite different from the standard "get the score" approach. Many of the students continued to maintain their portion of code well beyond the course terms (some even after graduating).
I cannot but thanks my students for the dedication that they have shown in the projects.
Just google for MeshLab for more details of it.