What does CodeChef do to prevent cheating?

There is rampant cheating happening in long contests. Yet CodeChef does not seem to be strict in its ways to deal with those who cheat. There has been a big delay in rating update for long challenges, what is the reason behind the same? Is the delay associated with these cheating cases? Why does CodeChef have no policy to deal with those who cheat or is there something?

10 Likes

For long, we have had reported cases of cheating and to be honest in the beginning we chose to ignore them, assuming that those who cheat are small in number and only harm themselves, while the rest continue to learn. As we started growing, the participation increased. And the reported cases also went up. In the meantime, a new rating system was implemented which resulted in making people take pride in their standings in this system. We tried to reason out our stance on cheating, and during the course of these discussions we figured out that we must try and do something to make the contest fair to all. We started banning those who have been reported for cheating after disqualifying them from the contest which resulted in a good fall in their rating points. We did not stop there. We tried calling and talking to each one of those who were banned to figure out why they did so. We also lifted the ban of a few of them after they confessed their mistake and pledged to not do it again.

Some of our findings as a result of this discussion are:

  • People use online IDE’s being ignorant of how to protect their submissions. This has been the most commonly admitted reason.

  • People get other’s codes from the online IDE’s and submit the same as their code.

  • People find a solution on some online resource and use it without giving any attribution.

  • People have been found to use multiple id’s to participate in the same contest. They make submissions from both the id’s

  • People discuss strategies and implementation and also share code amongst themselves and submit the same code.

  • People obfuscate their code to try and avoid being caught.

  • People who have been found cheating do not belong to only one particular nationality. We have found people from different countries who are also involved.

  • Some people have also been mistakenly being reported.

Our investigation and the existing process of verifying and banning those who have been found guilty has resulted in a long delay in this contest’s rating calculation and has also made us err in our bid to be quick and fair. We also realized that this mode of our working is not very scalable with increasing users, submissions and reported cases.

To avoid this in future we’ve penned down some guidelines, which answers a lot of questions associated with how CodeChef is going to deal with this process.

  • Ratings will be calculated within one day of the completion of the Long Contest.

  • The Rating calculation will take into account the cheating cases reported in the previous contest. Those found guilty in the previous contest will lose rating points. The ratings for the previous contest will be recalculated considering these cases. So technically each month’s rating will be calculated twice. This is to prevent the delay in rating calculation because of the frequent reported cheating cases. E.g. ‘X’ caught in cheating in July Challenge 2013, will see drop in rating at the time of rating calculation for August Challenge 2013. This may result in a minor rise in the rating points for the rest of users during the recalculation.

  • The accounts found guilty of cheating in any contest will be penalized in rating points. They will be considered to have participated in the contest without making a single correct submission.

  • Any account found indulgent in cheating will be immediately banned from the CodeChef community and will not be un-blocked unless found not guilty. The onus of disproving this will rest with the user who has been reported. Those found guilty will lose rating points in the subsequent month.

  • We are also considering installing a plagiarism detection software in future to help us in verification of suspected cases.

We urge everyone to go through the Code Of Conduct that one is expected to follow while being a part of this community.

36 Likes

@admin , @everyone : I have a suggestion .

Why not include a link saying “Code at Ideone” which on clicking takes you to ideone.com , log’s you in automatically and automatically fixes the visibility of code to “user’s” and if possible freezes the visibility settings .

For problems in Practice section , this link may keep the visibility to “public” .

Since “ideone” belongs to SPOJ and CodeChef anyway uses SPOJ , it should not hamper any interest of CodeChef

It might be good for some

About someone pleading innocent for his/her code getting copied , i would say BETTER SAFE THAN SORRY .

CodeChef could do its bit by keeping this link on problem page

7 Likes

You must also check timestamps to see the person who submitted the code earlier,If someone got the link from ideone then what is the fault of the person who did it genuinely since it was the first time this issue was found you could have warned the person who did genuinely to avoid using online IDE or use it in user’s mode.All that was did was that they were found equally guilty and the person who has been doing codechef since one year and increased his rating from 2000 to 4500 is now drop back to same level.Also not everyone in this matter was treated the same which was really disappointing

3 Likes

Nice idea. Or even an environment to test code online (within codechef) can be provided. Ideone or spoj APIs can be used at the back. In that way, we won’t have to leave codechef for testing purposes as well! And like said here, the visibility settings can be automatically enforced, and the user will not be able to override or change it.

Why Ideone? Why codechef can’t develop its own on-line compiler, like codeforces. Every questions will have a link, “Compile on online compiler” and the sample test cases would be automatically provided by the online compiler. I am sure no one will use IDEONE and cheating percentage will be cut-down dramatically.

3 Likes

Just improve your plagiarism algorithm.
Because currently I think it is like,
pick.randomuser();

3 Likes

@ved_patel - we wish it was as simple as that!!! In case any people have been missed out → please do report them on this thread - Updates on curtailing plagiarism - #302 by shreyash_49