Skip to content

Conversation

drpicox
Copy link

@drpicox drpicox commented May 31, 2020

How can we avoid this kind of changes?

The code that students have to change, and autograding tests are in the same repository.
How can we be sure that students does not change them?

When I correct with tests I overwrite package.json and tests just to be sure that everything works as expected.
How we can do that, or similar, with Classroom and Autograding tests?

How we can avoid this kind of changes?

The code that students have to change, and autograding tests are in the same repository.
How can we be sure that students does not change them?

When I correct with tests I overwrite package.json and tests just to be sure that everything works as expected.
How we can do that, or similar, with Classroom and Autograding tests?
@VikramSinghMTL
Copy link

I agree with @drpicox - a student could just alter the tests to expect(true) and get 100%. Yes, I could go in and check that they didn't, but that defeats the whole purpose!

@GGraciet
Copy link

I agree with @drpicox - a student could just alter the tests to expect(true) and get 100%. Yes, I could go in and check that they didn't, but that defeats the whole purpose!

I also agree. For now, I'm generating an md5sum of the jest script. Then, before any unit testing for autograding purposes, I add an input/output test that checks the md5sum of the test file pushed by the student. If both md5 are equal, I can assume there is no cheating. Actually it's not very elegant but it works...

@drpicox
Copy link
Author

drpicox commented Mar 5, 2022

I agree with @drpicox - a student could just alter the tests to expect(true) and get 100%. Yes, I could go in and check that they didn't, but that defeats the whole purpose!

I also agree. For now, I'm generating an md5sum of the jest script. Then, before any unit testing for autograding purposes, I add an input/output test that checks the md5sum of the test file pushed by the student. If both md5 are equal, I can assume there is no cheating. Actually it's not very elegant but it works...

Uhmm, that is quite good. But it only works if you download all the repositories and check them with your code and your stored hashes. Which, unfortunately, it is also quite a job.

@GGraciet
Copy link

GGraciet commented Mar 5, 2022

Uhmm, that is quite good. But it only works if you download all the repositories and check them with your code and your stored hashes. Which, unfortunately, it is also quite a job.

@drpicox Actually, I also automated this task with an input/output test, for instance:

Screenshot_20220305-085058_Chrome

As far as GitHub classroom tests are actually running in a GitHub actions environment, we can use standard commands like md5sum.

@drpicox
Copy link
Author

drpicox commented Apr 20, 2022

Oh, this looks good.
Although, is this also translated into a file inside the .github folder in the repository?

I think that should be better having two repositories:

  1. the assignment repository and,
  2. the grading repository

Ok, it is less fancy, but it is easier to maintain, much more difficult to screw up.

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

Successfully merging this pull request may close these issues.

3 participants