One of my research projects at UIUC is to develop new methods of automated plagiarism/collaboration detection and analysis in student programming assignment submissions. I work with a variety of people on the project, using a variety of technologies, and we have produced some interesting software that has led to interesting results. Eventually, we plan to roll this software out as a service to the CS department and greater campus, but those plans are still far in the future.
I’ve been working on this project now for a couple of years and have seen some of the lengths that students will go to to cheat. Being involved in this arena has led me to become very interested in how students cheat, why students cheat, and ways to detecting it. I came across this article today on slashdot that piqued my attention. Although this article has nothing to do with plagiarizing programming assignments, it nonetheless reminded me of what some will do to slide by in school. If you take a few minutes to peruse http://www.vworker.com, I am positive that you will be able to find some cleverly disguised homework assignments that programmers from around the world are bidding on to complete, even when their terms of service disallow these types of projects.
These hired-out homework assignments, at least in the computer science world, are in my opinion the toughest kind of plagiarism to detect automatically. Sure a manual inspection will bring it to light pretty quick, but in some of the classes we do analysis on there are 200-300 students, so a manual inspection of each assignment is just not feasible. At least for now, it appears that given the right circumstances, if students are willing to pay the cash anything is possible.