TL;DR; I accidentally made the solution of an assignment visible to some of my students. How can I now fairly address that problem?

A few weeks ago I set a programming assignment to be done using Processing (a graphical programming tool), and to make sure the goal was clear I implemented a solution on openprocessing.org, which I made available to the students. On openprocessing.org, they can look at the working program (a little graphical game similar to tic-tac-toe), but the source code is hidden to them (I took a paid account to get private source code). But then I embedded the openprocessing.org 'sketch' (a web page that displays the working program as described above) in a different web page, and failed to notice that the embedded version has the source code readily available (the person viewing the sketch just clicks an icon at the top and they get the editor with the source code). I think that's a bug with openprocessing.org and I complained to them (and there's obviously also an oversight on my part), but that's not relevant to my issue.

So basically the solution to the assignment was available to anybody who clicked that button at the top. It's not obvious, so I think only a few students noticed it. One team emailed me asking whether it was intentional and expressing their concern. The assignment deadline is in 5 days (it's been up for 2 weeks) and it's the end of the term. This was supposed to be 10% of their grade. I took down the visible solution, and I' trying to come up with a contingency plan. I could cancel the whole assignment, or give everyone full marks... Just let those who saw it submit as is (and indicate the source). I just don't know how to handle this best.

Any suggestions or recommendations?

  • 8
    Yeah just give the solutions to everyone to be fair. Too late to change grading and requirements. But hopefully you are curving the grade so the effect is nothing. Apr 5, 2019 at 16:53
  • 36
    @ASimpleAlgorithm "hopefully you are curving the grade" I am not convinced grading on a curve is necessarily better.
    – Davidmh
    Apr 5, 2019 at 17:09
  • 13
    This is something you need to be discussing with whoever's in charge of teaching in your department, not random strangers on the internet. Apr 5, 2019 at 17:27
  • 2
    @Davidmh Are you speaking generally about curving, or about its value in this particular case? Because my statement was in regard to the benefits of curving in this particular case. By giving out the answers so everyone gains equally, no one gains an advantage in the curve. As for general complaints about curving, I probably don't curve in a way that has the drawbacks you are thinking of. Apr 5, 2019 at 17:35
  • 3
    What does your school's academic honesty policy say about using the solution? Just because it was made available doesn't necessarily make it fair game for anyone who found it. (This doesn't help redress the situation for students who didn't use the solution, or help you determine which ones did, of course.)
    – chepner
    Apr 5, 2019 at 21:04

13 Answers 13


Very simple actually. Abandon the assignment. Apologize for the error, but not for wasting people's time. Those who didn't find the solution and worked on it certainly learned something. Those who found the solution used their time otherwise and hopefully learned something else.

Mistakes happen.

If you use a large number of exercises in grading it is probably harmless to give everyone full marks. They will be happy and it won't really matter otherwise. But trying, in any way, to discriminate between various levels of "performance" on such an exercise is a minefield.

One thing to remember, however. Presumably you gave that assignment because students would be expected to learn some specific thing(s) by doing it. That may not have occurred, so you need to assure that you find some way to reinforce that lesson in some future activity.

  • 15
    I agree with this aside from probably saying that you should only give the 10% mark to anyone who completed the assignment.
    – Valorum
    Apr 5, 2019 at 16:00
  • 9
    I agree with @Valorum, only those that took the time to complete the assignment (legitimately or copying) should receive full credit, but also go over the submitted assignments, as the ones that actually did do the work on their own will benefit more from having any errors pointed out to them so that they don't make the same error/assumption on the final or later in life.
    – dmoore1181
    Apr 5, 2019 at 16:53
  • 4
    @Buffy, by those that took the time to complete the assignment, I mean turned in anything at all. Sorry for the confusion.
    – dmoore1181
    Apr 5, 2019 at 17:13
  • 11
    If you are grading on a curve, I'd highly suggest counting the assignment as 0 points, fitting the curve, then adding back 10 points to everyone. Some students may have been depending on their high performance on the assignment relative to their peers to increase their grade. If you give everyone full marks but curve afterwards, you rob them of that opportunity. By curving first, you give everyone the same grade bump, but may need to explain to your superiors why your resulting class grade distribution does not fit the expected curve.
    – MooseBoys
    Apr 5, 2019 at 18:05
  • 1
    I like @MooseBoys suggestion, because it maintains fairness across the grade distribution. If you use letter grades, another method might be: count the assignment as zero points, and grade your class out of a maximum of 90%, but calculate the delta that could have been caused by a perfect score on the project, and bump anyone within that delta below a grade cutoff up to the next grade. Whatever you do, be sure to communicate clearly to the students, so they don't feel like their grades are being arbitrarily adjusted except to their benefit Apr 5, 2019 at 23:36

Leave the solution visible. Comment on it to everyone (so it is fair). Still require everyone to turn in a solution, but cannot be verbatim copy (but they can copy the algorithm/ideas/etc).

Then, announce and include that same tool/problem solving technique in the final exam. Those who work the hardest on understanding (not just copying) will be rewarded for their effort. Those who do not, will not do as well on the final.

Naturally the final has less time to do the work, but they have already seen an explicit way to work out that type of problem. If it is too big, you could provide some pieces, and they have to add the remaining functions.

The net effect of leaking the solution will just that everyone studies it to learn the tool for their exam.

  • 17
    Thoroughly agree on leaving the solution visible. It is important that everyone has transparent access to it. I remember a particularly hard class I had where some students used a solution manual (against the rules) and I did not. Ironically, the students breaking rules with the solution manual learned a lot more than I did because I had no way to learn how to do the problems. Apr 6, 2019 at 2:21
  • 3
    I like this more than the accepted answer. The accepted answer disregards the fact that some students have wasted their time for little benefit within the course. This answer provides a way to reward them for their effort in their grades. Apr 8, 2019 at 8:47
  • 1
    @user3780968 Fair enough - it is your decision. But students who had not noticed the leaked answer will be graded behind the curve of those who did. Students who are not outgoing in their personality are less likely to know about the leak and less likely to have it shared by those who did. I expect the leak was 'copied' by someone and even though you are hiding it, will be shared around to some subset of the students - not necessarily fair.
    – Paul
    Apr 8, 2019 at 15:07
  • 1
    @user3780968 please see my other comment about how I was hurt by not having access to the answers that others had access to. I'm concerned that by hiding the answer you are making a bad situation worse; since this extends to the final you run the risk of hurting some students twice. Apr 9, 2019 at 1:10
  • 1
    @chessofnerd if the solution manual (which you weren't supposed to have) was the best learning tool in that course you took then I think it was a really poorly designed course. Hopefully I am giving them plenty of material whereby they can "learn to solve the problems". I will also walk through the solution to the assignment after the deadline has passed. Apr 9, 2019 at 21:37

I would just give them all the 10% saying that you made the solution available by accident - they will laugh and forget in 10 minutes. And, yes, been there, done that... You are not alone.

Just rely on the other 90% to give you the grading curve - nothing wrong with those I hope.

Based on one comment below, Just for clarity for some, I am not suggesting forcing the results to some arbitrary grading curve - just that the results will have a « curve » some in the highest band, others in other bands.

  • >Just rely on the other 90% to give you the grading curve. There has been no mention of a curve in the question. Apr 6, 2019 at 1:32
  • 1
    @technical_difficulty The OP says that this assignment is worth 10% and it is the end of term. So assuming the other 90% of assessments have been completed then the results will tend to form a curve - unless, highly unlikely, all the other grades are the same for each team / student... I did not suggest that the other 90% needs to be curved ie have some sort of pass/fail weighting or at least 5% of the cohort get an A or A* or equivalent.
    – Solar Mike
    Apr 6, 2019 at 5:47
  • 5
    As a student, I disagree with "they will laugh and forget". If effort went into that exercise by student A, and student B just got the same grade for free, it will feel bad for student A. Because A has now lost time that A could have used on a different lecture instead. I am not saying I disagree with the solution proposed by you. But I doubt that everybody will be happy.
    – lucidbrot
    Apr 7, 2019 at 11:06
  • 1
    @lucidbrot Having had to stand in front of 200 students to apologize for my error - and had the explanation and solution accepted by the 200, I think I have the evidence I need... Also, I have had discussions with students in private to get their opinion...
    – Solar Mike
    Apr 7, 2019 at 11:09

Instead of a programming task, make them explain in a short paper how your solution works, what advantages and disadvantages there are, what compromises you made and so on.

  • 1
    If there is enough time given, that sounds like a great idea! Students who already worked on this assignment will be able to reuse their understanding and their code samples for the writeup, so the time invested is not that lost.
    – lucidbrot
    Apr 7, 2019 at 11:07
  • 1
    I suggest improving your answer by including pushing back the deadline by a reasonable amount (which presumably you have in mind).
    – user21820
    Apr 7, 2019 at 14:29
  • thanks, but there really wasn't enough time left in the term for this. Plus, it's unfair to those who already spent significant time on the assignment without noticing the solution. Apr 8, 2019 at 0:17
  • A UML diagram as to how it works would be a good way to do it.
    – Lukali
    Apr 8, 2019 at 11:00

You might be able to measure the damage by just asking the students. Most students are honest if you're transparent with them (though some campus cultures might be different than others). Consider asking each student to attach a signed statement to their assignment saying that they cited any resources, including solution sets, that they referenced. You can explicitly mention why you're asking -- tell the students that you will not penalize anyone who saw the solutions, but you do consider it cheating if they lie about it.

If it turns out that everyone saw the solutions, or if you don't feel that the above approach would work in your situation (e.g., very large class, too many unscrupulous students), then I agree with the other answers -- don't grade for "quality." Instead, just grade for effort -- all working solutions get 10/10, regardless of whether they just barely met the requirements from the assignment or whether they are as good as your solution. That way no one who made a good effort would get a lower score than someone who used the solutions.

  • 3
    Basically, the added lesson of properly referencing sources, and how to do so, can be an additional part of the assignment. It can also include a discussion of licensing and what is acceptable to do from a licensing/copyright POV. Overall, this could be a very beneficial learning experience for the students.
    – Makyen
    Apr 5, 2019 at 16:28

You could make the leaked solution available to everyone. However if you only do this, it will be somewhat inequal to students who have already put a lot of work in on the problem, compared to students who have not done much/any work on the assignment yet. That is somewhat balanced by the intrinsic unmeasurable natural usefulness of having worked on assignments, however.

To iron out that inequality, you could also modify the assignment slightly so that it now involves a slight (not major, or else you would be unfairly increasing the expected work load of the class) twist, that will require them to both implement the leaked solution, and then solve some additional problem on top of it that requires understanding the leaked solution and expanding slightly upon it. The extra work should be designed to be more than balanced by the reduced work resulting from having the original solution provided. (Weight the assignment a bit less since most of the assignment solution was provided.)

The advantage of adding a twist designed that way, is that the students still need to do the work and understand the original assignment, and get the deeper experience of building upon it (which is of course a good sort of experience for programming problems).

  • 2
    What about students who already finished the assignment as originally described and were counting on not spending any more time on it so they can compete other tasks?
    – Kat
    Apr 6, 2019 at 14:28
  • 2
    That's why I said "not major" - those students, having done the full work themselves rather than being given the answer, will be in the best position to do the additional bit of work (since not only have they done the main work, they did it themselves and so will tend to have the best familiarity with it). And while it will be a bit more work, it's much less of a disadvantage for them this way than if the assignment they did in full were disregarded. (And if a student made an earnest complaint along these lines, I'd probably waive the added requirement for them.)
    – Dronz
    Apr 6, 2019 at 18:48

Ask whoever is responsible for teaching in your department for guidance. It is likely that your university has a policy in place for these sorts of events, and there's no way for strangers on the internet to know what those are.

  • I'd say that the role of education in academia is to teach people how to solve problems themselves. This applies even more so to people who are teaching in academia. So, a piece of advice stating that "instead of doing something you find appropriate to correct your mistake, go and fetch some canned legal solution" deserves a downnote.
    – Gábor
    Apr 7, 2019 at 12:40
  • Sure, learning for yourself is important, but so is keeping your job, and violating your workplace’s policies is a good way to fail in that goal.
    – nick012000
    Apr 7, 2019 at 20:28

I would take the answers away and give everyone the 10%, but sneak a question or two from the assignment into the final (if you have a final) so that the people who put the effort in and learned it properly would still get rewarded


One option would be to change the objective of the assignment. Instead of implementing a solution from scratch, improve the one that has been given.

Of course you may have to define what kind of improvements are going to get good grades (just changing the color scheme of the game probably isn't going to be worth much, unless the new scheme gives better user feedback of the game status, or whatever), and may sure the new task is consistent with the learning objectives of the original assignment. This idea would probably be more useful at an advanced level than for complete beginners.


Not ideal, but you could give an alternative criterion: explain the working example source to satisfaction (works better if you don't have to change the assignment for everyone, but can rather ascertain who discovered the source; although it will surely leak to others if some have already discovered it), so that it is equivalent to having come up with the solution themselves. As I said, not ideal, but you seem to be in a pickle, so I thought I'd suggest it anyway.


one idea:

Announce the error. Post the source code. Extend the deadline.

The assignment is now to annotate your code full, detailed explanation of how it works and why. Provide office hours for students to bring in what they have completed, and try to help them understand your implementation in terms of (what there is of) theirs.

This way, students who have put in a lot of work up to this point can still benefit indirectly. But still, probably err on the side of forgiveness with the grading.


Firstly I'd make all the students aware of your error. The students will do one of two things.

  1. They'll copy the solution verbatim which means they at least looked at your provided link, either before (good) or after (not so good, but at least they looked) you published your mistake.


  1. They'll either write it themselves entirely without your source code, or they'll rewrite your source code enough that it's not easily recognisable as your source code.

Now, you could penalise the first group if they don't give recognition that it's copied from the source you (accidently) provided, but depending on the wording of the assignment (if it said find a way to do X) then they may of technically done nothing 'wrong' by copying your source anyway. Much of the open source's world's code is simply copied from elsewhere, sometimes sadly without reference to where it's copied from.

The second group have at least put some effort into either writing the original code and then referring to your solution, or re-writing your code enough that it no longer looks like your code, hopefully learning something in the process.

What maybe interesting, is if you do this disclosure in a sensible fashion (i.e. only in the lecture, go to the website and show students 'Look, if you click here, you can see my solution'.) Only students paying attention, coming to the lecture will benefit directly from you disclosing your mistake. I may of had lecturers do things like this, such as displaying via a overhead projector (rather than the shared lecture slides) certain questions which may of been very like those questions you'd find in the final exams.


Plagiarism is always something you should be worrying about. Especially for an undergraduate class like this where there are plenty of solutions online for building a tictactoe game, or even building it in processing. If people wanted to copy, they would likely have found someone else's solution online due to yours being hidden.

If you are worried that someone may copy of it, the simplest way to address the problem is to tell the class what happened and to remind them that copying your solution is plagiarism.

  • 1
    For programming assignments such as this, sometimes it is hard to come up with a new solution - but once you've seen and understood a working solution, the problem becomes much easier (even if you're not copying anything). It is certainly difficult to argue that students who saw it, even if briefly and without malicious intent, didn't have an unfair advantage.
    – osuka_
    Apr 5, 2019 at 19:24
  • 1
    It is unfair because the students who accessed it before it was pulled saw the tailored solution to the problem (i.e., the exact solution the instructor was expecting, given it is their own implementation). Every single student in the class had access to the internet; only the ones who noticed, in time, that the solution was available on the test website had access to that source code.
    – osuka_
    Apr 6, 2019 at 2:14
  • 3
    I disagree with this answer. If I were in this class, I might think the posted solution was intended to to help the students with a tough assignment. I'm never had a teacher before who required my to cite their lecture notes or slides when using those to get help on a homework problem. I don't think students should be penalized for this. Also, you're ignoring the bigger problem, that some of students got help from this posted solution while others didn't, as osuka_ mentioned. This is not like using external resources, as the amount of help they got was based on which link they used.
    – Patrick M
    Apr 6, 2019 at 18:06
  • 2
    But you can certainly use the way how to solve the problem. In mathematics it is often about realizing the right substitution or just the right sequance of steps to be done. You don't have to copy anything, but once you have seen the right steps it is much easier just to reproduce them. In my studieswhen I went through the official exercise book and then the exam contains problems taken from that book only with small adjusments, it was no plagiarism to use the solution procedures I learned in that book. I did not have to remember every letter, but knowing the procedure helps tremendously. Apr 6, 2019 at 22:21
  • 1
    @Anon I spent hours putting together a variation of existing online games, and they coded a "vanilla" version during a lab. The assignment was only about specific parts of the solution and for one in particular, it would be really hard to come up with a (significantly) different solution to mine. Especially for 1st year students. Apr 8, 2019 at 0:24

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .