63

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?

Bryan Krause
  • 114,149
  • 27
  • 331
  • 420
user3780968
  • 1,420
  • 1
  • 10
  • 13
  • 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. – A Simple Algorithm Apr 05 '19 at 16:53
  • 36
    @ASimpleAlgorithm "hopefully you are curving the grade" I am not convinced grading on a curve is necessarily better. – Davidmh Apr 05 '19 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. – David Richerby Apr 05 '19 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. – A Simple Algorithm Apr 05 '19 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 05 '19 at 21:04
  • 1
    Reminds me of an exam question in my computer science finals (set by Steve Bourne no less, IIRC) where we were asked to explain what was wrong with a supplied program, but they published the correct version by mistake. Any student saying "there is nothing wrong with this program" got full marks. – Michael Kay Apr 06 '19 at 20:41
  • 1
    Just making sure, is this the Java or the JavaScript version of OpenProcessing? Because if this is the JS version, the fact that there isn't a convenient "show source code" button on the website itself doesn't mean anything; you can just as easily open the web inspector and see the source that way. – AJMansfield Apr 06 '19 at 22:29
  • @AJMansfield it's the java version, but either way the code is visible in the web inspector. However, for a first-year introductory programming course I figured it was safe enough... – user3780968 Apr 08 '19 at 00:13
  • there are lots of assignment questions on SO, which are generally not much better (the source of code does effectively not make too much of a difference). sometimes even two students asking the same question. –  Apr 08 '19 at 00:15
  • @David Richerby that's perhaps good advice. But I think having an open discussion about what's fair in this sort of situation is certainly worthwhile. I'm quite happy with the overall quality of this discussion. – user3780968 Apr 08 '19 at 00:27
  • @user3780968 This is not a discussion forum. – David Richerby Apr 08 '19 at 08:41

13 Answers13

119

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.

Buffy
  • 363,966
  • 84
  • 956
  • 1,406
  • 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 05 '19 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 05 '19 at 16:53
  • @dmoore1181, do you really have a way to know who did what? Or would you just guess and grade accordingly. I agree, of course, that if they did the work they probably learned the appropriate lessons, but it seems impossible to judge that now. – Buffy Apr 05 '19 at 17:03
  • 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 05 '19 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 05 '19 at 18:05
  • Don't completely abandon the project. If your syllabus had this on there you could have some students that are expecting to use this graded assignment to bring their grade in line with what they want. Also, if your school has an honor code then you should be able to tell those who copy pasta. – NDEthos Apr 05 '19 at 21:12
  • 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 – MyStackRunnethOver Apr 05 '19 at 23:36
  • I regularly grade on a curve, but students can earn "extra credit" points that I add only after computing letter-grade cutoffs. My standard response to mistakes in assignments (prematurely released solutions, major errors in the official solutions or grading rubrics, etc.) is to make the entire assignment extra credit and give everyone full (extra credit) points. – JeffE Apr 06 '19 at 07:53
  • Beware grading on a curve strictly within a single class. The typical class size makes the sample size to small to expect a normal curve. It's far better to curve with data from other classes to keep the sample size up. But things like having an assignment go poof for one class can skew that. – candied_orange Apr 07 '19 at 04:09
  • I would add that this answer doesn't give a time scale at all for when this should be done - which is quite important. I would argue (along with others judging by the comments) that this should all be done after the assignment deadline is complete. By not telling people they can get 10% of the grade by putting any rubbish in, I would just tell students that you're "aware of issues, but the assignment is still required"; and then afterwards "sorry for the error, full grades will be awarded for those who completed the assignment". – UKMonkey Apr 08 '19 at 12:56
  • @UKMonkey, that is dangerously close to secret grading criteria, which is unethical. – Buffy Apr 08 '19 at 13:03
  • @Buffy Not really. It's more like an attendance record, which you HAVE been told will impact 10% of your grade. – UKMonkey Apr 08 '19 at 13:06
  • For how many assignments are the solutions available somewhere (maybe on StackOverflow or other similar sites), but you just don't know it? For how many assignments are the solutions available to some but not all of the students (e.g. in a fraternity/sorority filing cabinet)? This answer is not scalable and impossible to apply consistently, because you don't & can't know all the cases where the preconditions for it exist. Paul's answer is much better here. – WBT Apr 22 '19 at 15:38
  • Hmmm, @WBT, if I created the assignment and haven't used it previously, how can the answer be "out there". Of course when you use recycled questions have to assume the answers are available. Why do you assume that is the case here? – Buffy Apr 22 '19 at 16:27
  • @Buffy I don't necessarily assume that the answer is always for sure out there, but you don't know, even if it's a new assignment you created for that occasion. Within minutes of you giving the assignment, it might have been posted to a forum like StackOverflow and a solution might have been posted very soon thereafter. Also, other professors might have independently but previously created substantively similar assignments/problems which might be publicly posted somewhere, with solution. Even if what's out there is not a 100.00% match, it might get someone most of the way to done. – WBT Apr 22 '19 at 16:57
86

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.

Paul
  • 813
  • 5
  • 6
  • 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. – chessofnerd Apr 06 '19 at 02:21
  • @Paul I chose not to leave the solution visible, because I believe (rightly or wrongly) that those who don't see the solution and spend time trying to figure it out) will benefit the most from this assignment. Of course, I mean "benefit" in terms of learning; and my main concern is that there is no undue benefit in terms of grades to the others. They will then all get the solution after the deadline and hopefully study it when preparing the final, which is one week after that. – user3780968 Apr 08 '19 at 00:32
  • 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. – Mateen Ulhaq Apr 08 '19 at 08: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 08 '19 at 15:07
  • @Paul I do think that I will have to give everyone full marks. The fact of hiding or showing and publicizing the solution is a separate issue. – user3780968 Apr 08 '19 at 19:12
  • 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. – chessofnerd Apr 09 '19 at 01: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. – user3780968 Apr 09 '19 at 21:37
  • @user3780968, yes, it was a poor course ;) I think walking over the solution and making it available after wards is a good idea. Best of luck! – chessofnerd Apr 10 '19 at 02:42
13

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.

Solar Mike
  • 28,097
  • 7
  • 60
  • 100
  • Just rely on the other 90% to give you the grading curve. There has been no mention of a curve in the question.

    – technical_difficulty Apr 06 '19 at 01: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 06 '19 at 05: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 07 '19 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 07 '19 at 11:09
12

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.

d-b
  • 246
  • 1
  • 10
  • 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 07 '19 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 07 '19 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. – user3780968 Apr 08 '19 at 00:17
  • A UML diagram as to how it works would be a good way to do it. – Lukali Apr 08 '19 at 11:00
11

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.

cag51
  • 67,924
  • 25
  • 181
  • 247
  • 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 05 '19 at 16:28
10

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).

Dronz
  • 3,013
  • 1
  • 16
  • 15
  • 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 06 '19 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 06 '19 at 18:48
4

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.

nick012000
  • 9,644
  • 2
  • 24
  • 43
  • 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 07 '19 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 07 '19 at 20:28
3

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

user182808
  • 31
  • 1
2

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.

alephzero
  • 4,242
  • 15
  • 19
1

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.

SolaGratia
  • 111
  • 1
1

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.

l.k
  • 11
  • 1
0

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.

Or

  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.

-2

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.

Anon
  • 259
  • 1
  • 2
  • 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 05 '19 at 19:24
  • It is not an unfair advantage. Any student is able to use the internet or read a book to research good ways to approach the problem. Using the internet, books, tutors, etc outside of class are a great way to supplement your learning. Just because some choose to do more outside of class, does not make it unfair. – Anon Apr 06 '19 at 01:29
  • 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 06 '19 at 02:14
  • I'm not sure that's plagiarism. The students may have cited the solution; the problem remains the same. – henning Apr 06 '19 at 07:24
  • 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 06 '19 at 18:06
  • Henning, programming assignments typically have some sort of requirement that the work must be your own. You can't just submit a solution you found online. – Anon Apr 06 '19 at 19:02
  • 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. – Vladimir F Героям слава Apr 06 '19 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. – user3780968 Apr 08 '19 at 00:24