I believe there is also a need for something like this for educational use. My experience with using MakeCode in a classroom setting, is the unfortunate, but expected and indeed creative, occurrence of 2 particular forms of “cheating”, either:
- To go into JavaScript in the teacher’s solution file and just copy the text code and then paste the text code into your own assignment and share and hand in, or
- To get a copy the solution from one of the classes’ brightest or most industrious students and just share this with your own new share link and hand in as-is.
The first one is pretty easy to control by either postponing the publishing of the teacher’s solution, or bake into the students’ hand-outs subtle differences in the code, so that copying and pasting text code from the teacher’s solution either does not run correctly and/or has watermarked differences that are easily noticeable.
The second “cheat”, however, I have so far found to be more difficult to both discover and hinder.
With settings persistent across shares, like @Sarge here suggests, wouldn’t it then be possible to run a unique hash routine only once on opening the program, which would then be carried on with the new share which is handed in to the teacher, watermarking it as unique for the first student who handed it in, regardless of the various share link URLs?
Maybe one could also use an ask-for-name-routine on only the first run/open of the assignment, like this one from @AlexK, where the name is carried on as setting in the new share link that is handed in?
Lastly, perhaps there already exists a technique to guard against “cheat” no. 2, using GitHub, file save, or some other mechanisms, that @KIKIvsIT and others in the @MakeCode team who are focused on the educational side of MakeCode already know about and could please share?