One professor (who I greatly respect) did as follows:
- He made the papers a part of the exam, the second part being the talk/presentation.
- The papers had to be in some particular conference format (there were style files at the conference page).
- There were two dates in which students could present, and it would be organized in a mini-conference form (20 minutes for the talk, 5 minutes for questions, 5 minutes for connecting laptop).
- There were 8-9 topics listed that students could pick from (there were about 20 people in the class) which were simplified cases of some research problems.
- You could do your own topic if you could persuade the professor (actually anything reasonable worked).
- "I took the XYZ approach and failed" were valid results.
- Students worked alone (but there were exceptions). They could discuss their project during office hours, but were not required to.
- There were no drafts, but if you submitted a draft, your paper would get "peer reviewed" by the professor.
- Some of the works were later submitted to student session of the said conference.
In my opinion it worked pretty well. One key thing was that each topic was assigned to more than one student and so it could be later compared, it made an interesting discussion and some funny discoveries. It is worth to point out that the professor would never use students' data against them (even if it was clear that one of them did something wrong). Finally, I think it is significant that it was a practical course, namely natural language processing, where there is a big supply of easy research questions (and is quite entertaining because of the "insights" of machine learning algorithms).
I hope this helps $\ddot\smile$