Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cheating Detection Integration #471

Open
williamli0707 opened this issue Mar 5, 2024 · 1 comment
Open

Cheating Detection Integration #471

williamli0707 opened this issue Mar 5, 2024 · 1 comment

Comments

@williamli0707
Copy link

Is your feature request related to a problem? Please describe.
I’m a high schooler currently TAing for a CS teacher at my school. I recently created a cheating detector tool for that teacher, and I was thinking that I could possibly help other teachers by integrating something like this into Runestone. Although what I’ve created so far is based on Java and is pretty independent of Runestone, I would be excited to help contribute to a feature like this that is more integrated into Runestone!

Here’s what I’ve done so far - it’s pretty unpolished and could probably use some work:
https://github.com/williamli0707/web-panda
It’s mainly a web server based on Java which scrapes assignment data from Runestone and compares timestamps and edit distance between submissions.

Describe the solution you'd like
I think that it would be beneficial to have an integrated cheating detector in Runestone, and would be happy to contribute to one.

Describe alternatives you've considered
My teacher currently manually compares timestamps between submissions to find suspicious work, and sometimes runs the code through MOSS. However, this is pretty inconvenient.

@bnmnetp
Copy link
Member

bnmnetp commented Mar 5, 2024

Great idea, and I like the simplicity of the approach of calculating the edit distance between two submissions and how far apart they are.

I see two places where this could pretty easily be integrated.

  1. In the browser, where the edit distance is computed right before the submission is sent to the runestone server. And stored in the database as a separate column along side the code.

  2. Could be done in our server when a new bit of code is submitted. This is more secure than doing it in the browser, but with a bit more cpu required to calculate the edit distance.

With the data in the database it would be pretty easy to create a page, or update the grading page to have output similar to what you have built.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants