It should come as no surprise to learn that dishonest students sometimes submit work that is not their own, either plagiarizing or developing it collaboratively when independent work is expected. An incident in the Computer Science Department at Columbia University during the spring 2004 semester reveals how far dishonest students will go when the opportunity seems easy and risk-free.1 By sharing my experience here, I hope to draw attention to the new ways some students are using the Internet to cheat on class projects and to highlight the fact that such cheating can (with effort) be detected.
The programming project I created and assigned to an introductory database systems course involved writing code for bulk-loading a B+ tree. Two weeks into the project, I was surprised to find an anonymous student posting on the class discussion board. The author reported performing a Google search on the phrase "B+ tree" and to his (and my) surprise turned up a suspicious hit on the fourth screenful of results—a page at www.rentacoder.com entitled "B+ tree bulk loading" with several paragraphs apparently copied verbatim from my project.
Some student was trying to subcontract his project for the class. The posting did not reveal any identifying information about its author. I called www.rentacoder.com on the phone, but the company was not helpful, refusing to reveal anything about posters without a court order. The poster in this case was doing nothing illegal (except perhaps violating the copyright on my project description), so this avenue seemed unproductive.
I told the class what I had learned and posted an announcement to the class discussion board explaining that I was aware of the posting at www.rentacoder.com and considered it an extremely flagrant form of cheating. Sure enough (it seemed to me), the bidding process on www.rentacoder.com was canceled that day. I thought this would be the end of it, that the student had been scared off and would now refrain from cheating.
I was wrong. Toward the end of the course in April, I visited www.rentacoder.com again. While the original call for bids was still canceled, a second call, entitled "bulk loading 2," had been posted by the same person as a "private" auction, that is, one targeted at a particular coder (probably someone who had responded to the earlier posting). Money had apparently changed hands ($50), and the poster had given positive feedback about the quality of the coding job.
Additionally, the posting now gave a piece of identifying information about the poster, namely that his address was in Miami, FL. However, I wasn’t ready to jump to conclusions. Many of our students in New York might originally be from Florida. Also, several students were taking the class remotely via the Web. Moreover, the poster may not have been honest in listing Miami as his address. The listing was part of the www.rentacoder.com trust-establishment process in which a contractor might gain some confidence that a poster is legitimate and the contractor will be paid. My guess was that the Miami location was automatically generated from the address on the credit card the poster used for payment.
Some student was trying to subcontract his project for my class.
At this point, all student projects had been submitted, so I tried to find the problematic one by inspecting the submissions. While I wasn’t sure what kind of suspicious code to look for, I did expect I’d know it when I’d see it. Looking through the 82 projects certaintly wasn’t appealing.
I had, however, fortuitously changed the project specifications early on to make it somewhat easier; a parameter that was supposed to be entered on the command line could now be a compile-time parameter. I reasoned that the student who posted the bid would have either posted the project before the change or not paid attention to the change. Approximately nine submitted projects allowed the runtime parameter, and the teaching assistants forwarded them to me electronically.
It was relatively easy to spot the "bad" project due to several problematic features:
- Written with an overly elaborate use of C++. For example, the class "B-tree" was defined, and a subclass "B+-tree" was inherited from it. I hadn’t asked anything about B-trees, just about B+ trees;
- Far more general than it should have been. I had asked for a bulk-loading algorithm and a search algorithm, but methods were also implemented for insert and delete;
- Coded wrong. The algorithm implemented was not, in fact, bulk loading but merely repeated insertions; and
- Ungrammatical comments. Even though the student was apparently a fluent English speaker.
It also turned out that the student who had submitted the project was indeed a remote student with a Miami-area telephone number.
I asked the dean of Columbia’s Engineering School how to proceed. He told me to call and confront the student with the evidence of cheating—which I did. He was reluctant at first to admit any wrongdoing as I described the evidence. He defended his elaborate use of C++ on the basis of having studied C++ in a previous course. He defended the overly general code on the grounds that he had developed a B-tree package for a previous course and had now reused it in my course. He ascribed the wrong implementation of bulk-loading to being behind in the course, including having not yet watched many of the course videos. And he claimed the bad grammar was due to being in a hurry.
However, once I said I had seen a posting on www.rentacoder.com from someone in Miami, he admitted to having made the initial posting. He said he canceled it and didn’t use the results but had no rejoinder when I pointed out the second private bid request. At that point he acknowledged using www.rentacoder.com to subcontract the class project. He later sent an email message apologizing for the incident, describing various personal problems and asking for leniency.
I referred the case to the dean for a disciplinary hearing. The student subsequently received a disciplinary penalty and an F for the course. In light of this and other recent cases, the department updated its academic honesty policy (www.cs.columbia.edu/education/honesty).
I refrain from sweeping generalizations about the scale of Internet-based cheating on the basis of this one experience. It does, however, seem like students are regularly posting homework on the Net looking for solutions from others. A quick visit to www.rentacoder.com (or other such sites) will verify that the postings I noticed do not represent an isolated incident, although catching an offender is probably rare. We’ve clearly succeeded in teaching our students about outsourcing.
I’ve learned that instructors must be aware of the sophistication of dishonest students and match that sophistication in detecting their dishonesty. Cheating will never be eliminated. However, once students hear about even one case in which such a scheme is exposed, that scheme is much less likely to be used again. After all, the penalties for substantive incidents of cheating are likely to be severe.
Perhaps students searching for Internet-based subcontractors will find this column among the hits (it includes most of the right keywords) and appreciate the risk they are taking.
Join the Discussion (0)
Become a Member or Sign In to Post a Comment