1. 9
  1. 17

    Proposal 3: Call a truce on prosecuting plagiarism on programming assignments

    No. Absolutely not. Permitting plagiarism is so against my core values that I can’t even think about any supposed utilitarian benefits. Plagiarism is bad, full stop.

    The body of that point motte-and-baileys it by using a much looser definition of plagiarism, effectively including almost all cheating. That still deeply disturbs me, but I can force myself to have mental dissonance with “don’t blame people, blame systems”. But plagiarism? Never.

    1. 6

      the worst thing is, the mindset that plagiarism is ok is already present in other disciplines:

      • i know of cases where the tutor was reprimanded for giving bad grades (not even a don’t pass!), because it is supposedly “unjust” to give bad grades for coping textbooks verbatim at a university.
      • the grade inflation in that discipline is amazing, the absolutely worst one can get is ~75%.

      what really amazes me, is that the students are somehow ok with this, because grades are a bad system anyway.

      however one can plagiarize have grade inflation and than think that they’ll be good at their profession is beyond me. i fear that capitalism pushes this kind of behavior, even subconsciously and in social sciences which are populated by left leaning people.

      if anything there should be a push that university education isn’t a must and that other jobs are as worthy, in pay and in recognition.

      1. 3

        Permitting plagiarism is so against my core values that I can’t even think about any supposed utilitarian benefits

        That’s a pretty strong statement. Especially in CS. I feel like as soon as I got an actual programming job everyone was like “er.. why are your writing that yourself, just copy the code from here”.

        Maybe if we only prosecuted plagiarism of code that was closed license it might be ok, but teaching CS students to reinvent the wheel seems less productive than teaching them how to effectively utilise existing code to solve a problem.

        Perhaps we mean different things by plagiarism?

        1. 3

          Copying a small snippet of boilerplate is much fuzzier territory, more akin to copying a math equation. Is it their original work if everybody, working independently, would get the same result?

          Copying a lot of code, or someone else’s research, and not giving them credit is plagiarism. Plagiarism is passing someone else’s hard work, research, and words off as your own. That’s inexcusable.

          1. 1

            So it would be fine for someone to copy/paste a stackoverflow answer or a chunk of github code as long as they write a comment with a link to the original code? That is how I do it if its more than a line or two. Obviously you have to make sure the licenses are compatible.

            1. 3

              I’d argue that it’s not only fine, but it’s Proper. There shouldn’t be any stigma to using other people’s work as long as you acknowledge it’s their work (licenses permitting).

              (To elaborate on that, if the code is the best solution to your problem it’s better to use it and cite it than write your own solution from scratch just to avoid attribution.)

        2. 2

          If a suggestion to permit plagiarism is in-line with the ACM Code of Ethics, I’m quite happy not following it.

          I do like the author’s additional explanation on how to approach it though:

          If you detect plagiarism, contact the student. Tell them what you found. Ask them what happened. Ask how they’re doing. Are they getting lost in the class? Use this as an opportunity to explain what illicit collaboration is. Use this as an opportunity to figure out how you’re teaching and what’s going on in the lives of your students.

          1. 2

            In my experience programming is a team sport. If students are not collaborating on assignments they are not learning how to talk about software design questions with peers or how to take and receive criticism which are by far the most valuable skills a SWE can have.

            1. 15

              Collaborating isn’t plagiarism. Plagiarism is passing someone else’s work off as your own.

              1. 2

                I’m worried about students not collaborating because they fear that they’ll cross that line. I have talked to students who won’t collaborate because they fear accidentally doing something disallowed.

                The most important thing students need to learn is how to collaborate and second is how to learn. I think it is better to let some cheating go by (which just hurts the cheater in the long run) than to prevent earnest students from learning the most important skills.

          2. 7

            Use research-based methods that advantage the least prepared students

            So we should reward lack of preparation?

            Make the highest grades achievable by all students

            If everybody has the highest grade, there’s no point having a grade. It basically means the entire data range is clipped.

            Call a truce on prosecuting plagiarism on programming assignments

            So cheating is okay now too?

            In order to maintain the belief that all are equal, despite all evidence, we need to give up on all our values and integrity? People truly have lost their minds.

            1. 5

              If everybody has the highest grade, there’s no point having a grade. It basically means the entire data range is clipped.

              Ideally, it means everyone learned the material up to the highest standard. If that’s honestly what happened, it’s impossible to justify not giving everyone the highest grade.

              1. 3

                If that is true then that’s fine. But I don’t think in the field, you would have a situation where everybody has achieved to the highest standard. And what is in actual practice is that some students are really bad, and the elimination of grading isn’t meant to remove a superfluous and pointless system, but a useful system that is honest enough to point out that some people have not achieved.

                1. 1

                  It comes down to what’s on the syllabus: In order to earn a specific grade, you must demonstrate competence in this list of topics. If every student has done that for the list of topics required for an A, then not giving some of them As is a violation of the syllabus, which means the teacher is randomly violating the course’s implied contract with some of their students. If the course needs to be redesigned so fewer students get an A, that’s up to the professors to do it honestly, as opposed to picking names out of a hat and saying that these students fail even though they’re at the same level as the ones who pass.

                  1. 3

                    saying that these students fail even though they’re at the same level as the ones who pass.

                    Does this happen?

              2. 4

                If everybody has the highest grade, there’s no point having a grade. It basically means the entire data range is clipped.

                I went to a school where students were not graded at all. I am now a professional programmer with a well paid job. An education professional is telling you that the way we are currently grading is counter productive. Your response is ‘but it would be different in the following way’. Can you elaborate on why this is a problem?

                1. 3

                  A grading system is used to rank people. So a 1,2,3,4 would mean that 1 is more capable than 2 and 2 is more than 3 … If everybody is a 1, then you don’t know which one is more capable.

                  I think it is a matter of fact that some people are better at some things than others. And grading is a feedback both to the person himself, and the community as a whole, of his capability and thus what role would give him the best comparative advantage.

                  1. 2

                    It’s much harder to tell where your weaknesses are relative to your competitors if you’re all getting top grades. My worry is that many weaker students will graduate without the skills they need in the market, and not even know it until too late. This is after four years and a large loan that cannot be discharged easily.

                    To top it off, most(?) employers don’t look at grades anyway, so what are we achieving by this? Certainly nobody has ever asked for my grades since I graduated in the early 2000s, because even back then the market was compensating for grade inflation.

                    I find this argument for clipping grades is putting a positive spin on what is effectively lying to the student while taking their money.

                    1. 3

                      It’s much harder to tell where your weaknesses are relative to your competitors if you’re all getting top grades.

                      Is that important? Either I can do the work or I can’t there will always be people better or worse than me.

                      My worry is that many weaker students will graduate without the skills they need in the market, and not even know it until too late. This is after four years and a large loan that cannot be discharged easily.

                      This happens every day under the current system. Do you have any suggestions as to how we could resolve or minimise this problem? Free education solves the problem of the loan but the issue of graduating with insufficient skills is a much more difficult one.

                      1. 2

                        Is that important?

                        You’re competing against a distribution of abilities, both when seeking and performing work.

                        Free education solves the problem of the loan but the issue of graduating with insufficient skills is a much more difficult one.

                        Agreed.

                2. 6

                  The question is: which is worse, to bore and give easy A’s to the most privileged and most prepared students, or to fail (or discourage to the point that they drop) the students with less privilege and the least computing background? … Helping the students with less computing background succeed makes a much bigger difference for society long-term than does keeping entertained the most privileged students.

                  I imagine the author intended this as a rhetorical question, but - if they must choose, I’d much rather an institute of higher education chose to stretch and challenge its top students, than let them coast while focusing on those struggling to achieve.

                  (Personally, I don’t think these things need be at odds. As someone whose children attend a school that is quite capable of doing both (in some cases, with the same students in different subjects) I’ve seen evidence that they are compatible.)

                  1. 1

                    If you are forced to make such a decision, you could argue that the top students are better equipped for independent learning, so your best option may be to prepare ‘extension tasks’ that those students can do with minimal teacher input, allowing the teacher to devote more time to those who are struggling.

                    Depending how well this is done, you might consider it to be “focussing on the less privileged students”, or you might consider it to be “doing both”.

                    1. 1

                      That could certainly work, especially for older children and especially University students.

                      But it’s not at all the point the author was trying to make:

                      The question is: which is worse, to bore and give easy A’s to the most privileged and most prepared students, or to fail (or discourage to the point that they drop) the students with less privilege and the least computing background?

                      The author is pretty clearly stating the opposite position to mine. (Although I presume that, like me, he’d be in favour of a solution like your proposal that serves the needs of students at both ends of the spectrum).

                      1. 1

                        But it’s not at all the point the author was trying to make:

                        It could be very close to what the author proposes: the only difference is that the student who has completed the original tasks with ease is given some sort of task or suggestion before being ignored for the rest of the lesson. In terms of the spectrum, what I described is still very close to the same end of the spectrum as the author’s. What I would suggest this demonstrates is that while you would favour the other end of the spectrum, if we were to find a compromise which everyone can accept, it is still likely to involve focussing more of the teacher’s time on the struggling pupils.

                        I think ultimately this, along with the question of whether grades should be achievable by everyone, is a reflection of a more fundamental question of what is this education is aiming to achieve:

                        • To ensure that the privileged achieve the best they’re capable of
                        • To ensure that everyone has a bare minimum of skills and knowledge

                        Ideally, you want both, but an underfunded school in a deprived area will probably have to prioritise one or the other.

                        Personally, I think that focussing on the top students is actually quite dangerous. People develop at different speeds, so it’s all to easy for a student to get “left behind” because they are struggling early on. Once you start to ignore them, or expect them to perform badly, it becomes a self-fulfilling prophecy.

                        1. 3

                          To ensure that the privileged achieve the best they’re capable of

                          To ensure that everyone has a bare minimum of skills and knowledge

                          You’re begging the question in the first point. You (and presumably the author) attribute ‘top student’ status to privilege; I (and others) don’t.

                          I’d phrase the question as:

                          To ensure that the top students achieve the best they’re capable of

                          To ensure that everyone has a bare minimum of skills and knowledge

                          In which case I’d say that in the case of Universities, at least - institutions of higher learning - the former is significantly more important.

                          1. 4

                            Given the nature of software being fundamentally about creating artifacts which can be reproduced almost for free, it seems to me that the objective of creating a few really good programmers instead of ensuring a population of completely okay programmers is reasonable.

                            There is maybe no field where this is more obvious in practice when you compare teams of “okay” programmers vs. the folks who wrote software that changed the world.

                            1. 1

                              You’re begging the question in the first point. You (and presumably the author) attribute ‘top student’ status to privilege; I (and others) don’t.

                              I did indeed take the term “privilege” from the original article. I do not attribute ‘top student’ status to privilege, but I believe that privilege is a significant contributing factor.

                          2. 1

                            From my reading he’s mostly focused on University students.

                      2. 4

                        A mixed-up code problem lets students show what they understand, even if they can’t make the code work, which makes it an effective finer-grained assessment tool.

                        I hadn’t heard of these exercises, so looked them up. As far as I can tell, you get a working program, scramble the lines, and have the student reassemble them in working order.

                        Can someone who has experienced these, either as a teacher or a student, comment further? Because to my jaded eye, this looks like how you try to assess programmers who can’t, you know, actually program.

                        1. 2

                          This is discussed in teachtogether.tech, and the research shows it’s pretty effective. They were talking about it in the context of a battery of other exercise types, though.

                        2. 6

                          The calls to “Defund the Police” that are common at Black Lives Matter protests are (mostly) not about getting rid of the police.

                          Why do I get the impression this would come as a rude awakening to the people calling for it the loudest?

                          If you detect plagiarism, contact the student. Tell them what you found. Ask them what happened. Ask how they’re doing. Are they getting lost in the class? Use this as an opportunity to explain what illicit collaboration is. Use this as an opportunity to figure out how you’re teaching and what’s going on in the lives of your students.

                          The problem is that this is pitched to college-level teachers, who don’t have that kind of relationship with their students. College professors are not in loco parentis in any sense, haven’t been since the 1960s or 1970s, and, if they have any brains whatsoever, don’t want to be. In college, students are adults and expect to be treated as such, which means they’re not interested in strangers trying to get into their lives.

                          I do agree with this to some extent: I think the first strike should be relatively lenient, certainly, because it takes some time to figure out what exactly the line is with each professor and institution (for example, don’t pretend it’s possible to plagiarize Shellsort) but beyond that, plagiarism is academic dishonesty and must not be tolerated, for utilitarian reasons and for moral reasons.

                          1. 3

                            Computer programming is professional education. If you water it down and pass people who don’t know how to write and understand code, the only effects will be that those people will not be able to keep jobs and companies will no longer hire people from your institution.

                            You can already see this in the A.A.S. degrees from community colleges, which are (correctly) considered meaningless because the quality of instruction is so bad.

                            I’m all for helping people get involved in the field, but why can’t we do it by improving education and opportunity in childhood, where there’s a chance to steer the boat?

                            1. 3

                              Throughout all the comments on this page the recurring theme appears to be ‘If we change the way we teach CS, it will be worse’.

                              I think that this is a pretty big claim. Everywhere I look in the industry I see bad coders with bad habits writing messy, unreliable and unsafe code. The reason I like lobsters is because it is a tiny haven of well educated professionals who care about doing things properly. Despite the existence of such individuals I think the current state of CS education world-wide is far from perfect.

                              We are a privileged few for whom the education system worked well. That also means that by the very nature of this forum, our opinions are not statistically significant. We are all outliers. If one wants to put forward a real argument against changing the status quo, one should be able to back it up with statistics that cover the whole population.

                              I am not supporting this article or saying that its conclusions are correct. But it is full of references to studies, and to opinions from other education professionals and researchers. The comments here all basically translate to ‘Well in my opinion…’ so unless someone can come up with something more scientific I am going to have to trust the article by default, and reject all the opinions here.

                              1. 2

                                On the contrary: I haven’t been through the system as a student, except for an intro course I took for an easy A in college (admittedly) and a useful graduate-level database course I took later as “continuing education.” I have an English degree. I have taught at the community college level.

                                The system as it stands is broken. It is almost impossible for someone to come into it with no knowledge and walk out as a capable programmer. Given what I saw from the “other side” of the education system, I am a firm believer in the “Sheep and Goats” issue (which a badly written paper–now retracted–made famous), but just think that research in that area is not complete or satisfactory enough yet. The core premise, however, is real. (The retraction of that paper is interesting reading and has further links.)

                                The brokenness, however, is not a reason to simply throw up our hands and say “we can’t accurately assess anyone, because people who can write code are privileged.” What would that imply about the entire premise of education?

                                1. 1

                                  The brokenness, however, is not a reason to simply throw up our hands and say “we can’t accurately assess anyone

                                  No one said that.The people throwing up their hands are the commenters here. The article is the product of a lot of hard work and study into how we can make the education system, including assessments, more effective. It doesn’t even say assessment is broken, it says the top grades should be accessible to everyone and suggests some relatively minor modifications. Which to me is a no-brainer and I can’t understand why people got upset about it.

                                  Also the original source for the sheep and the goats thing, basically God decided to judge everyone and he likes sheep better than goats. Quite an appropriate analogy really.

                                  1. 2

                                    How is it not throwing up your hands to say that you should give assessments that ignore core skills (like not using pseudocode), don’t test the actual production of code (like scrambled code tests), or we should compromise one of the core tenets of education (by not punishing plagiarism)?

                                    My takeaway from the sheep and goats problem, which I’ve seen occur as a teacher, a tutor, and even as a senior mentor to working programmers, isn’t that “God judged everyone,” but that it’s possible to get through the education system with serious gaps in logical and critical thought that must be taught earlier in the process. You can’t take someone who hasn’t internalized the basic rules of logic and teach them to program (or to be a civil engineer, or to practice law effectively, and so on).

                                    We need to focus on making foundational education more effective, comprehensive, and equitable. We also need to fix higher education so that you can actually learn to program from scratch within it. These are different issues. The article’s proposals fix neither.

                                    1. 1

                                      The article’s proposals fix neither.

                                      As I mentioned in another comment, the article’s proposals claim to be working on fixing the first one. You are basically just saying “NO!”. Do you have any research to back up your claims? I have never used pseudocode in my life but if you can show me that I the majority of programmers do and that it is crucial to doing their work I will trust hard evidence. Do you have studies where plagiarism was not punished with comprehensively measured education outcomes? Do you have some kind of statistical studies of the efficacy of scrambled code tests?

                                      I am not claiming the article answers all the questions surrounding education reform, far from it. But so far your response has answered nothing for me.

                                      Also this thread is getting a bit old and dead now, if you want to continue this discussion in depth please send me a PM. Education reform is a topic that is very important to me. As it seems important to you as well, we could exchange some ideas.

                                2. 1

                                  The reason I like lobsters is because it is a tiny haven of well educated professionals who care about doing things properly. Despite the existence of such individuals I think the current state of CS education world-wide is far from perfect.

                                  What makes you think that Lobsters is a haven of specifically well-educated professionals? Nothing about asking for an invite to Lobsters references formal educational credentials or a professional resume in any way.

                                  Realistically being interested in talking about computing enough to join this sort of forum does correlate with having formal CS education and/or being employed as a programmer, and so does being willing to submit to Lobsters’ community norms. But there’s absolutely nothing stopping non-professionals with minimal formal CS education from joining this site and contributing.

                                  1. 2

                                    What makes you think that Lobsters is a haven of specifically well-educated professionals?

                                    The comments and the articles.

                                    But perhaps I phrased that badly. I am far less concerned about people’s education and profession than about people caring about doing things properly. I have met plenty of non-programmers and people with relatively little education that have that attitude.

                                3. 2

                                  I don’t see the software industry as a meritocracy. For every “10x programmer” there must be hundreds if not thousands of people involved in mining, manufacturing, assembly, transportation, etc. that make their jobs possible. I only deserve tens or hundreds of thousands of dollars each year inasmuch as the people who built my computer deserve to struggle to access food and housing. As a software developer, my work is inextricably tied to theirs.

                                  So, back to the article: I agree with the premise that we have a collective responsibility to fight for equality within our industry. I like all three ideas, honestly. I don’t think it will come at the expense of being able to accurately measure someone’s ability to do a job. Another way of saying this is: If you currently rely on someone’s grades to determine if they’ll be good at their job, you’re probably already losing a lot of great candidates and furthering inequality. Many people have accepted this as the cost of doing business, but that shouldn’t be the starting point for building a great education system.