Slashdot Mirror


Academic Dishonesty-When Is It REALLY Cheating?

ConcernedStudent asks: "Recently, 10 of my fellow classmates have been brought up on academic dishonesty charges in a senior level engineering class concerning a recent programming project. Granted, some copied other code verbatim and deserve to be caught, probably moreso for just being that stupid. However, there are those who have been implicated because they referenced code of somewhat dissimilar projects from previous semesters at some point during their design process. As long as the old code was not passed off as their own work for a grade and does not appear in the final draft of the code, is this really considered dishonest? How is this different than referencing a book on the language or some other "legitimate" source? At what point does referencing outside sources become dishonest? Is it just to review historical copies of code (using JFS) which were not submitted for grading to see if questionable code exists in these intermedite draft copies of the program? As this is a somewhat grey area, hopefully someone out there has comments which may help to clarify some of the uncertainty."

16 of 120 comments (clear)

  1. .....but, Science is Reproducible by RobertFisher · · Score: 3

    Blatant cheating is rather unheard of in science circles in academia; important results are almost always confirmed with other expirments or calculations, and given that an erroneous result is enough to sink one's academic reputation, there is very little incentive to publish fradulent results. Slopiness and carelessness (like any other endeavor) are however common, and scientists with poor research quality often suffer damaged reputations as well.

    Although the author is a bit vague on details, the example sounds very similar to the David Baltimore Case, which was the subject of much investigation and a recent book by noted science historian Daniel Kevles (author of science history classic "The Physicists"). Baltimore himself is a very well known scientist (he won the Nobel prize in medicine in 1975, and is currently the President of Caltech), which accounts for the attention the case received.

    However, there is a key difference between the Baltimore case and that described by the author. A scientist named O'Toole trying to reproduce their experiments failed, and accused Baltimore and his student of fraud, with very little evidence to back up the claim. Baltimore and his graduate student were exhonerated, and most people believe it was O'Toole's race to brand Baltimore which lies at the root of the problem.

    Baltimore may have read the papers in great detail (as the peer reviewers of the published publications certainly did), but the truth of the matter is that without having redone the experiment oneself, no one can spot every subtle flaw in another's work. That is a fact of life, and is a key reason why scientific results must be reproducible. In the end, quite unlike the teetering house of cards which the author alludes to, the scientific enterpise has been enormusly successful across the board, precisely because it builds on solid foundations which are checked and tested carefully.

    --
    Science, like Nature, must also be tamed, with a view turned towards its preservation.
  2. Catching Cheaters is Easy by Chris+Colohan · · Score: 3

    I have TAed a couple of courses here at CMU, and I have to let you know that on coding assignments catching cheaters is really easy. Why? There are two reasons:

    1. If someone cheats, it is either because they do not understand the assignment (and hence want to borrow someone elses work), or because they do not have time to do the assignment (and hence understand it). If you are clueless or short on time then you do not have the time or ability to cheat well. If you do a poor job at cheating, it is easy to catch you.
    2. Code is machine readable. This sounds obvious, right? But if it is machine readable, it means that machines can do the tedious work of comparing solutions to each other. And the solutions do not have to be compared as handed in -- you can run the code through a compiler, and have the compiler give you statistics about the code. Compare those statistics, and compute a distance vector between each handin. Any handins that are close to eachother (on whatever statistic you happen to be measuring) compare by hand. Or you can compare the topology of the parse trees. Etc. Etc. Tools exist to do all of these things (and much more), and if a professor or TA suspects cheating then they will use them. I have known instructors who keep collections of previous years assignment handins specifically as fodder for these tools.

    The typical way of cheating on a programming assignment is to copy someone elses solution and modify it. Perhaps you will rename the variables, change the comments, rewrite a function or two. These changes are on the surface only, and do not change the functional decomposition you used, the algorithms you chose -- in short, these changes do not change the aspects that a good grader is actually concentrating on. (And a good cheating detection tool ignores comments, variable names, etc.) Often you will find that the only person you fool is yourself.

    So what is the end result? It is often easier to do the assignment without cheating than it is to cheat and get away with it.

  3. Universties get some blame to by OmegaDan · · Score: 3

    I've been a student for quite some time -- and I'll tell you exactly what causes cheating at aleast one university ... the quarter system

    My university (www.ucr.edu) is on the quarter system that means *10 weeks* for a course (10 weeks instruction, 1 week finals, one week break). They teach courses they have no business teaching in 10 weeks, ie: Compiler design, 10 week course, final project? a compiler! EE120b -- logic design -- final project? a cpu! all in 10 weeks ... only the extrodinary students get thru it, which is why our graduation rate is 30%.

    However, all courses are curved -- which means you have to compete on a curve, with accelerated curiculium, with students who are cheating!

    Now if you think about how the standard curve is calculated, you find the average score, then the std deviation and set your "grade" levels. BY DEFINITION of the curve, your failing the lowest x% of your students ... no professor I've ever met would let a curve ride higher then the 60D, 70C, 80B, 90A. But with the acelerated coursework, its routine for good marks like A's and B's to hover in the 30 - 60% range, because students can't possibly keep up with the courses. I recall once in physics getting a 26 out of 100 on a midterm and having a very solid C. The worst thing I ever heard of was an upper level chemistry course having an average score of 1, yes 1 point.

    The awfull thing about this is, if some students aren't failing completley, then none of the class can pass!

    So I argue here that cheating in large quantities is infact encouraged by some university policies, and is usually an indicator something is terribly wrong with the academics of the college.

  4. non-collaboration policies are really dumb by StandardDeviant · · Score: 3

    I've studied CS in a collegiate environment (right now I'm a computational chemistry major, due to graduate RSN). I've also written code for a living in a corporate environment, working on some reasonably large projects.

    Non-collaboration policies always struck me as really dumb becuase in the "real" world you don't take a dump without a) a plan, and b) at least one partner, much less write a line of code. Yes, I can see the educational value of learning to do something from scratch by yourself, but I also very strongly feel that collaboration should be an integral part of the learning experience, not a forbidden zone. The most frequent complaint I've heard about fresh CS/eng graduates is that they don't know how to work in a team, because their whole educational experience has been conducted in an environment that discouraged this.

    If Brown has one of the top CS departments, I sincerely doubt it has anything to do with this policy, but rather with the caliber of faculty they attract (which is pretty much a function of how much they pay and how liberal they are with tenure). (I say if not becuase I doubt they're good, I just don't keep up on rankings. :^) )


    --
    News for geeks in Austin: www.geekaustin.org
  5. CS is not real-world programming by bluesninja · · Score: 3

    ...because the goals are different. if you get an assignment from your CS class to write an tree optimizer or something, and you just reference a bunch of open-source stuff, you are not earning a good grade, even though this would be a perfectly legitimate (and encouraged) solution in the workplace.

    CS is supposed to teach you to solve these problems, not just implement someone else's solution.

    Contrary to popular belief (where i am, anyways), the point of a CS assignment is not to get a working program. It's to learn the techniques for yourself, and see what works, what doesn't, and why.

    This may be contrary to what you'd do in the "real -world", but if you have a problem with it, go to college. Undergrad is for trying, not doing :)

    /bluesninja

  6. Even better! by 2nd+Post! · · Score: 3

    If the projects were very dissimilar, yet they were still able to graft code from project A to project B, then there may be a pretty good understanding of the code itself in order to affect a transformation without changing correctness!

    Geek dating!

  7. Re:The Sad Truth About Higher Education and Cheati by raju1kabir · · Score: 3
    I guess that means my GPA is just going to make me look like an idiot now. School sucks.

    I'm going to let you in on a secret from the Real World.

    Once you graduate, nobody gives a shit what your GPA was.

    Unless you're applying for graduate school, or some horrid cookie-cutter cubicle farm job (i.e., Accenture) where the HR dept processes so many people that they have no human methods of screening out the duds, nobody will even so much as look at your GPA ever again until you die.

    I'm not sure why this continues to be such a revelation for people. You'd think they would have learned it after junior high. Remember how the guidance counselor told you that class you were messing up in 7th grade was going to dog you for the rest of your life, and that you were going to have to be a ditch digger if you didn't straighten up, and fast? Notice how once you hit 9th grade it was never spoken of again? That you were never required to provide your junior high transcript to anyone, anywhere, ever? There's a trend there.

    You just have to do as well as necessary to make it to the next step. Just make sure the steps you're taking are leading you somewhere you want to be, because one day you're going to have to park it there. All the rest is for your benefit: learn what you can, try things, explore, meet people, make friends. It's how you did on those fronts that's going to determine how successful you are.

    --
    "Patriotism is your conviction that this country is superior to all other countries because you were born in it." -- GBS
  8. This applies to more than just school... by Gruneun · · Score: 3

    Yes, software gets re-used in the real world. But, when we look to hire a programmer we aren't looking for someone who can use a library. We want people who can code. We've had entirely too many hours wasted interviewing people straight out of school who can't program worth crap.

    High school diplomas used to mean something. You had lower graduation rates because the requirements meant something. Now getting high school diploma means you attended more classes than you didn't, you can write your own name without making more than a couple mistakes, and you didn't shoot anyone. It's beginning to occur in univerities now and to be an impressive candidate in a lot of industries you have to have your masters degree.

    Collabortion is great. OOP is fantastic. Trained monkeys who can sniff out and find somebody else's work are useless. School is for learning and copying work, rather than creating it, is detrimental to the student and to the school's reputation.

    Take pride in your work, fulfill the requirements, and you'll understand why it's important.

  9. Re:Reuse should be encouraged. by locust · · Score: 4
    In academia, specifically, when it is a class project, the purpose is to teach the students how to do things, rather than just grab someone else's code. The focus is not on saving time and money, but on learning how to do things themselves.

    In academia (especially undergraduate) the focus is to expose the student to subject at hand so that they know where they have to look when they really have to do something. If one really wanted them to learn to do things one wouldn't throw a half dozen new subjects at them every 4 months.

    Using someone else's code, even if only for a portion of the code, is having someone else do it for them. Thus, it is considered cheating.

    Usually, even in accademia knowing who to ask and what to ask are just as (if not more) important than being able to do it yourself. The fact is that every prof/t.a./lab tech assumes his course is the only one in the curriculum, and you as the student should have more than enough time to gain the same level of understanding as he has after 20 years of teaching the course. Of course if he's a prof he'd rather be doing research anyway so you (as a student) are just an inconvenience.

    --locust

  10. Reuse should be encouraged. by sacherjj · · Score: 4

    The reuse of previous solutions should be ENCOURAGED. However, it must be fully documented as to the source. This is how the real world works. If someone has engineered a solution, it is almost always cheaper to utilize that solution and pay the licensing fees or purchase rights to the code.

    If it was cited works, tell the professors to step out of acadamia and get in the REAL WORLD. The only way they have grounds is if it was stated or implied that all code should be the students work.

    In my job, I try to produce as many common function code sections as possible. I then add these to a common database for others to use and modify to their needs. Re-inventing the wheel is not only stupid, it is in efficient. Engineers are lazy. Efficiency is king.

    1. Re:Reuse should be encouraged. by Freeptop · · Score: 4

      In the real world, re-use is excellent, because it is efficient, saves time, and saves costs. In academia, specifically, when it is a class project, the purpose is to teach the students how to do things, rather than just grab someone else's code. The focus is not on saving time and money, but on learning how to do things themselves. After all, if the student only learns to grab somebody else's code, and not write their own version, they can face a couple of problems:
      1) If they encounter a situation where they can't re-use code, and they never learned how to write it, now what do they do? Granted, this is an extreme example, but it can and does happen.
      2) If the code they re-use has undocumented bugs in it, or was originally meant for a different purpose, blindly re-using the code can do more harm than good. This is an extremely likely situation (especially with student code!).

      Remember, the purpose of assignments is to teach how to solve problems by example. By giving the student direct experience in how to solve the problem, the student learns more than just what's in the book or someone else's comments.

      Classes are not meant to duplicate the real world. If they were, there would not be any purpose to them; we would all just need to go straight into the real world. Classes are supposed to be used to teach students how to solve problems. That means getting them to do it themselves, and not having someone do it for them. Using someone else's code, even if only for a portion of the code, is having someone else do it for them. Thus, it is considered cheating.
      At least, when I was a TA, that is how I would have considered it.

  11. Non-collaboration policy by josecuervo · · Score: 4

    CS at Brown University follows a strict non-collaboration policy. It is much more rigid than any other department at the school. If caught, all incidents are forwarded directly to a dean for disciplinary action. In the engineering department, the rules are much less harsh, and collaboration often takes place.

    This non-collaboration policy actually works, as Brown has one of the top cs programs in the nation. However, at times it is a bit excessive. Personally, I think that whether or not your case is truly academic dishonesty depends on the guidlines for the assignment. If they strictly said that all work should be your own, then referencing other work probably should be considered cheating.

    True, when writing a paper for say, Political Science, you are referencing outside sources constantly, perhaps even quoting. However, you do this to build your own argument, and only do it to support what you are writing. Copying a whole chapter for a paper without citing references is obviously plagiarism, however even with a reference the work isn't your own, and the problems here are quite obvious. Truthfully, it depends on how much code was used, and in what manner. I don't think there is any cut and dry or black and white answer to this question.

    -Brian Singer

  12. Two simple rules by vlax · · Score: 5

    I learned two rules for avoiding charges of cheating in my CS department, both of which strike me as pretty sound:

    1 - You can't be punished for citing references.

    If you get code from some source and you document it, you say so when you turn it in, it isn't cheating. You may not get a very good grade and your prof may not be pleased, but you can't be brought up on charges of cheating.

    2 - The Gilligan's Island rule

    If you look at someone else's code, then go watch an episode of Gilligan's Island. Anything you can still remember afterwards is fair use. This was treated as a way of defining the line between copying someone else's code and learning from it. As rule, it won't save you in a court of law, but unless you have superhuman memory, you will be hard pressed to remember enough detail about someone else's work to be demonstrably cheating from it.

    I have never heard of a student using these policies ever having been charged with academic improprieties. They are much, much easier to follow than the rules for when you can and can't sleep with profs and TA's.

  13. Cheating is a part of academia by JanneM · · Score: 5

    I appreciate the fact that one is supposed to work out their own solution to problem posed in class or on assignments. However, there is a form of academic cheating that is rampant throughout the university world.

    A little more than a year ago, the pages of Science where alive with the debate over whether a certain professor had published erroneous results or not. The case was as follows: his graduate student had been doing a series of experiments, and published a couple of papers on this -- with the professor as the first author. Some of you may not know this, but the tradition is that the person responsible for most of the work is cited first, followed by others, and, sometimes, followed by the professor (or other 'grey eminence') last.

    In this case, it turned out that the graduate student had faked his data to fit with his theory. The professor -- who had been the first name on the paper -- excused himself by saying that he had not even read the paper in question.

    So, either he did read the paper, examined the results, and published anyway, and is guilty of fraud; or he had his name as the first author of a paper he didn't even read until it blew up in his face.

    This _really_ makes you wonder about scientinsts that have hundreds of papers to their name -- papers that are really the basis of their careers...

    --
    Trust the Computer. The Computer is your friend.
  14. An ex-T.A. speaks out... by chipuni · · Score: 5
    I always went by the phrase:
    • If you copy it, and you don't give attribution, it's stealing.
    • If you copy it, and you give attribution, it's research.

    Academics is filled with research, including computer science. Your question didn't tell whether you gave a full and clear attribution of where you found the code.

    If you did, then at a hearing, bring in just about any academic journal, and show how every paper references at least five other papers.

    --
    Never play leapfrog with a unicorn. Or a juggernaut.
  15. The Sad Truth About Higher Education and Cheating by Ars-Fartsica · · Score: 5
    As someone who spent two years as a teaching assistant in a well known university, that students are in university to get high marks, not to get an education.

    I once held an informal poll among the undergrads and concluded that almost all of them chose courses they could get high marks in, and almost all of them would opt to get a high mark than to focus on learning.

    As for cheating - what do you expect? The whole educational experience is driven by marks, so cheating is a natural by-product. Some schools try to get around this by focusing on examinations instead of assignments for the bulk of the course marks, but it has been demonstrated again and again that exams only teach one thing - how to do well on exams.

    The only way to get technical education back on track is to make co-operative/work terms mandatory, even for students who wish to pursue theoretical avenues.