Slashdot Mirror


Cheating Detector from Georgia Tech

brightboy writes "According to this Yahoo! News article, Georgia Tech has developed and implemented a "cheating detector"; that is, a program which compares students' coding assignments to each other and detects exact matches. This was used for two undergraduate classes: "Introduction to Computing" (required for any student in the College of Computing) and "Object Oriented Programming" (required for Computer Science majors)." Cuz remember programmers: in the real world you are fired if you consult with a co-worker ;)

941 comments

  1. You're caught by alen · · Score: 5, Funny

    Your Hello World program is exactly the same as Johnny's. You fail. You're kicked out of school. Good bye.

    1. Re:You're caught by jordan_a · · Score: 1

      This is a good point. Many of the simple programs given as assignments have very straight forward (and similar) answers. I friend of mine was 'caught' cheating with someone who had never had any contact with.

    2. Re:You're caught by Anonymous Coward · · Score: 0

      Thats not bad!

    3. Re:You're caught by bcrowell · · Score: 4, Informative
      1. The professor should only use it on nontrivial assignments, so this shouldn't be a problem. Any tool can be used incorrectly, and that doesn't mean the tool is bad.
      2. Students tend to believe that there is only one right way to work a problem. In my physics classes, I often have students who try to turn in solutions copied from the solutions I handed out in a previous semester. It's usually painfully obvious. For instance, I teach my students how to do order-of-magnitude estimates, and one of the problems I assign is to estimate the number of blades of grass on a football field. I had a student turn in a copy of my own solution, including all my idiosyncratic assumptions, like assuming exactly the same number of blades of grass per cm2, and assuming the same (wrong) width I had guessed for the field. His work was all in the same order as mine, and laid out on the page with the same indentation, etc. He tried to claim that his answer was just naturally the same as mine, because he got it right.
    4. Re:You're caught by Anonymous Coward · · Score: 0

      Why do you think they call them "Hokies"?

      C'mon dude. Figure it out.

    5. Re:You're caught by invenustus · · Score: 5, Insightful

      You all laugh at that joke, but in my friend's Operating Systems class this fall, the "cheat script" flagged half the students, very few of whom were actually cheating. My friend's group didn't hand in one part of the assignment, and the script detected similarities between the nonexistent file and the whitespace in other groups' code. Duh. And of course, instead of first LOOKING at the similarities, the professors went ahead and accused my friend of cheating, and told him he had to come to an "appeal session" THAT SAME DAY.

      Students shouldn't cheat, but professors shouldn't toss around those accusations lightly either.

      --
      grep -ri 'should work' /usr/src/linux | wc -l
    6. Re:You're caught by xantho · · Score: 1
      You know the truly funny part... in CS2130, a hello world that compiles with warnings and lints properly on Solaris will get you a 100 percent, regardless of the homework assignment. Of course, there are other assignments that this won't work for, though.

      --Xantho

    7. Re:You're caught by Anonymous Coward · · Score: 0

      Perhaps I'm missing something, but if you're referring to the school's nickname, you're thinking of Virginia Tech, which is the Hokies. Georgia Tech is the Yellow Jackets.

    8. Re:You're caught by Datenshi · · Score: 1

      true enough. interestingly, VaTech also uses a similar program...

    9. Re:You're caught by Anonymous Coward · · Score: 0

      Maybe his answer really was. Are you really so shallow and narrow minded that you can't see that? You cannot simply assume that your student "copied" your explanation. You were able to come up with your answer on your own, so why couldn't someone else come up with a very similar, if not identical answer? I hope you don't think you're special or that _only_ you could have thought of your "ingenious" method.

      Remember, when you assume you make an ass out of u and me (or in this case, your students).

    10. Re:You're caught by Anonymous Coward · · Score: 0

      Your friend should sue the professor for defamation of character. I hate when dickweed professors to do stuff like this.

    11. Re:You're caught by Alpha+State · · Score: 3, Insightful

      I had a student turn in a copy of my own solution, including all my idiosyncratic assumptions, like assuming exactly the same number of blades of grass per cm2, and assuming the same (wrong) width I had guessed for the field.

      Sorry, but I have to say this is your fault for setting exactly the same question. If I have to solve a problem when I have already seen a solution, I am going to come up with something very similar even without intentionally cheating. This doesn't excuse an exact copy, but how do you expect students to think about a problem and come up with their own solution when they have already seen it done?

    12. Re:You're caught by Anonymous Coward · · Score: 0

      They ought to rename it the lazzy proffesor's tool.

      Its funny how they claim how successfull it is at catching cheaters by comparing its results to the previous year, but never to a % error. I guess its the "Katz cheat detector"

    13. Re:You're caught by bcrowell · · Score: 1
      If I have to solve a problem when I have already seen a solution
      Nobody forced him to obtain the previous semester's solutions. He had to go to the trouble of finding someone who had taken the course from me before, and convincing them to let him have their copy of my solutions. My syllabus makes it very cleat that this is not allowed.

    14. Re:You're caught by Anonymous Coward · · Score: 0
      My syllabus makes it very cleat that this is not allowed.

      Just because you're too damn lazy to write a new exam shouldn't prevent students from doing extra research by looking at past exams. If thinking up a new goddamn order-of-magnitude problem is too difficult (did you even write the original one yourself, or did you copy it?) then you shouldn't be teaching the subject.

    15. Re:You're caught by Anonymous Coward · · Score: 0
      I often have students who try to turn in solutions copied from the solutions I handed out in a previous semester.

      Why do you waste valuable university time posting to this garbage heap?

      Or, does slashdot count as a "peer reviewed" journal, by your Universities standards for tenure.

    16. Re:You're caught by PK_ERTW · · Score: 2, Insightful
      He had to go to the trouble of finding someone who had taken the course from me before, and convincing them to let him have their copy of my solutions.
      It is very likely this was no problem at all for him.

      I am not sure if you are aware of a students life at university, but we have access to many archives. I alone have a few different sources (My Department club, Online ones run by our AMS, By Frat archives,... other that I don't use). These include in different cases tests, assignments, and notes. Looking through these is not cheating. They are getting a different perspective on things that the teacher may not of had.

      For example, I find the best way to study for tests is to do old problems. So I get my hand on aas many old tests and quizzes (most useful) and problem sets (not quite as good) that I can, and do the problems as many times as time permits.

      My syllabus makes it very cleat that this is not allowed.
      This seems odd. one can't look at another students notes... I would very likely ignore such a thing. Granted the indenting is pretty suspicious, but beyond that, I would say you have nothing. We live in a big world, a lot of the time coincidences are just that, coincidences. They are bound to happen now and then.

      PK
      Where are we going, and why are we in this handbasket?

      --
      Engineers arn't boring people, we just get excited about boring things.
    17. Re:You're caught by CmdrPinkTaco · · Score: 5, Insightful

      I personally have had experience being accused of cheating in a computer science class. At the uni that I attended, the prof for the Programming Languages class was in his tenure and had already (mentally) retired. His concern for the class was minimal at best. An example of this was the time that myself and another student went into his office to talk to him because he was late to class and we had some questions on an assignmnet that was due the following class. When we poked our heads in his office he was in his chair - asleep. If that isn't enough - he completely forgot to show up for the final exam.

      I don't claim to be a model student by any means, but in this class of 16 I had the highest grade in the class and had done every assignment to the best of my abilities. It came as quite a shock to me when I got my grades and noticed that there was an F for my Programming Languages class.

      I promptly called the professor and he said that this was an issue that was best dealt with in a face to face manner - so I went to his office and he claimed that myself and 3 other students in the class had cheated. He pulled up the source code and showed the very striking similarities. When I explained him that some of the problems that were assigned were out of the scope of this class and that he offered no help, I informed him that I had worked with these students to get a solution to the problem. We did not copy any prior works, and all worked together to complete a tough assignment. I admitted that we shared code, only because we had shared ideas and had all come to the solution together.

      To make an already long story short (Im forcing myself to leave out details), it ended up getting appealed and overturned, and the professor is now on probation and only teaching 100 level courses

      The moral - cheating and sharing of ideas are different concepts and should be handled seperately. I don't agree with programs that flag cheating based on similarities in code because sharing of ideas is typically encouraged in a university setting as long as they are obtained legitimately - a program as such cannot sufficiently distinguish the two.

      --
      Please give your mod points to others, Im at the cap. They will appreciate it more
    18. Re:You're caught by eplese · · Score: 1

      I was in an introductory C programming class in college and a couple students got caught cheating. It turned out their source code was identical, even down to the name appearing in the doc box at the top of source.

    19. Re:You're caught by ameoba · · Score: 2

      It's called having a 'lesson plan'. Professional educators, once they have them worked out for a given subject, like to keep the changes to these minimal. Cheating is cheating. Asking your buddy who took the class the previous semester for a copy of the homework solutions is no different than pulling answers off the 'net or copying off another student in the class.

      --
      my sig's at the bottom of the page.
    20. Re:You're caught by Anonymous Coward · · Score: 0

      teacher's pet kiss ass

    21. Re:You're caught by drunkmonk · · Score: 1

      But they're going to be using this for an OO class... isn't the *entire* point of object-oriented programming the simple reuse of code?

      95% of most programmer's jobs is finding someone else who has solved the same problem in the past and, maybe, improving on their solution in some little way.

      But why should we let the real world intrude into the academic world?

    22. Re:You're caught by elflord · · Score: 2
      Students shouldn't cheat, but professors shouldn't toss around those accusations lightly either.

      For the most part, they don't "toss around accusations lightly", because it's actually fairly difficult and inconvenient to pursue academic dishonesty cases, and it often results in a "slap on the wrist". Professors are generally not supposed to deduct points for cheating, they are expected to take it up with the Deans office. This would explain why your friend was hauled in front of the "appeal session" -- it's the only legitimate process profs have to deal with students suspected of cheating.

    23. Re:You're caught by Dyolf+Knip · · Score: 2

      Well I've always known Greenlee was nuts, this more or less proves it. Son of a bitch couldn't teach a class to save his life.

      --
      Dyolf Knip
    24. Re:You're caught by bcrowell · · Score: 1

      Reuse is different from plagiarism. Feel free to look up both words in the dictionary.

    25. Re:You're caught by obobo · · Score: 1

      Nice troll, so I'll respond :)

      The point of a programming class is to learn how to program, not to learn how to copy code. If I were hiring somebody fresh out of school who got an A in their C++ programming class, I'd expect that they can actually _code_ in C++, not just _copy_ C++ code.

    26. Re:You're caught by Anonymous Coward · · Score: 0

      Sounds like 198:416..

    27. Re:You're caught by ahde · · Score: 2

      I've never been accused of cheating in programming class. Mocked for massively inefficient code, sure, but I'm looking to save keystrokes, not cycles, anyway :)

    28. Re:You're caught by brausch · · Score: 1

      When I taught I told the students that they could work together but had to let me know in advance that they were doing so. I did have one cheater (in four years) who just copied someone else's code and changed all the variable names. Since I only had about 30 students, I did all the lab grading myself and it was obvious what he'd done.

      --
      "Almost every wise saying has an opposite one, no less wise, to balance it." - George Santayana
    29. Re:You're caught by Anonymous Coward · · Score: 0

      I thought that was open source...

    30. Re:You're caught by Anonymous Coward · · Score: 0

      You are just a lazy professor. It is only smart to go and look up back exams. It gives me even *MORE* problems to practice on, and presumeably helps me to understand what are the truely important concepts that I should have learned from the class (you are test for the important things right, not the trivial ones?)

      The fact that the student cheated by copying someone elses work is reprehensablie, but doesn't in any way excuse your lazyness. You sir are an insult to quality teaching.

    31. Re:You're caught by NNKK · · Score: 1

      But do you also want that person to be taught that it's bad to go to others for help?
      An exact copy of a program is certainly unacceptable in an academic setting, but going to someone else to get help and coming back with a function they wrote to solve a problem in the assignment is something that should be encouraged, or at the very least, not discouraged.
      If you want to make sure your students understand the code they're using, GIVE THEM A TEST.

    32. Re:You're caught by Anonymous Coward · · Score: 0

      Copying successfully requires intelligence and ingenuity, skills that will stand you in very good stead in the real world. Done properly it is completely undetectable.

    33. Re:You're caught by Anonymous Coward · · Score: 0

      Anyone who accuses me of cheating better be damn sure of their facts and be able to prove it conclusively otherwise they will quickly find themselves on the wrong end of a street contract. Certainly they will be hunted until they are dealt with to my satisfaction.

    34. Re:You're caught by Anonymous Coward · · Score: 0

      >I had a student turn in a copy of my own >solution, including all my idiosyncratic >assumptions, like assuming exactly the same >number of blades of grass per cm2, and assuming >the same (wrong) width I had guessed for the >field. His work was all in the same order as >mine, and laid out on the page with the same >indentation, etc. He tried to claim that his >answer was just naturally the same as mine, >because he got it right.

      Hmmm... Lets think here for a minute. Does a prof who(Due to Tenure no doubt), over the length of time of an entire year, failed to change one variable (on a question with multiple variables) he/she asked previous students, have the right to accuse a student who went out of his way to find the solution, (arguably in a creative fashion)of, well, being lazy?

      I can see it now...
      "Hmmm, time for the 'lets guess how much grass is on a football field' lesson again. I know I asked this in '93, 94, 95, 96, 97,98,99,00,... , maybe I should change the football field to a baseball diamond, or even a soccer field! Naw, that'd mean having to actually work today. Besides, I can't right now because I'm actually in my slotted 3 hours a week that I'm available for for my job, that is, for students to come into my office and ask me questions, for me to grudgingly acknowledge".

    35. Re:You're caught by fish+waffle · · Score: 1
      Nobody forced him to obtain the previous semester's solutions. He had to go to the trouble of finding someone who had taken the course from me before, and convincing them to let him have their copy of my solutions. [emphasis mine]

      So, let me get this straight---you gave out solutions in one term. Next term you assigned the exact same question, and then you were surprised to find someone had found your old solutions? Is this your first year teaching?

      Of course students will find your old solutions! You've put a jar of honey in front of winnie the pooh, and told him not to touch it---what do you think he'll do?

      Unless you're out to make some sort of point, it sort of behooves you to make at least some effort to ensure that cheating is not utterly trivial. And finding notes/documents from the same course in the previous term is indeed trivial. If you insist on re-using a question, particularly after a short interval like one term, don't give out the answer. Better yet, make up new questions (surely you could come up with another order-of-magnitude estimation problem!)

      BTW: Students i expect treat the text in your syllabus on this issue with the same sort of reverence with which everyone treats the FBI warnings on videos. You would need to be emphasizing your no-external-sources condition over and over during the term to have any hope of making it stick.
    36. Re:You're caught by Anonymous Coward · · Score: 0

      It was indeed, featuring Thu Nguyen and Richard "Puerto Rican Superstar Ricky" Martin. I'm glad I had 416 in Spring 2001 with Bud Graff and TA Cristian Borcea. No group projects where the one deadbeat screws everybody over.

    37. Re:You're caught by elem · · Score: 1

      So, let me get this straight---you gave out solutions in one term. Next term you assigned the exact same question, and then you were surprised to find someone had found your old solutions? Is this your first year teaching? I don't think thats the point....

      I think he trying to point out how stupid the student is for copying exactly the same answer instead of looking at the solution and tweaking the numbers a bit so that it looks a bit more original

    38. Re:You're caught by Bed+Cricket · · Score: 1

      It's not that they are being taught to not go for help. If they need help, I'm sure that a TA or even a professor will help them. That is NOT the same as copying. Copying is not going for help it's looking for the answer and not thinking about how to get to the answer. Cheating doesn't *help*. It makes the assignment easier but it is not helping.

      And to the prof that assigned the same problems as the previous year. You kinda asked for it. Make it difficult for them to cheat. If one roommate takes a class one semester and says it's easy and she has the answers to all the tests, homeworks, and quizzes. More than likely the other roommate will take it the next semester and use the answers and solutions. You asked for it. You want them to be creative. *YOU* be creative.

      --
      Do you derive pleasure from pain? Run Linux.
    39. Re:You're caught by NNKK · · Score: 1

      Have you ever attended a major college? Do you know how much individual time students get with professors? Practicaly zilch. If every student that needed help was assisted by a professor, or for that matter a TA that may or may not know what they're doing, there would never be any actual teaching done.

    40. Re:You're caught by xantho · · Score: 1

      I completely agree, but watch out that everyone knows that's only your opinion, or else the school might charge you with libel or slander. It's happened before...

      "I THINK (I mean, it is my opinion that...) this school is completely fucked.

      --Xantho

    41. Re:You're caught by Crispin+Cowan · · Score: 2
      I admitted that we shared code, only because we had shared ideas and had all come to the solution together.
      You cheated, plain and simple. Busted. Quit yer bitchin'.

      When we poked our heads in his office he was in his chair - asleep. If that isn't enough - he completely forgot to show up for the final exam.
      So the prof was lame. Granted. Doesn't make what you did non-cheating. Suck it up, and if you don't like your school, change to a different one. To be really helpful, tell us the name of your school, so that other people can avoid going there.

      Crispin
      ----
      Crispin Cowan, Ph.D.
      Chief Scientist, WireX Communications, Inc.
      Immunix: Security Hardened Linux Distribution
      Available for purchase

      The Olympic Games: A Century of Corruption and Graft/center

    42. Re:You're caught by Hott+of+the+World · · Score: 1

      As a student at Georgia Tech who has taken one of the suspect classes and is currently attending the other, I find that getting help from other students is not actually cheating. I got help from other students in the class. The trick, however was dealing with the problems on an abstract level first, (for instance, I had the hardest time with tail recursion, until my roommate told me it was just adding a variable to keep all the data stored) and then figuring out on your own how to implement the solution to get the desired result. The one's caught by this cheatfinder simply took the easy way out, they asked exactly how to code certain stuff, and even copied code.

      --
      | - | - |
  2. Cheating detector written in C... by 11thangel · · Score: 1, Troll

    And someone forgot that "=" is the variable set operator, not the comparison operator, which is "==", so suddenly the cheating detector gave a lot of people F's...

    --

    I am !amused.
    1. Re:Cheating detector written in C... by Anonymous Coward · · Score: 0


      "=" is ASSIGNMENT not 'set'.

    2. Re:Cheating detector written in C... by Anonymous Coward · · Score: 0

      Nobody with more than a month of experience with C ever makes that mistake. C is indeed a flawed language, but the true problems with it are more subtle.

    3. Re:Cheating detector written in C... by MeltyMan · · Score: 1

      Because they forgot to use 'diff' in the first place. :P

      --
      "Ummmm..." ...The programmer's "Om."
  3. In the real world... by Anonymous Coward · · Score: 2, Insightful

    You're fired for copying someone else's work and passing it off as your own, particularly if it's a competing product.

    If your employer has any integrity at all, that is.

    1. Re:In the real world... by Anonymous Coward · · Score: 2, Funny

      Actually, in the real-real world it just means that you are a manager.

    2. Re:In the real world... by Anonymous Coward · · Score: 0

      You don't know what the fuck your talking about ...your promoted for that kind of behavior.

      Also, "employer" and "integrity" are oxymorons ...in the "real world".

      You're obviously still in school.

    3. Re:In the real world... by PW2 · · Score: 2, Funny

      ...you would have roommates that wouldn't talk to you anymore :(

    4. Re:In the real world... by Anonymous Coward · · Score: 0
      "In the real world... "


      A lot of people called Taco out on this comment but I think more than the specific scenario of plagiarism, he's pointing to the general tendency of academia to reward competitive individual accomplishment over cooperative shared accomplishment. Still, all the contrary comments have reasonable points too.

    5. Re:In the real world... by Anonymous Coward · · Score: 0

      Nope. Graduated 10 years ago. Try again.

    6. Re:In the real world... by Anonymous Coward · · Score: 0

      No, in the real world if you don't know how to do your own work, you're dead weight and a waste of money for your employer. Furthermore, the people you constantly haggle for "help" are wasting *their* time on you as well.

      Now, since school is supposed to enable you to do real work, doesn't it make sense that you shouldn't be able to get the University "stamp of approval" (i.e., a diploma) without actually being *able* to do your own work?

    7. Re:In the real world... by Anonymous Coward · · Score: 0

      ... you make the Fortune 500. ::cough cough:: M$ ::cough cough::

    8. Re:In the real world... by jrockway · · Score: 1

      That's why Microsoft has failed so miserably, right. We know that they'd never think of using anyone else's code. Nothing like the BSD TCP stack. No never.

      Illegal? No. Colaborating? Yes.

      Not to mention all the potentially GPL'd code in some programs (I just assume they do this; I have no proof).

      --
      My other car is first.
    9. Re:In the real world... by nusuth · · Score: 1

      And you are supposed to be able to help someone sometimes, not just being helped all the time. I had hated closed book exams, in real world who do lose all the referance material? But cooperation and cheating are not like this, you are supposed to know a fair bit, if not everything, about a particular field to be of any use. Cheating in toy homework projects means that you don't know even the amount that would give you passing grade (or perhaps you are just greedy, and cannot be accept a 2.67 GPA like me.) That, in my book, is unacceptable behaviour. Taco's comment does not make much sense unless even for complicated projects, team work is disallowed generally and considered cheating (I don't know how it is there, in Turkey teamwork is not only allowed but mandatory for most 3rd or 4th year class projects and exams.)

      --

      Gentlemen, you can't fight in here, this is the War Room!

    10. Re:In the real world... by jjoyce · · Score: 1

      I suppose all of Microsoft's GUI division got fired?

    11. Re:In the real world... by Anonymous Coward · · Score: 0

      let me guess, you are a teacher

    12. Re:In the real world... by Austenite · · Score: 1

      What's much more relevant in that BECAUSE universities are operating in the real world, the purpose of a test is to discover whether _this_ student knows (or probably knows) _this_ thing. Then, the university can award a degree that effectively says _this_ student knows _these_ things and the "real world" will have some confidence in it.

      The purpose of the class, and therefore the test, was not to teach or assess the student's ability to work in a group.

      That's two blatantly flippant comments from CmdrTaco today (Law's to punish software vendors is the other, for my 2c) that display the cool and hip anti-establishment attitude that really pushed my button today. Maybe I'm just having a bad day.

      No comment from me on the brain-dead use or otherwise of a simple script, though. :)

      --
      "In person, WAP'ed up and making your life a misery!" BOFH, 2003
    13. Re:In the real world... by Anonymous Coward · · Score: 0

      >(I just assume they do this; I have no proof).

      Then your opinion on MS is pure garbage.

    14. Re:In the real world... by ciscon · · Score: 0

      Eat me... really-

    15. Re:In the real world... by Bed+Cricket · · Score: 1

      How about the blatent examples of Microsoft stealing code: windows?? basic?? Come one people. Like this doesn't happen in the real world?

      Of course, he is being rewarded handsomely for this. What does that say about our culture?

      --
      Do you derive pleasure from pain? Run Linux.
  4. In other news. by Kenja · · Score: 0, Troll

    Geeks all over the world discover the diff utility and wonder what the hell the Georga Tech monkeys are so worked up about.

    --

    "Have you ever thought about just turning off the TV, sitting down with your kids, and hitting them?"
    1. Re:In other news. by Anonymous Coward · · Score: 0

      monkey your mom

      it's more than diff.. You couldn't say, just change the variable names or something.

      It's very much beatable, but it's not that weak.

      - 3xcrazy
      cs major at GT

  5. Wow! by The+Blue+Meanie · · Score: 1, Redundant

    Looks like someone at Ga. Tech finally discovered "diff"!

    --
    "I feel that if a person can't communicate, the very least he can do is to shut up." -- Tom Lehrer
    1. Re:Wow! by Anonymous Coward · · Score: 1, Informative

      As a student at said school I can tell you it's a lot more complex than "diff". The program does some serious code pattern profiling. It's results are frighteningly accurate.

    2. Re:Wow! by Anonymous Coward · · Score: 0

      My lord! I wrote a program very similar to this that works very much like a disassembler. By examining the "results" of compilation in this very precise method, I can analyse the core operation of the program which gives me a thorough idea of how similar code actually is without those amusing little attempts to change the aesthetics of your code to fool people(teachers). Here's the surprising part: I threw this together in a few days. Georgia Tech must be far behind the times :). (they can't out-do an arrogant 13-year old!)

    3. Re:Wow! by Anonymous Coward · · Score: 0

      I graduated from Ga Tech and worked as a TA for CoC for various freshman and sophmore courses. During the summer/fall of 1997 I was put in charge of running cheatfinder for the first and second CS course. I did this until I graduated. This thing is not diff. It is actually a collection of programs that are written in different languages. The first iteration was written in C in 1993. It was then convertered by to perl4 around 1995-6. In late 1996 parts of it were converted to perl5. When I got the job the code was a mess. I cleaned it up some and tweaked it to close some of the loopholes. The thing that people find hardest to believe is that the program throws away more information than it keeps. After the programs finished, I got a list of matches to review. Reviewing the matches took the longest and required a lot of paper. I had to mark up the reports noting the various considerations that I made when I turned in students. Reading the entries was usually entertaining because there would always be one pair where one person did the work and the other copied it but changed the variables to "f---_this class" or "my_TA_can_eat_s---_and_die". The all time stupiest thing was when I student left the email headers on the file. The cheating usually ran in cycles depending on how many were caught the quarter before. I caught two people that I knew with the progam. One ended up at a South Florida Community College (pretty bad case) and the other knocking on my door at 1:30 in the morning asking why I caught him (he pled guilty and took an F).

    4. Re:Wow! by Anonymous Coward · · Score: 0

      Monkey your mom

      - 3xcrazy
      gt cs major

    5. Re:Wow! by Anonymous Coward · · Score: 0

      Which reminds me .... Drew Tilton is such a closet case.

    6. Re:Wow! by Ghengis · · Score: 1

      Did one of your basketball player write this one?

      --

      "The best laid plans of mice and men gang oft agley..." - ROBERT BURNS

  6. almost ten years old by 3ryon · · Score: 1, Funny
    The software, developed around 1993, detected similarities in the students' work in three computer coding assignments, Eislet said. It's unlikely that innocent students' work was detected by the program, he said.


    1993? Think it was written in COBOL? Have they tested it for Y2K compliance?

    1. Re:almost ten years old by Anonymous Coward · · Score: 0

      Are you a fscking moron C has been around a long time and all our assignments are turned into a unix system (well maybe not the most recent semesters).

  7. diff? by Anonymous Coward · · Score: 0
    They re-implimented diff?

    Wow.

    1. Re:Diff? by Junta · · Score: 2

      Yes, but that would be insufficient since cheaters often rename identifiers and scramble the code a bit, enough to fool diff, but certainly not enough to fool these systems.

      --
      XML is like violence. If it doesn't solve the problem, use more.
  8. This is bad by TheGreenLantern · · Score: 2, Funny

    How the hell are all those lonely CS majors supposed to get in good with the Education majors now?

    --

    It hurts when I pee.
    1. Re:This is bad by Anonymous Coward · · Score: 0

      Depends on what you mean by "get in good".

    2. Re:This is bad by Anonymous Coward · · Score: 0

      Frank White? All be damned, nice to see you. Seen Willie Wilson lately?

    3. Re:This is bad by j-pimp · · Score: 1

      How the hell are all those lonely CS majors supposed to get in good with the Education majors now?
      Well you write 2 different versions of each HW. You use two different indentation styles. You use two different varible name schemes. Make sure neither one is hungarian notation because that will attract the attention of the grader. Make the one you hand in look like it was written by a CS and make the one the other person writes look like there only knowledge of computer science came from the course there currently enrolled in.

      --
      --- Justin Dearing http://www.justaprogrammer.net/ We're just programmers.
    4. Re:This is bad by Anonymous Coward · · Score: 0

      Education majors here at Tech... yeah that's it.
      We make fun of the Industrial Engineers (or as we call them "Imaginary Engineers") enough as it is.
      The idea is almost as funny as actually taking an English class here.

    5. Re:This is bad by esque · · Score: 1

      Guess what? That won't work. The program is easily sophisticated enough to detect changes in variable names, whitespace, for/while, etc...

      --
      -bruce
    6. Re:This is bad by Anonymous Coward · · Score: 0

      There are no Education majors at GaTech... All those CS Majors develop serious relationships with their computers by the time they graduate, or flumk out.

    7. Re:This is bad by Anonymous Coward · · Score: 0

      The thing is a fucking auto-flowcharting-like program. It compares symbols.

      My goal, is to write code that will overflow a buffer, and break the fucking thing. I doubt that 100K of whitespace would do the job, but a sufficently complex nested expression will bring it to it's knees.

    8. Re:This is bad by RDskutter · · Score: 1

      I wish I had mod points
      +1 Funny

  9. Real-world vs. school by sben · · Score: 4, Insightful
    CmdrTaco:
    "Cuz remember programmers: in the real world you are fired if you consult with a co-worker ;)"

    Yes, but one of the goals of a CS department should be to produce programmers who are capable of doing work themselves. Would you want to work with (or supervise) a slacker who couldn't code his way out of a paper bag, but who graduated anyway because he cut-and-pasted the work of his (harder-working) classmates?
    1. Re:Real-world vs. school by jordan_a · · Score: 1

      Good point. I know a 4th year student who doesn't know C, but watch out his Counter-Strike skills are amazing.

    2. Re:Real-world vs. school by Anonymous Coward · · Score: 0

      Yah, but what if it is that cute blonde you've had your eye on all semester who is asking for help? Letting her mooch is preparing you for the real world also!

    3. Re:Real-world vs. school by susano_otter · · Score: 3, Interesting

      Good point. I know a 4th year student who doesn't know C, but watch out his Counter-Strike skills are amazing.

      Sigh... when will schools implement the other kind of cheating detector?

      --

      Any sufficiently well-organized community is indistinguishable from Government.

    4. Re:Real-world vs. school by Ooblek · · Score: 0, Flamebait
      Silly boy, there are no cute blonds in CS classes. The cute blonds usually give up after college algebra.

      Now, of course, if you consider blond Bertha Battleaxe as cute....you know, the big ogre-type chick that sits in the front of the class with an un-combed blond mop of hair and a blond beard that can output code like no one you've ever met before? I guess then letting the cute blond copy works for you.

    5. Re:Real-world vs. school by SirSlud · · Score: 3, Insightful

      No, but they have this little process called 'firing'.

      Anyhow, the employment market will vet real workers from pretend ones. I think the motivation in this case, from the universities perspective, is to not have their degree and academic rep devalued. Obviously, the better the grads, the more money and brains go into the school ... so I can't really blame them for what they're doing. I think their heart is in the right place, even if this solution does strike me as somewhat dangerous.

      --
      "Old man yells at systemd"
    6. Re:Real-world vs. school by JordoCrouse · · Score: 2

      who graduated anyway because he cut-and-pasted the work of his (harder-working) classmates

      Thats ok, he'll trade in his diploma for $60K a year and cut and paste the work of his (harder-working) co-workers.

      --
      Do you have Linux and a DotPal? Click here now!
    7. Re:Real-world vs. school by nesneros · · Score: 1

      And keep in mind that we're talking about INTRODUCTORY courses here, where individual weeding-out is important. Jr. and Sr. level courses base much more emphasis on group projects, etc.

      --
      Some men spend their entire lives trying to kill themselves for having been born. --Ross MacDonald
    8. Re:Real-world vs. school by Anonymous Coward · · Score: 0

      "Would you want to work with (or supervise) a slacker who couldn't code his way out of a paper bag?"

      No, but I would want to work with someone who didn't waste his time reinventing every wheel.

      People who have to rewrite blocks of code because
      they can't read or understand commonly used chunks in previously written code waste time and money.

      Plus, because they can't read and understand code, their own code generally sucks.

    9. Re:Real-world vs. school by Eric+Gibson · · Score: 1

      Yes, but one of the goals of a CS department should be to produce programmers who are capable of doing work themselves.

      One of thier other goals is to produce programmers that spend so much time writing documentation for completely overcomplicated designs that they can't even finish a simple project that should have taken 2 hours, in less than 8 weeks.

    10. Re:Real-world vs. school by feed_me_cereal · · Score: 5, Insightful

      Good point. There's another reason why CmdrTaco's comment represents flawed thinking: I've been in several group projects in school in which we had to collaberate, and it certainly did not consist of copying answers off one another. I don't think that cheating can ever be construed as "consulting with a co-worker." In most of my CS classes at ohio-state, my professors encourage us to work together toward understanding the problems, but to actually turn in our own solutions.

      --
      "Question with boldness even the existence of a god." - Thomas Jefferson
    11. Re:Real-world vs. school by prisonernumber7 · · Score: 1

      Yes, but one of the goals of a CS department should be to produce programmers who are capable of doing work themselves. Would you want to work with (...) [somebody] because he cut-and-pasted the work of his (harder-working) classmates?

      I beg to differ. It should be in the interest of any educational facility to give as much insight into as many different areas as possible; this will ensure that your student will be innovative and capable of doing his own research and seemingly easily teach himself on diverse aspects of a field that he did not learn about yet.

      If somebody has learned how to write small programs in VisualBasic he might find it hard to get a grip in perl...

      ... Yet, if he was taught how to program, he will not only easily learn a language that he was not educated about, but also excel in it easily and write good code.

      --
      && aemula C. ab stirpe interiit
    12. Re:Real-world vs. school by Arcanix · · Score: 1

      I've had a few professors that required that every line of code be documented, making the comments useless unless you want to wade through pages of obvious comments to get to comments that are actually useful.

    13. Re:Real-world vs. school by PhuCknuT · · Score: 2, Insightful

      There's a difference between reinventing the wheel, and building one yourself so that you know how it works. Students should learn to write their own code before they learn to reuse other people's code.

    14. Re:Real-world vs. school by mrfantasy · · Score: 1
      Professors in our CS department usually have a full disclosure policy--you're welcome to work with other students on some projects, but you must disclose with whom and on what parts. As long as you do that it's not cheating. It's only when you're deliberately stealing someone's work that they care.

      --

      -- Of course I'm paranoid. I'm a sysadmin.

    15. Re:Real-world vs. school by SJS · · Score: 2, Offtopic

      Would you want to work with (or supervise) a slacker who couldn't code his way out of a paper bag, but who graduated anyway because hecut-and-pasted the work of his (harder-working) classmates?

      Seen that.

      A lot of college students -- especially the ones in CS -- use the argument that copying work is equivalent to "consulting with a co-worker"; apparently, this is to disguise the fact that they don't actually know what they're doing.

      Many of these students appear to be pursuing a CS degree because "that is where the money is". Which is a damn poor reason, I think, but that's just my opinion. They also tend to be the ones who complain about having to learn more than one language... "You should teach us $LANGUAGE_OF_THE_MONTH, to better prepare us for the work force!" they cry.

      Bah. A university degree is supposed to certify that you know how to think and how to learn, not that you're basically a trained monkey. I think that undergrad courses should only teach the so-called "dead" languages -- and when one of 'em becomes popular again, drop it, and move to something else. An undergraduate should come out of school with a solid grasp of Pascal, Forth, Scheme, and MIX or SICTOY.

      --
      Pick One: http://www-rohan.sdsu.edu/~stremler/sigs/sigs.html (Note - disable Javascript first!)
    16. Re:Real-world vs. school by orionsnebula · · Score: 1

      i agree totally, how worthless you will be to consult with when all you know is copy-and-paste!

    17. Re:Real-world vs. school by gtaluvit · · Score: 0

      Definately. RIT uses a similar system for detecting cheating on code projects. It's not used for labs, us instructors have to look for that. But it definately applies that the people who do the copy and paste thing don't usually last to the upper level courses. If you need to copy someone elses code in order to do basic recursion, do you think you'll make it in the real world?

      --
      - gtaluvit (prnc. GOT-tuh-LUV-it)
    18. Re:Real-world vs. school by Anonymous Coward · · Score: 0

      $60K? For a software developer?!?! HAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHA!!!! Are you mad?!?!? I don't know any software developers (myself included) who would even look at a position that paid less than $90K.

      You must be talking about one of those immigrants from India or some shit.

    19. Re:Real-world vs. school by inepom01 · · Score: 1
      As a person who has had to correct my school's sudden decision to use Java to teach a course full of people who did their intro courses in C++ by doing the group assignment all by himself, I wholeheartedly agree with you.

      But I think dead languages are a little too much- C++, Java (it's popular, yes, but its also quite good for OOP courses), and C would make great languages to learn all the concepts in and they each come with a mountain of internet-available resources to look at(not copy code from, but as an addition to school related resources like textbook and class ntoes).

    20. Re:Real-world vs. school by Twister002 · · Score: 1

      Those people get weeded out (or promoted to management) very quickly in the real world. :)

      --
      "For a successful technology, honesty must take precedence over public relations for nature cannot be fooled." -Feynman
    21. Re:Real-world vs. school by Suppafly · · Score: 2

      No, but there are usually some cute Asian women in cs classes and some Indian ones

    22. Re:Real-world vs. school by SquierStrat · · Score: 1

      The problem is though, that the article didn't tell the whole story. Not all of these kids were actually caught with the program. By the rules of the courses, if you have a TA look at your code..that's cheating. If you ask for help (note the word ask) from another student, you were cheating. Show someone else, anyone else your code, you were cheating. Also, the results of the program were not validated before handing the students over for investigation. Which is VERY dangerous. Also an even bigger problem: the people required tot ake the course. The articles didn't state it correctly...everyone at Georgia Tech HAS to take that course at some point. There was a girl in pre-law struggling hideously through it in my section last semester. She could hardly use e-mail, much less write programs or use command-line linux via ssh!

      I will say, while for me, (I stated this in a previous post) the course was boring, it could be very challenging for the inexperience computer-science or computer-engineering major (I'm of the latter.)

      --
      Derek Greene
    23. Re:Real-world vs. school by SirSlud · · Score: 2

      Dude, I hear you! I totally agree that the method itself is dangerous. And I didn't know that EVERYONE had to take it (although I'd suggest that tons of people failing would make them HAVE to remove that requirement, rather than people who cant make the grade cheating, thus leading the uni to conclude that the course is important for every student.) I was just trying to illutrate to the parent poster that they arn't so interestined in making sure people dont have to work with pseudo-grads, but rather preserving their academic rep, even if they unfortunately feel that relying on technological solutions to social problems is the most benificial course of action.

      --
      "Old man yells at systemd"
    24. Re:Real-world vs. school by JordoCrouse · · Score: 2

      position that paid less than $90K

      Right..... don't forget though, that raiding your Dad's trust fund isn't technially salary.

      --
      Do you have Linux and a DotPal? Click here now!
    25. Re:Real-world vs. school by mother_superius · · Score: 1

      It's funny how it's an actual punk in the picture.

    26. Re:Real-world vs. school by rhost89 · · Score: 1

      This actually pisses me off, i only have 2 yrs of college credit, but i could code ANYTHING that needed to be coded in about every known language, at least on a x86. That includes device drivers, vmm, etc... not just drag and drop vb applications, but of coarse since i didnt play counterstrike for the last 2 years because momy and dady didnt give me shit except a kick in the ass after HS, i will continually be overlooked when applying for jobs or promotions.

      --
      I will bend your mind with my spoon
    27. Re:Real-world vs. school by Anonymous Coward · · Score: 0

      Are you joking? When I screen 500 applicants for a job the one that lists all dead languages is not the one to get the job. I don't have the time for someone to learn the specifics of each language on my dime. I absolutely want them coming out of university with the language I need.

      My biggest complaint about universities as that they don't have a clue how to balance between purely academic desires and business needs. I've heard this echoed time and again by other people who need to get work done that students coming out of universities don't have the skills (all the skills, fundamentals and specific skills) they need to do the job.

      When you hear students crying for $LANGUAGE_OF_THE_MONTH it's because otherwise they've wasted a lot of money. It's not nearly enough to come out of university knowing how to think and learn. You need to have the skills I want as an employer or I'm not going to hire you.

    28. Re:Real-world vs. school by dszd0g · · Score: 1

      I agree that the question CmdrTaco asks is flawed. In the real world, what happens if you steal code from another company? What happens if you use GPL code in a commercial product? I think these are firable offenses.

      UCSC's CS/CE department uses a program to detect not only exact matches, but very similar assignments. Renaming all the variables will still turn up a match. Of course, the professor and then a group of professors looks over anything turned up before action is taken against the student (one warning, then expulsion).

      I fully support the use of programs like these. If someone can not write the programs themselves, they do not deserve the degree. What happens when they are asked to write a program from scratch when they get a job? The manager should be able to expect them to be able to do the basics if they have a degree. Most professors allow a certain level of collaboration. At UCSC, students are generally allowed to work with others , but they have to credit those students they worked with in documentation. This does not include sharing code, each student is expected to complete their own assignment.

      I really can only see cheaters being against these kinds of programs. This statement sounds too much like the big brother stuff, but I think in this case it applies.

      --
      This message is encrypted with Quad ROT-13 to protect the author's copyright under the DMCA.
    29. Re:Real-world vs. school by SquierStrat · · Score: 1

      Oh I'm with you are protecting their reputation. Georgia Tech (at least here in the south) is regarded as a school with much prestige. We have a history of academic pride, and many traditions, including hard work, and extremely tough classes. The grading is stringent and the professors rough. It angers me that the administration is doing this stuff, because calling kids who truthfully just needed help ( which the learning enviroment they were thrown into didn't provide in any manner) cheaters is more damaging to the reputation than some kids who will never use this stuff collaborating for one class, on how to do the HOMEWORK (the tests were all done by hand, they weren't checked by the program.)

      --
      Derek Greene
    30. Re:Real-world vs. school by Zenjive · · Score: 1

      Am I the only one that recognized Taco's "real world" comment as sarcasm?

      --


      A vacuum is a hell of a lot better than some of the stuff that nature replaces it with. - Tennessee Williams
    31. Re:Real-world vs. school by ElDuque · · Score: 1

      Your school has a Counterstrike department? Cool.

    32. Re:Real-world vs. school by Anonymous Coward · · Score: 0

      I'd rather have that then the more common hack it till it works then hand it over to some other poor bastard (me) who has to ready your documentless, commentless, ass code. Can you tell I'm bitter about my job right now?

    33. Re:Real-world vs. school by frankrachel · · Score: 1

      I think it would be interesting to gives students a test that requires them to combine their own coding skills, along with research and perhaps cooperation. Give a programming assignment in class, but rather difficult or complex, and let them use books, internet, talking to each other, whatever. This is how it works in the real-world typically. The grade you get could depend on how close you are to the "deadline". You *can* go over it, but you then have no chance of an A (just like if I miss a deadline, the client might not pay fully)..

      Anyhow, just an idea..

    34. Re:Real-world vs. school by ejasons · · Score: 1

      Are you joking? When I screen 500 applicants for a job the one that lists all dead languages is not the one to get the job. I don't have the time for someone to learn the specifics of each language on my dime. I absolutely want them coming out of university with the language I need.


      If you're hiring graduates who can't quickly learn $LANGUAGE_OF_THE_MONTH to the same level of detail as any other language that they learned in college, you aren't selecting the right people.

      I don't at all believe that most any student would graduate with a "productive" knowledge of C++, for example, based solely on their educational experiences. There just isn't enough depth to class projects. Additional work experience (internships, etc.) could give them this experience...

      However, an exception student with only a good grasp of Pascal (though I would hope they would have experience in other types of languages, such as Lisp, etc.), including pointer operations and data structures, could transfer this knowledge to any similar language with little difficulty.

      I shudder when I think of a student having to muddle through the confusions of C++ when they are just learning to program. Talk about losing sight of the forest for the trees...
    35. Re:Real-world vs. school by FunkSoulBrother · · Score: 1

      that does suck, but don't let it scar you for your whole life. Be a positive factor in society and acknowledge that your parents did the wrong thing by not helping you through college. Be sure to set aside money so you can be a better parent to your children.

    36. Re:Real-world vs. school by Ybrog · · Score: 1

      Would I want to work with one? No. Do I work with them? Yes. That's life, I have to deal with it. If professors gave a rat's ass about teaching rather than putting research so far above I'd be alot more impressed by their efforts to curb cheating.

      --

      bleh

    37. Re:Real-world vs. school by EtherGoggled · · Score: 1

      Agreed. In the real world, programming is just that: Programming. It's not just 'Computer Programming,' and its not just 'Social Programming.' Its Programming with a capital 'P' like the Deaf community writes 'Deaf' and not 'deaf.'

      In the real world, you have deadlines, your job is on the line, and you have to give substantial evidence that the time spent with your ass on some chair, in front of some computer monitor, with some rediculous salary of $UMPTEEN thousand a year, is worth more than $UMPTEEN/$NATIONAL_AVERAGE_WAGE workers hauling brinks from node A to node B. I think that the issue can be boiled down to one of getting caught up with the technology, and forgetting that some people lead perfectly happy lives without ever looking at any type of monitor. Thoreau, Emerson, Plato, Euclid, Newton, Archemides, etc. etc. just to name a few... Those people who happen to be able to make a living as Computing Engineers and Programmers, actually have it made pretty easy. Thank Huxley for our Brave New World, and all...

      If you want to know what collaboration really is, it's this: Five people are given a half million dollar budget allowance, in the form of nearly 100 PCs, networking equipment, and multimedia equipment. The project manager comes in and says: 'Joe - you take all the Apple computers and install the operating systems on all of them. Jane - you take all the WinNT machines, and do the same. Jerry - you get the scanners, printers, and video equipment. Jim - you got enterprise servers & data networking, and Jill - you got network interoperativity and Solaris workstations. We have 6 months to do this. Start working.'

      THAT is collaboration. In the real world, there is hardly ever a NEED to cheat or plagerize, in the sense of taking something someone else did and claiming it to be your own. Typically, one is far to busy programming scripts, hanging light fixtures, developing websites, plugging computers in, checking security, etc. etc.. to even worry about 'copying code.' My suspicion is that in the midst of a project roll-out, the real problems in 'collaboration,' 'group-projects,' and 'cheating' comes from poor documentation and lax division of work responsibilities. Then, when the project is finished, and everybody is reviewing what was turned in and is being graded/analyzed/reviewed, some people have overlapping work results...

      It's all about installing journaling filesystems, so you have exact records of who did what, and making sure that people have access to the records...

    38. Re:Real-world vs. school by jrockway · · Score: 1

      They should teach "dead" and "live" languages. I've learned C/C++ and Perl, but also Lisp and Scheme. All of them have their uses, and once you know one, the rest are easy. What I don't like are a bunch of C++ people that can't read C code... "printf? what's a printf!?". That would be everyone at my school though (high school, so it's sort of "okay") ;)

      This is the same C++ course that neglects pointers, classes, templates, operator overloading, etc. So why don't they just teach C!?

      Or Scheme. There's a fun language ;)

      --
      My other car is first.
    39. Re:Real-world vs. school by ameoba · · Score: 2

      And all other education should take place in Latin and Greek?

      --
      my sig's at the bottom of the page.
    40. Re:Real-world vs. school by Anonymous Coward · · Score: 0

      And all other education should take place in Latin and Greek?


      Why not? I *tried* to learn Latin in High School, but they cancelled the class. I'm not one of those who is gifted with an ability to easily acquire foriegn languages without some sort of structured environment.

      Had Latin and Greek been required for a University education, I would have had a chance to learn them when I was still young enough to possess the necessarily mental flexibility.
    41. Re:Real-world vs. school by Anonymous Coward · · Score: 0

      >No, but I would want to work with someone who didn't waste his time reinventing every wheel

      Until you have gone through the solutions to previously solved problems yourself, you are probably not ready to tackle problems that haven't been sovled.

      Should GaTech expect novel research from people who have never programmed before because it would be a waste of time for them to code something that has already been done?

      Gimme a break.

    42. Re:Real-world vs. school by Anonymous Coward · · Score: 0

      I would never work for someone like you. If you want people who can code in the language of the month and who isn't versed academic computer science then hire from a trade school not a univeristy. I wish the type of people you are talking about hiring got Computer Programming degrees not Computer Science degrees. A guy making ASP pages or something like that isn't a scientist.

    43. Re:Real-world vs. school by Anonymous Coward · · Score: 0

      Excuse me but the real motivation behind the university is to teach. You can argue about that, but it is true. We have to be able to evaluate a student and determine if they have mastered the material. If a student who copies on projects and tests gets passed then a disservice is being done to that student.

    44. Re:Real-world vs. school by Dyolf+Knip · · Score: 2

      Tell me about it. When I took the OO programming course I generally spent 2 or 3 times as long writing the reports and whatnot as I did actually writing code.

      --
      Dyolf Knip
    45. Re:Real-world vs. school by Dyolf+Knip · · Score: 2

      As a Georgia Tech grad who has been quite unable to find a programming job, I think you place a little too much faith in the HR department of many companies. An awful lot of them couldn't care less how quickly I can learn a new language; if I don't know it now I'm of no use to them.

      --
      Dyolf Knip
    46. Re:Real-world vs. school by Dyolf+Knip · · Score: 2

      Tell me about it. The OS Design class I took at GaTech had a male-female ratio of 59 to 1.

      --
      Dyolf Knip
    47. Re:Real-world vs. school by rocca · · Score: 1

      You have the ability to learn now I assume, pickup the flavour of the month programming book and educate yourself prior to interviews.

    48. Re:Real-world vs. school by ScourgeOfGod · · Score: 1

      And on of the goals is to prepare good little code drones who follow orders even when they are irrational. So code away, do your own work, square the circle till you're tired...

      --
      If you're happy and you know it, think again!
    49. Re:Real-world vs. school by sevenatis · · Score: 1

      sben:

      Yes, but one of the goals of a CS department should be to produce programmers who are capable of doing work themselves.

      Guess that blows the extreme programming methodology right outta the water doesn't it.

      I have fellow programmers scour my code on a daily basis. It's amazing what feedback like that can do to actually improve the quality of a product.

      --
      ++ Jesus loves you as you are;
      ++ Cuthulhu thinks you need barbeque sauce!
    50. Re:Real-world vs. school by mobydobius · · Score: 1
      Am I the only one that recognized Taco's "real world" comment as sarcasm?

      No. But you may be the only one who doesn't understand why everyone is upset with Taco's comment.

      Taco was insinuating that it is unrealistic to penalize a student for <euphemism>code replication</euphemism> when in the real world collaberation and cooperation are good things. Many /. readers take issue with this because the job of CS courses is to teach CS first and teach collaberation second.

      It's no good if all your worker bees are good collaberators but none of them can code. You see, when everybody in your group is unskilled, it is no better than the sum of its parts.

      --

      "I like to wear big boy pants."
    51. Re:Real-world vs. school by Anonymous Coward · · Score: 0

      Of course it can; there were numerous times where friends and I sat down to solve a particularly perplexing problem as a group. The result? Large sections of code that look quite similar.

      The reality though is -that university has nothing to do with the real world and results at university have absolutely zero bearing on your real abilities. Unfortunately too many companies put far too much faith in university marks. As a matter of principle I do not divulge marks when applying for work and have made the university I attended aware that giving any details to anyone other than me will lead to legal action being taken. They said yeah, yeah, probably thinking they could do whatever they liked. And they did in fact give out a friend's results without his permission, he took them to court, the judge gave them a good talking to and then hammered them financially. Of course in the US they can probably do whatever they choose.

    52. Re:Real-world vs. school by Anonymous Coward · · Score: 0

      I suppose on the upside this kind of software will never catch the truly ingenious cheaters. There's certainly an art to copying undetected. I guarantee I can steal someone else's work and you'll never be able to tell.

    53. Re:Real-world vs. school by Daengbo · · Score: 0

      You see, when everybody in your group is unskilled, it is no better than the sum of its parts.

      I think that the sum is generally greater than each individual piece, so the sum would be a good thing. Probably what you mean is "no better than its best member."
    54. Re:Real-world vs. school by Dyolf+Knip · · Score: 2

      It's not just knowing the language. I could learn it, yes, but I'd have no actual working experience in it. It is utterly ridiculous how many jobs I have applied to that turned me down because they want someone with, say, 2 years work experience and I only have a paltry 12 months.

      --
      Dyolf Knip
    55. Re:Real-world vs. school by Zenjive · · Score: 1

      No. But you may be the only one who doesn't understand why everyone is upset with Taco's comment.

      I'm up to speed on the whole "cheating is lying and lying is wrong" deal. I was just observing that a whole slew of /. readers started spouting off like Taco was implying that it's ok to cheat.

      When someone is taking a CS course, or taking a job in the IT field for that matter, you need to be sure that the person has a firm grasp on the concepts being taught/used. So, naturally that should come first. But there are easier, more foolproof ways to find out if someone understands a particular concept and can exercise that knowledge.

      It just seems that a program to "detect" cheating is probably fairly easy to bypass and is really a lazy method of teaching. But to really make the effort to teach a group of people and make sure they ALL understand the concept being taught requires one to think and work instead of spouting facts from a text book.

      There may be several ways to code a particular program, but if your class consists of 30-40 people, there may not be 30-40 completely different ways to code that program.

      --


      A vacuum is a hell of a lot better than some of the stuff that nature replaces it with. - Tennessee Williams
    56. Re:Real-world vs. school by LarhoIm · · Score: 1

      Actually, the place i work at never looks at the grades.

      Each applicant for a job gets a specific task of developing something that we could use, but never had the time to do.

      When (or if in some cases) they present us with the results, we look at that, and if it's any good, we hire them on a trial basis.

      One of our best JavaScripters actually had no previous experience with JavaScript before he got his "test"

      (note: I'm working at a company that solely developes stuff for the net, my department is responsible for a DHTML chat)
      He had done a lot of coding in other languages and is generally a fast learner.

      No, he did not cheat ;o) He used the references he could, located code to get inspired from and created the result from scratch


      So keep looking, I'm sure there are others that look at the results, instead of the grades. /Larholm

      --
      -kernel picnic-
    57. Re:Real-world vs. school by thomas.galvin · · Score: 1

      An undergraduate should come out of school with a solid grasp of Pascal, Forth, Scheme, and MIX or SICTOY.

      Interviewer: So what can you do?

      Interviewee: Well, I am great at scheme, and I know some Pascal.

      Interviewer: What about C++? Java? C?

      Interviewee: uh....

      Interviewer: Well, thanks for dropping in...

      That's a great way to waste $30 grand.

      An undergraduate should come out with a set of logical problem solving techniques, familiarity with data structures and algorithms, and a working knowledge of C++, java, SQL, HTML, maybe some perl, UNIX, and Windows. If you have a CS degree and don't have these tools, you are ill suited for darn near any job that degree should prepare you for.

      Theory can be a very edifying thing...but when I go to work, it's still mostly for loops and function calls.

    58. Re:Real-world vs. school by thomas.galvin · · Score: 1

      I don't at all believe that most any student would graduate with a "productive" knowledge of C++, for example, based solely on their educational experiences. There just isn't enough depth to class projects. Additional work experience (internships, etc.) could give them this experience...

      Or sitting in front of their computer until 3am, bucause they almost have it...that's what separates those of us who are doing what we love and those of us who love the money they thnk they will be making.

    59. Re:Real-world vs. school by SJS · · Score: 1

      No, I'm not joking.

      When I was interviewing applications for programming, I made sure to look for breadth of interest and/or experience; if they were so focussed on $SHINY_TECHNOLOGY, they would be totally useless when it came to actually solving the problem. (Thank goodness I'm away from that now. It's so depressing to ask simple questions and get a totally blank stare in return.)

      A developer not only needs to be able to program, but they need to be able to quickly comprehend some new problem domain. Those who can't simply recommend whatever is currently being hyped at the moment. ("Your systems are slow? You NEED XML! Yes! Yes! XML will _solve_ ALL of your problems. And LDAP too! Written in C#! Yes! Much better than C!")

      MY biggest complaint about businesses is that so many of them won't step up to the plate and shoulder the responsibility of actually training people. Instead, the CEOs of businesses go golfing with University presidents and bitch about how the students from $UNIVERSITY are un-employable ("Your students graduate knowing about UNIX, C, C++, Lisp, Forth, Prolog, MATLAB, Calculus, algorithms, some crap like Big-O or Big-Theta, computability, some nonsense excuse like NP-complete, but they don't know Visual Basic. I can't give your students a job, why don't you fire all of your professors and scrap your curriculum and Get With The Times?" "uhh, okay.")

      [Note: this isn't about _all_ businesses, as there are plenty of 'em out there that recognize that learning a new programming language isn't hard if you already know a couple, and that by the time the new hire has learned the local programming culture sufficiently well to touch the existing code-base without supervision, they'll also be up to speed for the language....]

      The students who think they're wasting money crying for $LANGUAGE_OF_THE_MONTH should go to trade schools, not a university. But, no, they want the prestige and job options available to University graduates, but without having to learn as much. University graduates in CS -- the ones who didn't waste their money -- can learn the basics of a new language on their own (and do even better with some expert guidance nearby). Nearly half of the languages I put on my resume I learned on my own -- at least enough to write small to medium sized programs with it.

      If I have the skills you want, then you're not going to be hiring me for an entry level position; if that's what you offer me, then you're trying to rip me off.

      --
      Pick One: http://www-rohan.sdsu.edu/~stremler/sigs/sigs.html (Note - disable Javascript first!)
    60. Re:Real-world vs. school by SJS · · Score: 1
      Heh.

      The problem with this is that while I was attending school, it would have been Visual C++, Visual Basic, Access, and .BAT file programming.

      Perl? Java? Unix? Nah. Why bother? Business has declared that Microsoft is the winner!

      (And as far as I am concerned, "Working knowledge of C++" is "C++ sucks big rocks thru small straws")

      SQL isn't hard, in the basics, but it is tricky to do the fancy stuff well. So yeah, SQL. But HTML? In a _CS_ curriculum? You must be kidding.

      Far better to have 'em take a data visualization course, perhaps based on something by Edward Tufte.

      --
      Pick One: http://www-rohan.sdsu.edu/~stremler/sigs/sigs.html (Note - disable Javascript first!)
  10. Erm. by Dr.+Sp0ng · · Score: 5, Interesting

    This is new? They used something like this when I was at the University of Maryland a few years ago. And it did more than just check for exact matches, it compared parse trees and so on to check for similar program structure (any matches were, of course, double-checked by a human before ringing the cheating bell). It caught quite a few people I knew.

    1. Re:Erm. by vagnerr · · Score: 1

      I "wrote" my own version of a checker I simply diff'ed every students project against every other one wc'ed the results and sorted by order of size then took a close look at the first 10-20
      I caught about 12 students out of 100 doing it.
      Fact was I had other programs actualy automarking the assessments as well, but thats another matter :-)

      --
      -- Vagnerr - (www.vagnerr.com) Never attribute to malice that which can be adequately explained by stupidity.
    2. Re:Erm. by Gkeeper80 · · Score: 1

      They still do this at Maryland, and I can't beleive that any University offering a large computer science program would not be using it. All grading of these intro level projects is done by an automated process which diffs the output against one the TA's did and runs a cheat checker against it. Then they usually pay some TA's to go through and make sure you used comments appropriatley. The checker isn't just a diff -bwi though, it can detect when variable names are the only thing that's been switched, too.

      Besides, the artical says that this has been around since 1993 that's almost 10 years. The second part of the artical is about something that happened a year ago. Must have been a very slow day at Yahoo! News

    3. Re:Erm. by Anonymous Coward · · Score: 0

      Drexel University uses a similar system to Univ. of Maryland. What's all the hype about??

    4. Re:Erm. by Angst+Badger · · Score: 1, Flamebait

      I have to wonder how many false positives this would generate for programs where the implementation is either trivial or obvious.

      "Class, I'd like you all to implement a splay tree in a unique and novel way."

      --
      Proud member of the Weirdo-American community.
    5. Re:Erm. by BluesMoon · · Score: 1

      It isn't generally implemented for trivial problems. If the assignment
      were to write an implementation for bubble sort, chances are everyone
      would have the same - maybe different variable names, but otherwise the
      same code.

      --
      Do not underestimate the value of print statements for debugging.
    6. Re:Erm. by bunhed · · Score: 1

      I can't help but wonder if you ran the UofM code against the GT code, what you would come up with.

    7. Re:Erm. by ajna · · Score: 1

      They use it at Harvard, too, at least in the two major intro classes, CS50 and CS51. This concept is definitely not new, and that the powers-that-be posted it might be taken as evidence that they didn't attend CS classes at a university (since, judging from the other posters' comments, almost all schools use this).

    8. Re:Erm. by jmccay · · Score: 1, Flamebait

      Actually, if you had read the article the software was created in 1993. So, no, it's not new. I am not convinced these tools work all the time. Let me get his straight, some Professors making too much money now have a program to their work for them? I am in the wrong line of work. IANAL, but I doubt a Univeristy would win if a student sued over this unless all results are checked by a human. You knwo there is going to be some Profs that don't perform a human check and inocents will get blamed for something they didn't do.

      --
      At the next eco-hypocrisy-meeting, count the private jets used to get to the meeting. Should be interesting to see that
    9. Re:Erm. by Anonymous Coward · · Score: 0

      I doubt this is new. At the University of Iowa I know for sure there was an Engineering class that used a program to compare C code projects in 1997. I'm sure the CS department used something similar.

    10. Re:Erm. by MillMan · · Score: 2

      They had this at the U of MN when I was taking a few programming courses in 1997 or so. I was taking a "structures of programming" class, and a friend of mine and I decided to "help each other out". The class was based on that god forsaken language, scheme. Well, we got busted, but they didn't do anything to us, thank god. We could have been kicked out of school. Wasn't the brightest thing I ever did. Anyway, after that class I switched to EE and that's what I'm doing today.

      I'm sure various schools have had this for a very long time. A script using a lot of diff commands wouldn't be very hard to develop.

    11. Re:Erm. by Anonymous Coward · · Score: 0

      the UofM code doesn't even work well
      i should know

    12. Re:Erm. by tocqueville · · Score: 1

      Last time I talked to any of the teaching assistants there they did check all the positive hits by hand just to make sure.

    13. Re:Erm. by Anonymous Coward · · Score: 0

      Not only does the Maryland checker go through parse trees, it renames all of the variables before it parses. That way, if someone simply went through and changed variable names it would still flag them as cheating. It can also convert for loops to do/while and vice versa. It's very advanced, very fast, and surprisingly accurate.

    14. Re:Erm. by TheAJofOZ · · Score: 2
      The current champion watchdog of plagerism at Griffith University in Australia is still Google. Of course, this is mostly useful for essay assignments rather than code, but has been successfully used for code on occasions as well.

      The process simply involves searching for a few key phrases from the essay and seeing what comes up. If the student has pulled the essay from the internet, they almost always get caught out like this. The secret to it though is that lecturers keep their eyes open for sudden improvements in quality or argument, grammer or phrasing. Though the class may be up to three or four hundred students, assignments are marked by the tutors so the number is reduced to sixty or at most ninety. This also means that the tutors know the students fairly well because they have the small group contact from the tutes.

      About the only time I remember this method failing was when a rich picture was required as part of an assignment and everyone used MS Word clip art and came out with almost the exact same rich picture. I guess they figured they couldn't accuse the whole class of cheating....

    15. Re:Erm. by nick_danger · · Score: 2, Interesting
      This is new?

      Like they need a computer program to do this?

      Um, when I was at the University of Illinois in the early '80s, they had a decidely low-tech but nonetheless effective technique: very lightweight paper and bright lights.

      Fully half of the class of 400 failed the final project -- a particularly tough one at that -- in the assembly language class I took. The TA's noted an awful lot of assignments that looked similar. Sure enough, a bright light was all it took to see that there were a lot of identical printouts. There were even a dozen or so that didn't even have sense enough to remove the name of the author of the code from the comments!

    16. Re:Erm. by spitzcor · · Score: 1

      Maybe they have better technology. I don't know.

      We had the same thing at Michigan State. I know a couple of people who were caught and it takes more than changing variable names and function orders to fake out MSU's goods.

    17. Re:Erm. by Anonymous Coward · · Score: 0

      Let me get his straight, some Professors making too much money now have a program to their work for them?

      Have you ever used a lever? You lazy bastard, making the lever do your work for you!

      Computers are tools. People who think that letting computers make life easier for humans is a sin probably don't become CS professors.

      For the non-luddite rest of the world, programs that save us time which can then be devoted to other important things are part of the point of computers.

    18. Re:Erm. by smashdot · · Score: 1

      When I was a student beginning CS at NCSU in 1994, the profs and TAs were using a similar program to check for cheating. It checked source code, parse trees, assembler, and machine code to flag possible cheaters. I think it was based on GCC, but I could be wrong.

      I must say that this is pretty old news to me, but anyone studing CS should be aware of the fact that similarities in source code are not the only way to get caught cheating.

      --
      "C" is for cookie, that's good enough for me.
    19. Re:Erm. by Feynman · · Score: 2, Informative
      Really.

      I started at The Univerisity of Iowa College of Engineering in 1993 and, as far as I know, the professors teaching programming courses had something like this from day one.

      Incidently, an academic environment should be partially different from an industrial one. Sure, you won't get fired in industry for getting help from a collegue, but if you've never developed the basic skills needed to do your job (because you always relied on your more dedicated classmates to complete your coursework), you won't last long.

    20. Re:Erm. by Anonymous Coward · · Score: 1, Flamebait

      You idiot.

    21. Re:Erm. by Anonymous Coward · · Score: 0

      True, but for large projects there are going to parts that match.

      Ohio State, for instance, had a retarded set of C++ libraries you were required to use. "Text" was basically a "string" but with very few methods, so whenever you had to parse "Text" it would be similar for all students. It was quite common for people to have 4-5 lines at a shot that were identical.

    22. Re:Erm. by ameoba · · Score: 3, Funny

      Eh? How could they tell? Everything written in Scheme looks exactly the same.

      --
      my sig's at the bottom of the page.
    23. Re:Erm. by brizna6E · · Score: 0

      At Carnegie Mellon, they've been using it for years. They only do it for students who they expect may have cheated (not on everyone), and it's supposed to be pretty accurate. This year, they've supposedly written a much better version. When I say "they" I mean a collaboration amonst the top 25 or so C.S. programs in the nation. Good job with the research Slashdot.

    24. Re:Erm. by Anonymous Coward · · Score: 0

      bleh. God loves Scheme!

    25. Re:Erm. by Anonymous Coward · · Score: 0

      What does artical mean?

    26. Re:Erm. by ledgeerama · · Score: 1
      They have a similar system at the Comp Sci department at the local university. So this certainly isn't new.

      The biggest problem they then have is actually doing anything about the cheats. To actually take action against someone who is cheating the department needs to get support from the universities administration, who don't know anything about programming. This generally means they don't accept that a student is cheating even if all they have changed is variable names.

      Pretty much the only way they can take action against a student is if they confront the student and the student confesses.

    27. Re:Erm. by fcrick · · Score: 1

      When someone is using code from a guy who took the class five years earlier, computers are the only option here.

      --
      Your signatures belong to me.
    28. Re:Erm. by shninja · · Score: 1
      At Michigan State University they have used something similar to what you describe for at least 4 or 5 years. When I took an intro to C++ called CSE 231, Introduction to programming, it was in place and the same instructor still teaches that course. Here is his exact statement from his current syllabus:
      Each project solution is electronically compared to all other solutions to identify similar solutions. Teams or individuals that submit solutions that are essentially identical will receive a score of zero for that assignment. A student who is involved in a second such incident of academic dishonesty will receive a grade of zero in the course. Under no circumstances should you share a project solution with another team or individual. Sharing your solution almost guarantees a zero score: past experience shows that a student who asks to "look at" your solution will copy parts of it or pass it along to someone else who copies it.

      Can't you imagine how most well-rounded individuals would struggle with this? Being conditioned to share for all those childhood years. I share lots of stuff today even, files, music, movies, toothbrush...I, mean eh. yeah. You can look at the entire sylabus here.
    29. Re:Erm. by MLoff · · Score: 1

      I'm currently a CS student at the University of Maryland.

      I know several people who have been accused of cheating after the "cheat software" detected code similarities... Were they guilty? Yep.

      A member of the honor council came to one of our lectures to discuss the problem of cheating in CS... She said that the majority of cases that their board sees are from the CS department. Is that because there is more cheating in CS? I don't think so -- I think it's because CS takes greater care to detect and appropriately punish cheating than other departments.

      One of our CS professors talked about the "cheat detection" program that they use, and described it as very accurate (i.e. when it flags two sets of code as being similar, they usually are to the point of great suspicion)

      I really have no objection to the use of a system like this -- our CS projects are always large enough such that -great- similarities between students' work shouldn't exist.

    30. Re:Erm. by geggle · · Score: 1

      In the past, I've done a fair bit of undergrad CS course marking. It never ceased to amaze me that:

      a) students copied from other students in the same tutorial class (who would most likely get marked by the same person), and

      b) students copied their answers from the dumbest possible fellow student (so many times you'd detect copying because two students attempted the assignment in exactly the same completely stupid and incorrect manner.)

    31. Re:Erm. by carlivar · · Score: 1

      Indeed, this is not new, or news, at all. They used a system just like this during my brief time as a Computer Science major at University of Illinois at Urbana-Champaign. That was in early 1996! Carl

      --
      Vote Libertarian
  11. So? by BrianGa · · Score: 1

    I'm not surprised, since systems such as this are already widely used for detecting plagiarized essays.

    1. Re:So? by Anonymous Coward · · Score: 0

      And if you had read the fscking article you would have known that http://plagiarism.phys.virginia.edu/ was around, and wouldn't need to mention it to us.

    2. Re:So? by Anonymous Coward · · Score: 0

      Once again, that only catches the stupidest plagarists. You still need a real, live human being to catch anyone that at least knows how to use a thesaurus.

  12. Flame-bait in comment aside: by SnowDog_2112 · · Score: 5, Insightful

    Remember, folks -- you may not get fired for consulting with a fellow programmer, but if you never learn how to do anything but copy & paste other people's code, you've lost out on a LOT of problem solving skills.

    There's a difference, a huge difference, between collaborating and cheating.

    In the real world, you _would_ get fired for taking credit for someone else's work, trying to pass it off on your own. Heck, you'd probably also violate a bunch of licenses, too :).

    --
    Not representing or approved by my company or anybody else.
    1. Re:Flame-bait in comment aside: by StaticEngine · · Score: 5, Funny

      In the real world, you _would_ get fired for taking credit for someone else's work, trying to pass it off on your own.

      Actually, from what I've seen, in the real world you get promoted for taking credit for someone else's work, especially when it's one of your underlings who slaved away while you were out on the golf course.

    2. Re:Flame-bait in comment aside: by Spectre · · Score: 5, Funny
      if you never learn how to do anything but copy & paste other people's code


      Then you are known as a JavaScript coder ...
      --
      "Flame away, I wear asbestos underwear"
    3. Re:Flame-bait in comment aside: by Anonymous Coward · · Score: 0

      In the real world, you _would_ get fired for taking credit for someone else's work, trying to pass it off on your own.

      IF YOU ARE CAUGHT! Thus, DONT GET CAUGHT.

    4. Re:Flame-bait in comment aside: by ReidMaynard · · Score: 1

      mod this up

      truer words have never been spoken

      --
      -- www.globaltics.net

      Political discussion for a new world

    5. Re:Flame-bait in comment aside: by iabervon · · Score: 2

      If you can copy & paste someone else's code, and it does what your code is supposed to do, then you shouldn't have been asked to write it yourself. Just use your coworker's code.

      If you can copy & paste someone else's code, and change it slightly so that it does what you want it to do, then you're a perl programmer. Or rather, then you can work effectively in languages you don't really know, which is a valuable skill when you're doing elementary programming tasks.

      Realistically, if someone has only taken the basic classes and not anything more advanced, I wouldn't give them a task more complicated than a simple cut & paste from a script lying around.

      Of course, this is one of the situations where the solution you would use in the real world isn't the desired result. In the real world, everyone would be doing different things (and you could copy the code if you wanted, but it would probably be easier not to), but that would be impossible to assign or grade (unless the problems were in some extremely clever way based on the student's name or ID number or something).

    6. Re:Flame-bait in comment aside: by bareman · · Score: 5, Funny

      Oh my God. I have to get some underlings. I'd love to go golfing.

    7. Re:Flame-bait in comment aside: by ctimes2 · · Score: 1

      Boss-man? Is that you?! I thought you had conferences every week at 11 am?! son-of-a...

      --
      My cube. My friend. My solace. My prison.
    8. Re:Flame-bait in comment aside: by Cerberus7 · · Score: 1

      Or a big bonus. Geez. I don't give a rip about the credit, but I would like somebody to remember those times I've turned a manager's "no, we can't do that" into a 5-minute solution that makes everybody happy when it's evaluation time. I want some of that bonus pay, too.

      --
      I don't know about you, but my servers run on the power of cotton candy and happy thoughts. -Anonymous Coward
    9. Re:Flame-bait in comment aside: by Anonymous Coward · · Score: 0

      Do not try that shit where I work. It takes an act of god just to start on a five minute solution.

      I was written-up for writing a quick program that was beyond the scope of my then current project; the program was in response something we were ask about in a meeting, and my manager said that such a report was impossible. BTW, they still use the report.

  13. this isn't new... by gtdistance · · Score: 1

    Wow, they learned how to use diff?? :)

    Seriously, I'm pretty sure they already to this here at University of Michigan. At least the professors SAY they do. I suppose it could be a bluff, but I don't see why they wouldn't do it.

    1. Re:this isn't new... by vvest · · Score: 1

      They definitely have it here at U of M. I know of a few people who got caught by it. They've had it for years. I love how the news reports other schools doing this stuff as if it's groundbreaking. Remember that teacher at Virginia who wrote a program to compare term papers??? I believe that U of M's compares the compiled assembly code. So the "crafty" student who changes variable names in the source will still get caught.

    2. Re:this isn't new... by Anonymous Coward · · Score: 0

      University of Michigan was definately using this back in 1994. Peter Chen was my prof for a couple of programming classes that year and I remember talking to him about it. Not sure where the comparison code came from though :)

      Looks like some of the other universities are finally catching up.

      Go Blue!

    3. Re:this isn't new... by Anonymous Coward · · Score: 0

      Dude,

      I just had Peter Chen last semester for 482 and he's fucking incredible. Memorized all 200+ students' names. As for cheat detection, this was being done back in eecs 100 which I took 3 years ago. There's absolutely nothing new whatsoever in checking source code or binaries. The mere fact that this type of "news" was posted on slashdot shows how little experience cmdrtaco et al have had in academia.

  14. blergh by fintler · · Score: 0, Troll

    yet another reason the switch to MIS...heh

    1. Re:blergh by Anonymous Coward · · Score: 0

      yet another reason the switch to MIS...heh

      ... where cheating is SOP.

  15. I can make one of those by nomadic · · Score: 0, Troll

    ln -s cheatingdetector /usr/bin/diff

    1. Re:I can make one of those by Howie · · Score: 3, Informative

      You failed (ln: File Exists). That would be:

      ln -s /usr/bin/diff cheatingdetector

      --
      "don't fall into the fallacy of believing that Perl can solve social problems. Maybe Perl 6 can, but that's a ways off"
    2. Re:I can make one of those by Anonymous Coward · · Score: 0

      Actually it would be more efficient to do:

      ln -s /usr/bin/diff cheatingdetector

      :)

      Artaxerxes

    3. Re:I can make one of those by nomadic · · Score: 0, Troll

      yeah, yeah, it's been a few months since I linked something, so sue me.

    4. Re:I can make one of those by _xeno_ · · Score: 1
      Woohoo! There's someone else out there in this great Internet who thinks that the order of arguments to ln is backwards and makes the same mistake I do repeatedly...

      I dunno why I always mess it up - it makes a certain amount of sense in the order it's in - I guess it's because I think the "-s" option takes the name of the new link or something.

      I'll blaim it on mild dyslexia and be on my way :)

      --
      You are in a maze of twisty little relative jumps, all alike.
    5. Re:I can make one of those by nomadic · · Score: 1

      I think I do it that way by accident because every other command line option of everything else I've ever used seems to have been so counterintuitive. Probably just reflexively pick the wrong order...

    6. Re:I can make one of those by Anonymous Coward · · Score: 0

      The problem with ln (although I am in no way advocating a change now) is that it appears to read "link file_a to file_b". It is easier not to read command lines in english; just remember that, as with most commands, the new file usualy follows the old file

  16. Repost Detector by Unknown+Bovine+Group · · Score: 5, Funny
    Maybe Slashdot could use this technology to stop reposts.

    --
    m00.
    1. Re:Repost Detector by frunch · · Score: 1

      I have an idea. Slashdot could use the diff command to stop people from posting redundant comments!

    2. Re:Repost Detector by Anonymous Coward · · Score: 0

      Maybe Slashdot could use this technology to stop reposts.

    3. Re:Repost Detector by Anonymous Coward · · Score: 0

      Maybe Slashdot could use this technology to stop reposts.

  17. I don't think it's the first... by TJPile · · Score: 1, Insightful

    The Rochester Institute of Technology (R.I.T.) has a "try" command that compiles, tests, runs, and submits a students coding assignments electronically. I believe the programs are then run through a big hash function to detect similarities between the submitted code and all other submitted code. I don't know how far back their data comparison goes, however.

    1. Re:I don't think it's the first... by Anonymous Coward · · Score: 0

      I'll bet that works when you code it in a new language ;)

      Or maybe you don't get that flexibility at RIT...

  18. too easy... by mrpotato · · Score: 0, Redundant
    that is, a program which compares students' coding assignments to each other and detects exact matches

    Yeah, it's called "diff"...

    --

    cheers
  19. Not really news.... by Ian_Bailey · · Score: 2, Insightful

    The article talks about a program that has been around since 1993 and merely detects exact duplicates of code...
    Not really a big deal... Our school uses some University's program and database which not only detects fragment duplication, but also permutations of the code (such as changing variables, white space, etc.). Not sure which University though....

    1. Re:Not really news.... by DahGhostfacedFiddlah · · Score: 4, Insightful

      Wouldn't the easiest way of detecting variable-names/whitespace/etc be to simply compile&strip the program, *then* run diff?

    2. Re:Not really news.... by kinko · · Score: 1

      I don't think running diff on the binaries would work, because listing the functions in a different order within the source code would make the binaries look completely different.

      As others have mentioned, using a parse tree to look at the underlying structure of the logic is a better way of checking programs for copying.

    3. Re:Not really news.... by sundae · · Score: 1
      Hm.. You mean the one used for CS342?

      A friend's friend, who was on work term somewhere on the west coast, got an email from the *lovely* lady (not), ORDERING him to see her at her office the next day to discuss some "academic offense". Of course he wasn't going to shell out a couple hundred of bucks to pay her a visit. It turns out this person kept his assignments on the server, and someone taking the course that term went into his directory--which was set to r-- permission for others--and grab the files by name. The cheater probably didn't change the files at all and got caught.

    4. Re:Not really news.... by Anonymous Coward · · Score: 0

      It detects way more than exact matches. and is more complex than 'diff', which seems to be the most creative solution that the slashdot crowd has managed to eek out.

  20. DIFF(1) by mmca · · Score: 1

    diff(1)
    In the simplest case, diff compares the contents of the two files from-file and to-file. A file name of - stands for text read from the standard input. As a special case, diff compares a copy of standard input to itself.

    Sounds like they developed diff again.

    -M

    1. Re:DIFF(1) by bharath · · Score: 1

      Actually some of these systems look for structural rather than verbal similarities. A bit more complicated than diff.

  21. And this is news? by Durandel1020 · · Score: 1

    Professors have been using WinDiff for many years now... whats so big about this?

    1. Re:And this is news? by Daengbo · · Score: 0

      Yeah! I get First "Diff" Post. Oh.... I guess that should be hundredth. Sorry.

  22. article is about 5 years too late... by edrugtrader · · Score: 1

    university of wisconsin had the exact same thing, and i went there 5 years ago.

    my friend actually got kicked out of schoole for a year because his program matched someone else's like 95% or something.

    it compared variable names, syntax, style, and just general 'sameness'... i guess for most projects 50% would be average, and they just flag the ones way off the mean.

    --
    MARIJUANA, SHROOMS, X: ONLINE?! - E
    1. Re:article is about 5 years too late... by Anonymous Coward · · Score: 0

      But was he cheating or not? I wanna hear if these programs generate a lot of false positives. I can't tell you how angry I'd be if I was kicked out of school because some program said I was cheating when I wasn't.

  23. Stifiling Reusability? by realdpk · · Score: 2

    Don't get me wrong, I understand that cheating on a test is wrong. I'm concerned that this sort of thing may help promote the "wasn't built here" syndrome (I believe it's called something else.)

    I'm just hoping that this is balanced with a few lessons on reusing and sharing code, for practical purposes.

    1. Re:Stifiling Reusability? by mandolin · · Score: 1
      "wasn't built here" syndrome (I believe it's called something else.)

      NIH (not invented here)

    2. Re:Stifiling Reusability? by Anonymous Coward · · Score: 0

      Yes, but any untrained computer user can search the net for code snipets, copy & paste them and maybe even understand them. The CS assignments they test for plagiarism are designed for solving solo.

    3. Re:Stifiling Reusability? by ameoba · · Score: 2

      Why is there so much resistance here to the idea that CS courses are a place to LEARN TO WORK FOR YOURSELF. Everyone has to learn to work on their own before they can positively contribute to a group. I'm not saying that CS degree == programming degree, but if you don't know how to program, your abilities as a CSist are likely to be questionable.

      Not to mention that most CS assignments are DESIGNED to be done by a single person. There is a time and a place for colaborative work, but if you're going to work in a group, expect to have an assignment that requires more than one person to accomplish.

      --
      my sig's at the bottom of the page.
  24. Old hat by Anonymous Coward · · Score: 0

    I worked as a teaching assistant at Purdue and we had a coding checker back in 84-85. It compared parse trees of students programs. Did very well at catching those that just changed variable names and resubmitted work.

    --morris meyer

  25. uuuhhhh by Anonymous Coward · · Score: 0

    This is nothing new, I went/go to George Mason University and they've been doing that for a few years now, and not just for CS related courses ... I'm sure other schools have been too ... Ryan

  26. Diff? by jailbreakist · · Score: 1

    Shouldn't sufficiently small diffs be enough to flag two assignments as potential cheats?

  27. How exact? by Stiletto · · Score: 2, Interesting


    It better check for exact duplicates only, down to the variable names. Many undergraduate CS assignments are programs so basic that there are really only a few ways to implement them. It would suck to be a student who from scratch used the same algorithm as another student, and have them both flagged as cheaters.

    1. Re:How exact? by gorillasoft · · Score: 1

      It better check for exact duplicates only, down to the variable names. Many undergraduate CS assignments are programs so basic that there are really only a few ways to implement them. It would suck to be a student who from scratch used the same algorithm as another student, and have them both flagged as cheaters.

      Just use really odd variable names in your program, such as MyProfessorIsSuchADoink and you should be okay.

    2. Re:How exact? by Junta · · Score: 5, Informative

      You would be surprised how well this works in practice, even in intro classes. When I was a freshman taking intro to cs, they used one of these programs and got few false positives. If it matched exactly, down to the variable names, then it would be completely pointless. The one that my college was using back then matched regardless of variable/function names, or any source formatting. Essentially, it examined the overall algorithm and run-time execution paths to determine if there was likely cheating.
      Besides, even if the system turns up a high match between two programs falsely, it is ultimately a human who gets to review the case and make the call, after (presumably) discussing the matter with the student before actually doing anything that would leave a mark on the record.

      And as an answer to the knee-jerk reaction of "that's not how it works in the real world!" I tend to agree, but not completely. As an instructor of mine once said you have to learn to dribble before you can play with other people in a team in Basketball, and as such one needs to develop his or her own personal programming skills independently before he or she may work effectively in teams.

      Of course, some could argue that learning in teams would be more effective and perhaps more useful, but the point is there needs to be a mix of team and independent projects. Without independent projects at all, it is difficult to be sure that everyone is competent to pull their own weight, and part of the role of Universities in the world of business is to certify that a graduate possesses a good skillset, and without both team and individual assignments, this is impossible.

      Of course, as is the case with everything, this doesn't stop cheating. If one collaborates with someone completely unrelated to the class, it can't catch that, but then again, there aren't that many people inclined to work their butt off at no benefit to them just to help some other person get a good grade.... Of course, I have seen the case where a guy goes way out of his way to help a pretty girl, but that is another story entirely...

      --
      XML is like violence. If it doesn't solve the problem, use more.
    3. Re:How exact? by Brownstar · · Score: 4, Interesting

      I actually had that happen to me. I was taking an assembly course where the teacher wanted us to reverse the order of values in a list.

      He gave us a long complicated piece of c code to do this, but instead I just used a stack (we didn't "learn" about those in class untill a few weeks later). Well, it just so happened 1 other student felt like writing the 11 line stack implementation, rather than the 100+ line one the teacher recommended. The teacher then said we cheated.

      Fortunatly we were both able to explain how our code worked

    4. Re:How exact? by hardburn · · Score: 1

      But then cheaters could just change a few variable names and get away with it. You really need a human to review the programs flaged as cheaters, someone who knows that 20 identical 'Hello, World!' programs is to be expected.

      --
      Not a typewriter
    5. Re:How exact? by gmhowell · · Score: 3, Interesting

      Not necessarily. I was at a college that I won't name where I was on the Academic Honor Board. Essentially, suspected cheats were brought before the board to decide on guilt/inocense (sp) and give punishment.

      Computer cases were the most common (4 of the 5 cases I sat in on). One day, we had three cases, with different defendants in each one. All programs, from about 15 students were essentially identical. What were the differences? Capitalization of variable names, and indenting style. That's it. So, while they were not 'exact' copies, they were close enough in my mind to merit guilt.

      They were fairly trivial programs. I think a total of maybe 150 lines of code or so. Can't remember if it was some form of basic, or C (I really think it was the former). There were a few ways to do the problem (I think it sorted words or something). But the striking thing is that the variables were typical CS100 nonsense names (variablefoo, variablebar, but NOT simply 'i' for iterator or 'x') of four-five characters in length, differing only in that some students had all uppercase, and others all lowercase.

      Now, I suppose that if the instructor had said 'use these variable names' there is a defense. But that was never mentioned.

      I think the ultimate answer was that almost everyone admitted that they did some amount of copying, and all got zeroes on the assignment. I can't remember if any failed the class (and no, nobody was tossed from school).

      But this is the interesting thing: Each of the three cases was about the same instructor, with the same program. But they were brought as three cases. We were presented the hard copy evidence for all three cases at the beginning of the morning. During a break after the first case, I flipped through the other evidence packs. I saw that the copying was very, VERY similar in all three cases. In fact, there were more similarities between program A in case 1 and program B in case 2 than between Program A in case 1 and Program B in case 2. To my mind, it was clear that the cheating was much broader than indicated. However, I was ignored. Our power was only as petit jury, judge, and executioner. We had no room to act as grand jury. (In addition, this was my first real world experience with a judicial system unable to understand technical issues. I was a chem major. Roommate was a CS major. I was the only hard-science guy on the board. The others were various history/business majors.)

      Anyway, the point is: exact copies are probably always cheating. But near copies are also sometimes cheating.

      --
      Jesus was all right but his disciples were thick and ordinary. -John Lennon
    6. Re:How exact? by Anonymous Coward · · Score: 0

      Good point.. No professor with decades in the computer science field would be able to determine if two assignments matched up for harmless reasons. People don't ever make value judgements. I am sure the software fails the student itself without notifying anyone. pfft.

    7. Re:How exact? by Anonymous Coward · · Score: 0

      Moreover, if two students use uncustomized emacsen with lang support then there's a goodly chance they'll have the same indention too.

    8. Re:How exact? by poot_rootbeer · · Score: 1


      If a solution algorithm is reasonably correct, then it will flag EVERYONE who uses it as a potential cheater.

      How do you determine who copied from whom (or if any copying took place) when the analysis shows that 100 students in a class of 300 turned in similar code?

    9. Re:How exact? by Moogoo · · Score: 1

      I agree completely; these detectors can be useful, but they can also be misused. I was a TA for an introductory C course that used a similar cheat detector. The head TA demonstrated by showing us two past programs that had been flagged and which he felt were indeed an example of cheating. However, the examples of "cheating" which he pointed out included blocks of code such as this:

      for (i = 0; i < size; i++)
      {
      array[i] = 0;
      }

      There were many other similar examples. The point is, it is often true in an introductory class that there really is one "best" way to do something. This quote from the article worries me in particular:

      "But for the most part, the degree of similarity that this program is looking for - the commas are in the same place, the semicolons are in the same place, the spacing is the same, they've made the same mistakes"

      In our class, we taught programming style, including things like where to put semicolons, how to indent, how to name variables, etc. So, I don't think it's at all unlikely for different students to put commas, semicolons, and spaces in exactly the same places. There are also several common mistakes that we see over and over (for instance, forgetting to allocate space for the terminating in a C string). So, while I agree that the things mentioned in the article can be warning flags, they are by no means proof of cheating. I hope that course staff who use these programs will use them wisely and not go overboard with the accusations of cheating.

    10. Re:How exact? by gfxguy · · Score: 1

      That's funny... I had a numerical analysis teacher who wanted people to use fortran. When I used the built in recursion in C and solved a problem in one page, while everyone elses was 4 pages or more, without even seeing it run he handed it back and said "this can't possibly work!".

      Luckily I talked him through how it worked and he grudgingly accepted it. I was annoyed then, but in retrospect it's more sad than annoying.

      --
      Stupid sexy Flanders.
    11. Re:How exact? by mbcbvn · · Score: 1
      "Fortunatly we were both able to explain how our code worked."

      I think you've hit on something there. From my experience, working with classmates and as a tutor, the people most likely to copy code are also the most likely not to be able to explain how it works. I've spent hours helping someone on an assignment, making them /* comment their code */ every step of the way, and the next day it's like greek to them again.

      Of course, this doesn't account for the people that 'get it' but are just too lazy to do all the typing.

      --
      dd
    12. Re:How exact? by Anonymous Coward · · Score: 0

      This is absolutely flawed thinking. Except that you say that they all admitted some form of cheating, you could have erroneously marked three people as cheaters.

      In projects as small as what you indicate, with sufficiently uninteresting people, identical assignments, even down to variable names could be expected.

      A program that small probably does not warrant a significant difference in implimentation. Even if it does, all were probably discussed in class. Depending on how much board work, or explicit demonstration of code by teacher or class mate, it is very easy to consider that a small 150 line code could match in structure and algorythm.

      If this was an entry level class, and this was the students first exposure to formal programming, they probably only had class room interaction to get an idea of naming conventions. This being the case, all the students of the same teacher would use the same naming conventions, even names, quite probably.

      In my entry level courses, nothing but exact matches would have, or should have even raised an eyebrow. We did extensive code generation as a class, discussing problem solutions through interaction, and writing the pseudo-code, etc. After a while it was quite usual for several people to come up with identical pseudo-code for a problem solution in class.

      It would be like trying to throw a person out for cheating if they turned in a math assignment that had all the work shown identical. In any given calculas class there are going to be students whose work would be indistinguishable from the instructors. This is very similar to entry level programming classes.

    13. Re:How exact? by Sycraft-fu · · Score: 2

      I still have to think that being too loose is a bad thing for a basic class. I took a fair amount of programming classess at the beginning of cellege. Now in the 300 level classess, ya, a real loose checker would be good. They were so complex there was an infenticimal possibility of two students legetimately producing a program that was the same by chance. However in the 100 level classess, the programs were so simple, I bet many of them were almost dead identicle. For example, there was an assignment to make a progrma (in Java) that creates two variables, assigns them each a value, and prints out the sum of that. I dare say there are only so many logical ways to do that and many people arrived at the same conclusion.

      I'm just wary of auto-cheat checkers being too loose. One professor I encountered was going to have one for term papers that would flag based on five words words in a row being the same. That thing would be going off any time two students quoted the same source.

      Now I know that in the end a human looks at everything but the problem is I've seen people put too much faith in something like this, espcially no CS people. The cheat checker goes off, so they kinda take it at face value.

      It is just something to be mindful of.

    14. Re:How exact? by ethereal · · Score: 1

      Favorite not-quite-cheating incident: a freshman C programming prof gives out a lab assignment which is to write a function that does what strstr() does, plus a little more. We haven't covered strstr at that point, and have no way of knowing about it. It was supposed to be a fun exercise in pointer arithmetic, etc.

      Unfortunately a few of us knew what man pages were, and were looking for string comparison routines, found strstr(), and used it. The fact that they're all on the same man page may have led to that :) Prof was unhappy that we didn't do it the expected way, but he never said not to do it that way, so it ended up counting for credit.

      I'd like to think that the ability to do the research and find existing routines to do what you want is worth something, but then again I know that I can write strstr() from scratch if I need to. So I don't feel like I missed out on any real learning.

      --

      Your right to not believe: Americans United for Separation of Church and

    15. Re:How exact? by Anonymous Coward · · Score: 0

      Having taken the two classes mentioned at Georgia Tech, albeit many years ago, the level of programming expected is a bit above simple algorithms. My second programming class was implementing a reverse polish notation spreadsheet, using vi keys for navigation, in Pascal... And actually, I remember hearing about the code analysis tools well before 1993, as one of the people who helped write it died in 1993 (unless they're on another generation of it).

    16. Re:How exact? by am+2k · · Score: 1
      If one collaborates with someone completely unrelated to the class, it can't catch that, but then again, there aren't that many people inclined to work their butt off at no benefit to them just to help some other person get a good grade....

      What about getting paid for that? I know a person that did it once (and it was pretty expensive for the cheater).

    17. Re:How exact? by Anonymous Coward · · Score: 1, Interesting

      This remindes me of a situation that is going on currently. I have a freind who is draging this girl who he has the hots for thru the CS program at my school. Though he has generaly been very carefull not to actualy cheat by giveing her the code for any assignments, he does sit and tutor her one on one thru each assignment. The net effect is that because she has a very skilled programer sitting by her side for the many hours that she spends working on each program she ends up with exsilent code. The problem is that she is not learning what she needs to. When you take away the crutch that my freind provides she becomes completly helpless, not knowing how to even begin to write a complex program, or what documentation to read in order to find out how.

      One would think that the Midterms and Finals would be enugh to prevent something like this, However Though she consistantly fails Midterms and Finals her near perfict projects keep her afloat and she gets B's and C's.

      The continuous stream of outside help that she is reciveing could never detected by any cheating detector, she in fact does write all of her own code. However she still somehow manages to know almost nothing about programing.

      There are two things that truely sadden me about this situation, the first is that she will graduate with a little slip of paper that sais she knows how to program, while I have seen many of my freinds who could code circles around her wash out (usualy due to depression related life problems) The second is my room mate and dear freind who is draging her thru the Undergrad program is suffering for the effort. His grades have taken a noticable hit, and the extra work shows on him. (Sadly he does'nt stand a chance of catching her as a S.O. either)

      I guess its just a bad situation all around. I pitty the fool who hires her.

    18. Re:How exact? by AtomicBomb · · Score: 1

      When I was a freshman taking intro to cs, they used one of these programs and got few false positives.

      I would like to talk about this from another angle. When I was tutoring an introductory programming paper 2 years again, we also used something similar to detect for cheating. The "normal" programs were sent to TAs (us) with the "cheating" ones sent to the lecturers.

      The greatest problem that we encountered was false negative. False positive can deal with easily by human. False negative is way harder as the copied programs may be distributed to different markers.

      A false negative is not hard to generated. A brunch of students in my class created a pattern of useless code that worked quite well against computer:

      example: (say lim_a and lim_b must > 0, and do_something() is the hard part of the assignment)

      if(a > lim_a){
      do_something();
      }
      becomes
      if(b > lim_b && c==c){
      if(b > 0) do_something();
      }

      Of course, rather than c==c, they uses some less obvious "must-true" conditions. I discovered one of these when I did the marking and identified a a few more similar cases unnoticed previously.... These are even tough for human to identify. You may think the code is clumsy initially. But, if you will score a complete match if you compare a pair of those programs side-by-side.

      I agree that is nothing we can do if someone determines to cheat (esp. for those who are hiring others to do the assignment for them). We just try to make to playground a bit fairer for everyone.

    19. Re:How exact? by Anonymous Coward · · Score: 0

      narc

    20. Re:How exact? by DavidTC · · Score: 1
      It's truely amazing how many cute girls get though CS this way.

      Not that I'm saying all of them do, but it's a noticible demographic.

      --
      If corporations are people, aren't stockholders guilty of slavery?
    21. Re:How exact? by subtleluck · · Score: 1

      hahaha :)
      yeah i know that one. i once had a friend who had the hots for this girl, ask me to help her with her cs assignments cuz she couldn't cut it herself, so i helped her, no big deal. also used to help these chix i wasn't interested in, just so they introduce me to their friends, cuz i thought i stood a shot, no i was not dilusional (i think), cuz lets face it, there are NONE pretty girls in the cs classes (the ones i taken at least) i mean i saw ONE once and i couldn't stop drewling...too bad she was taken. i mean seriously a hot chick in the CS business, let's get real... you gotta go into phsychology, or philosophy or one of those. :)

  28. Reuse? by Belly+of+the+Beast · · Score: 2, Redundant
    I thought the point of OOP was reuse ???

    ;-)

    1. Re:Reuse? by hanway · · Score: 2

      Yeah, but cut-and-paste is the antithesis of proper OO reuse. Closer to OO would be to #include or exec() the files from a classmate's directory.

  29. I remember when my school did this... by gergi · · Score: 5, Interesting

    A few years ago, when I was a 2nd or 3rd year at Virginia Tech, some professor implemented a cheating detector into the automated grader for a class called Intro to C++.
    Prior to that year, VT had an average of 75 cheating violations for the WHOLE university (25000+ students). For that one class, on one assignment, 150 students were found cheating by the cheating detector... out of the 500 or so students in the class.

    Funny as hell

    --
    Nosce te Ipsum
    1. Re:I remember when my school did this... by kootch · · Score: 1

      so does this represent a violation of the honor code was happening and just not detected, or that the class had the avg number of cheaters, but that they were actually caught?

      of course, I'm assuming the technology employed wasn't buggy and was taking into consideration environmental factors...

    2. Re:I remember when my school did this... by jamesdood · · Score: 1, Troll

      Seems to me that with implementation of these programs M$ is going to lose a lot of their job candidates!!

      --
      *narf!*
    3. Re:I remember when my school did this... by The+Jake · · Score: 2, Informative

      Carnegie Mellon has been doing this for years. Not only does it compare your source against other students' sources, but the CS department has solutions for every student in the past 10 years.

      From what I understand the method used involved comparing source and generated assembly code for similarities.

      And while I'm on my soapbox, this is another article posting a supposed "new and newsworthy" technology to slashot thats really not so new. Check your facts, and find out if this is really a "first" why don't you?

    4. Re:I remember when my school did this... by bcrowell · · Score: 2
      There is a huge amount of cheating at all colleges. It tends to be significantly less at schools with honor codes, but it's still huge. Polls show a depressingly large percentage of students admit to cheating.

      In most cases, professors know about cheating, but don't do anything about it. Administrators often discourage professors frmo punishing cheaters, because it can create hassles with parents, parents threaten to sue, etc. It takes a huge amount of energy to pursue a cheating case, and many profs don't want to bother.

    5. Re:I remember when my school did this... by Captain+Salad · · Score: 1

      I can see this working in upper level classes (where you probably wouldn't need it), but usually the programming assignments in CIS 101 aren't very complicated. There's only so many ways a person can interpret cout"Hello World." I would think many of those programs would turn out VERY similar just out of chance.

      --


      frist prosts r kewl
    6. Re:I remember when my school did this... by AKcoolman · · Score: 1

      I currently am in the CS 1044 or Intro to Programing in C and they are still using the system.

    7. Re:I remember when my school did this... by pjdepasq · · Score: 2

      As a current TA for the class mentioned above, I can only validate what a huge problem this is here at VT. We use a variety of methods in our analysis, one of which is MOSS from Berkeley.

      This deparment has a near 100% conviction rate with the university's student run honor code and all cheaters are prosecuted fully. I agree with one poster below that one goal of a CS program is to develop people who can do things on their own. Working together has it's place, but cheating (generally as a form of laziness to get help when you don't understand something) when collaboration is not permitted is just plain old bad.

    8. Re:I remember when my school did this... by danielobvt · · Score: 1

      My, what a Cavalier attitude.
      Of course, VT graduates more CS students than the other schools in the state combined (at least in my year), so some of them are just envious of us.

    9. Re:I remember when my school did this... by deander2 · · Score: 3, Interesting

      Yep, I was there that year. It was Dr. Walker who implemented the system. Walker is a fast-moving but excellent programming teacher. That one class did more for the quality and structure of my programming than anything else I have done either before or since. (I'm now leading a team of programmers for the DOD doing a enterprise level java application, btw.)

    10. Re:I remember when my school did this... by Anonymous Coward · · Score: 0

      I think this is great. It tarnishes my degree (CpE) and my school's reputation when "cheaters" get out there and fall on their face. Employers would say, "What the hell are they teaching at XYZ?".

      There was a ridiculous amount of cheating where I went, so I'm glad to see some schools will take measures to see that the "cheaters" don't get their degrees.

    11. Re:I remember when my school did this... by Anonymous Coward · · Score: 0

      "Of course, VT graduates more CS students than the other schools in the state combined"

      Thats like winning the special olympics!

    12. Re:I remember when my school did this... by abischof · · Score: 2

      Hmm, I don't see "Walker" listed on the CS Faculty page.. Does he perhaps not work there anymore? I was hoping to see a picture of the guy in case I could recognize him (I graduated VT CS in '00).

      --

      Alex Bischoff
      HTML/CSS coder for hire

    13. Re:I remember when my school did this... by swv3752 · · Score: 1

      I remember our Chem professor in college (nd actually many other ones) provided last years tests to be checked out from the Library. Sometimes even the answers would be provided, sometimes not. Regardless, I found these to be invaluable to studying. The actual test was similiar, but different enough that you couldn't just cut and paste answers.

      Anyways, this practice came about because the Frats and Sororities were keeping old exams and giving them to thier younger brethern. As it made for a unlevel playing field and was hard to stop, the professors decided to make old exams available to everyone.

      --
      Just a Tuna in the Sea of Life
    14. Re:I remember when my school did this... by ChadN · · Score: 2

      I talked about this last time I saw a cheating discussion on Slashdot; but while getting my Master's degree at Stanford (just finished last summer), I saw a distressing amount of cheating by students who were VERY smart. There is a definite "hive" mentality with many kinds of students, to the point of looking at each others answers on tests. Not a majority, hopefully, but many.

      The "Honor" code forbade this, of course, but also forbade teachers from being present during tests. So enforcement was not straightforward, as there was no one to oversee the tests as they were being taken. It was very distressing, but now, as an employer, I know what to look for and what to ask of employees. It is pretty easy to weed out the free thinkers from the drones, if you are prepared to look for it. And a Master's degree from a respected school does NOT mean you aren't a cheater.

      It is sad that so many otherwise intelligent people had to resort to cheating (I mean, they could have gotten almost perfect grades without it; they just wanted to get perfect grades...); I would have rather failed on my own, than earn a degree by glancing at my neighbors.

      --
      "It's overkill, of course. But you can never have too much overkill." - Anonymous Slashdot Coward
    15. Re:I remember when my school did this... by ConceptJunkie · · Score: 2

      I graduated with a BS in CS from Tech in '87. Is Sean Arthur still there? He was my favorite professor because he p***ed everyone off the first day by informing them rote memorization wouldn't cut it in his assember class. I think I had a 98 average in that class.

      --
      You are in a maze of twisty little passages, all alike.
    16. Re:I remember when my school did this... by glsiii · · Score: 1

      yes, sean arthur is still here, and he's still pissing p*ssing people off. I'm glad i'm almost gone.

      VTCS '02

    17. Re:I remember when my school did this... by oscarm · · Score: 1

      I spoke to him the year after he deployed this system, he's in the EF deptartment. At the time, he was trying to move a lot of the course online (posting & collecting assignments). A lot of his students weren't happy with the class becuase it required them to THINK and LEARN on their own, outside of the classroom (Which, in my opinion is a good thing).

    18. Re:I remember when my school did this... by LinuxisforLosers · · Score: 0

      Yeah, I remember that same class. I thought that happened in 1106 Op Sys Tools. I was in that class, and had been sick for about a month. When I came back to class to take the final exam (because the class was a JOKE) The prof (can't remember his name) pulled me off to the side as I entered the room and accused me of cheating. I was like 'What the hell are you talking about?', and he said 'Ooops, you were the sick guy, weren't you. Never mind. Here's your final.' I was shaken up for the rest of the class, and only later learned what had really happened.

    19. Re:I remember when my school did this... by Daengbo · · Score: 0

      I currently teach in Thailand, where cheating is so prevalent that it is virtually unstoppable. There is no ability for 90% of my students to come to an answer by themselves. It is sad, because I have always believed that it was the knowledge, and not the grade, that you should be studying for.

    20. Re:I remember when my school did this... by Bangback · · Score: 1

      I'm a bit dubious about the honor code impact. I know several people who have extensively cheated based on a liberal honor code. I appreciated the fact that my institution had no honor code and instead had real proctors (outsiders/retirees hired as a temp job) at all finals. And profs kept a close eye on this sort of thing. An honor code only works when people are honorable, which is becoming distressingly less common.

  30. Cheating detector by mgv · · Score: 1

    Of course, just plugging in sections of work into a google search engine can produce interesting results....

    Probably of more value would be to compare results this year with previous years submitted answers. Although there would be alot of people out there with PhD's who would be in trouble if this time honoured method of passing exams and assignments was cracked down on.

    Michael

    --
    There is no cryptographic solution to the problem where the intended receiver and the attacker are the same entity.
  31. So What by Anonymous Coward · · Score: 0

    They have been doing this at MIT for a few years...

    Last year about 30% of the superhardcore undergrad Software Engineering 6.170 class was found to have lifted at least some of their code. They did it right after drop date too, so the kids had to petition to drop the class once they found out they would be failing...

  32. Cheating Is Harder Than Actually Doing The Work by KingAdrock · · Score: 5, Funny

    I always found that it wasn't easy to cheat. If I copy and pasted somebodies code, I had to go back through and change it all around so that I couldn't be caught cheating. This often proved to be more difficult than actually doing the project myself would have been.

    1. Re:Cheating Is Harder Than Actually Doing The Work by Tower · · Score: 1

      This is often true, though it is good practice for when you need to take over someone else's components and support them for your job :)

      --
      "It's tough to be bilingual when you get hit in the head."
    2. Re:Cheating Is Harder Than Actually Doing The Work by Anonymous Coward · · Score: 0

      Do I hear the phrase "Search i, replace with nCounterVariableA, then auto-indent"?

    3. Re:Cheating Is Harder Than Actually Doing The Work by KingAdrock · · Score: 1

      No, because I guarentee you there is more than one 'i' in the program. Then it would be all farked up!

    4. Re:Cheating Is Harder Than Actually Doing The Work by Nonesuch · · Score: 3, Insightful
      Doing the original work is easier than cheating, only if you understand the concepts being used.

      If you don't understand pointers, then an assignment on that topic might be impossible for you to complete- but it doesn't take much understanding to change variable names and move around non-pointer-related code.

      Then there's the people who cheat by getting somebody who does know the subject to do their work for them...

    5. Re:Cheating Is Harder Than Actually Doing The Work by enedwaith · · Score: 1

      I think your confusing cheating with cheating well. Cheating is easy, cheating well is an art form. Besides this wouldn't catch any one cheating well anyway.

    6. Re:Cheating Is Harder Than Actually Doing The Work by lsd4all · · Score: 1

      I always found that it wasn't easy to cheat

      That's what sepearates great underachievers from the procrastinators.

      Throughout school and college I learned to enhance my cheating skills. And guess what, I made it. Obviously, I am not designing aeronautical vehicles or writing code for iron lung machines, but I did understand every bit of code I cut and pasted, every deriative in Calculus 2, every projectile motion equiation in physics, every Karnaugh mapping excercise in digital circuits, etc.

      I may not be proud of what I did but I got through school without killing myself or joining a frat.

      Duke: The lights are growing dim Otto. I know a life of crime has led me to this sorry fate, and yet, I blame society. Society made me what I am.

      Otto: That's bullshit. You're a white suburban punk just like me.

      Duke: Yeah, but it still hurts.

    7. Re:Cheating Is Harder Than Actually Doing The Work by ImaLamer · · Score: 3, Funny

      That's why you get someone to write you a program that will change the variables for you:-)

    8. Re:Cheating Is Harder Than Actually Doing The Work by mstyne · · Score: 1

      I used to do that too. My professors know I'm a totally incompentent programmer, so I would "dumb the code down" (i.e. take out recursive code, use crappy search algorithms, etc.) or sometimes get it to the point where it didn't even work anymore. Now I just do what I can and turn it in. I've decided I'm just going to get my CS degree and go into Broadcasting : )

      --
      mstyne: real name, no gimmicks
  33. What about code off the net? by Suicyco · · Score: 2


    I use code I find on the internet all the time, first thing I do when I start a new routine as a matter of fact. I search for preexisting code and use/modify that accordingly. Of course only freely available code but there are tons of sources for that. How would this program detect that? I would trust some code I got from the net over something another person in class wrote, but then again I know enough to be able to see if the code is good or not and to modify it if I need to.

  34. the real world is the same as school by Meech · · Score: 2, Insightful

    Mod me down for this, but consulting with a co-worker at a job and obtaining code from a fellow student is NOT the same thing. The purpose of going to school is to learn and therefore they want your work, not your friend's. At a job, they just want the work to get done, they don't care how you do it.

  35. GPL it by SanLouBlues · · Score: 2

    If it were free and open, we could write white papers on why it sucks and/or improve it. That wouldn't be so bad.

  36. Uh huh. by elmegil · · Score: 2
    So, when the instructor foolishly gives me an assignment that has a verbatim solution later in the book, and both me and Joe Student who I don't know and never talk to (or worse, my best buddy in the class) both turn in that verbatim solution, obviously we've cheated, right?

    That's sarcasm for those of you unfamiliar with the stuff.

    --
    7 November 2006: The day Americans realized corruption and incompetence weren't addressing 11 September 2001
    1. Re:Uh huh. by frunch · · Score: 1

      Oh yeah, and I'm sure the professor uses it to check students aren't cheating on problems like "10 plus 1 in binary is ___"

      That too is sarcasm.

      Seriously, there's no way they're using this method on ALL asignments (esp. really simple ones, where the solution is simple), and there's no way this is the only method they're using in cheating investigations.

    2. Re:Uh huh. by elmegil · · Score: 1

      You think I made this example up? It actually happened to people I know.

      --
      7 November 2006: The day Americans realized corruption and incompetence weren't addressing 11 September 2001
    3. Re:Uh huh. by Torl · · Score: 1

      Actually in one of the intro to programming first year classes at my school the assignment consisted of filling in some skeleton code to make a pretty picture or something. Anyhow, when they ran the cheat-detector it came up with about 80% of the class cheating..

    4. Re:Uh huh. by damiam · · Score: 2

      Ummm.. maybe you shouldn't be copying the answer from the book anyway?

      --
      It's hard to be religious when certain people are never incinerated by bolts of lightning.
    5. Re:Uh huh. by Sabriel · · Score: 1

      Er, so you'd give the book to your class to learn from it, but then you'd zero anyone who actually used what they learnt from the book?

    6. Re:Uh huh. by damiam · · Score: 1

      You learn from the book, but you don't copy your answers straight out of the book. You do it yourself using what you learned.

      --
      It's hard to be religious when certain people are never incinerated by bolts of lightning.
  37. This is not news. by bharath · · Score: 2, Informative

    There are many programs out there for exactly the same purpose. For example, moss at berkeley lets you do this over the net.

    1. Re:This is not news. by Anonymous Coward · · Score: 0
      c'est ne pas une sig.

      That should be: Ceci n'est pas une sig. For chrissakes, when you are quoting from a foreign language, just cut-and-paste; don't try to quote from memory when you suck at said language.

  38. Not new by aqu4fiend · · Score: 1

    This is not really new at all. At my school (U toronto), a "cheaterbeater" program was used in *every* programming assignment we had. And it detected more than just exact matches - it could figure out if you copied someone's code, shuffled some lines around, changed variable names, or other surface changes that would trick T.A.s. Several people were caught with this program. Why is this article here? It even says in the article that it was developed in '93 !!

  39. Plagiarism is bad, m'kay? by OdinHuntr · · Score: 2
    Cuz remember programmers: in the real world you are fired if you consult with a co-worker ;)

    Well, actually, if you take work from another co-worker and pass it off as your own, you'll be fired and prosecuted.

    Don't Plagiarise - it's the law. (And judging from the snide comment, probably the reason that CmdrTaco never finished college.)

    1. Re:Plagiarism is bad, m'kay? by Anonymous Coward · · Score: 0

      Well, actually, if you take work from another co-worker and pass it off as your own, you'll be fired and prosecuted.

      Prosecuted for what? No one is saying anything about whether or not the student got permission to copy the work and pass it off as her own.

    2. Re:Plagiarism is bad, m'kay? by JordoCrouse · · Score: 2

      Plagiarism is illegal? Uhh... its not. Its unethical, sneaky, and it might get you fired (or killed, depending on who you copy from), but the odds of prosecution is unlikely.

      Though an employer *might* be able to get somebody on a copyright violation. But we know how well that works...

      --
      Do you have Linux and a DotPal? Click here now!
    3. Re:Plagiarism is bad, m'kay? by JatTDB · · Score: 4, Funny

      Nah, you just have to be really clever about it, such that the original programmer gets fired, and then the code makes the company billions in the video game industry, and you become a senior executive vice president of the company, and the original programmer is reduced to an arcade manager, and then he tries to hack into your systems, and then your mainframe decides to digitize him, and he helps a small group of rebels free the system.

      Ok, maybe I've watched Tron a few too many times...

      --
      "That's Tron. He fights for the Users."
    4. Re:Plagiarism is bad, m'kay? by Anonymous Coward · · Score: 0

      You are mistaken. The company owns that code, NOT your coworker. The company doesn't care which employee wrote it as long as the job assigned gets finished.

    5. Re:Plagiarism is bad, m'kay? by Anonymous Coward · · Score: 0

      Yeah kids, dont plagiarize, you'll never amount to anything that way. Exept perhaps a minister of foreign trade.

  40. the real world by bcrowell · · Score: 5, Insightful
    Cuz remember programmers: in the real world you are fired if you consult with a co-worker ;)
    In the real world, you are fired if you steal code from someone else without their permission, pretend it's your own, and incorporate it into the app you're writing for your company. In the real world, people give credit where credit is due.

    A lot of the stories I hear about students plagiarizing each other's code is done without the other student's permission. Many systems have files readable by other students by default, and students don't bother to read-protect their files. Students will take printouts out of the trash. And of course, it's always convenient for students to claim they didn't know the other person copied their work.

    It's better for students if professors have an accurate way of detecting cheating. The worst thing is if the method is inaccurate, and innocent students get accused. This method sounds accurate.

    1. Re:the real world by Anonymous Coward · · Score: 0

      In the real world, people give credit where credit is due.


      ROTFL! You're a college student, aren't you?

    2. Re:the real world by CynicTheHedgehog · · Score: 1

      I'm taking my last handful of senior level classes and it's scary how many of my classmates still have no clue. They're in their senior year beg for group assignments because not one of them can get a program to compile on their own. I can only speculate as to how they've made it this far but quite frankly it worries me that this is possible. The work force in this area is being diluted with underqualified graduates.

      I'm sure this says a lot for the quality of instruction at my university in particular, but I doubt I'm alone in this. I'm all for weeding out those who can't make it by on their own abilities. It's sad that the other students have to deal with this, much less the professors.

    3. Re:the real world by Anonymous Coward · · Score: 0

      The company you and your co-worker work for owns the code. Not you, and not your coworker. If you are doing coding for them (the company) and you rip off 99.999999999999999999999% of the code from your coworker it's called reusing code and is totally 100% legal.

    4. Re:the real world by CaseyB · · Score: 3, Funny
      you are fired if you steal code from someone else without their permission, pretend it's your own, and incorporate it into the app you're writing

      So it's OK to plagiarize on an exam, as long as you get permission and attribute the original author!

    5. Re:the real world by Vagary · · Score: 1

      So when using one of these programs or doing it the old-fashioned way, how do you figure out which work is the original? Or does it all come down to exam marks?

    6. Re:the real world by Anonymous Coward · · Score: 0

      It sounds accurate? Sounds accurate? Have you ever seen the source for the program? Have they released it to the public? If I can't see the source code, I don't trust it any more than I trust Microsoft Windows.

    7. Re:the real world by CoughDropAddict · · Score: 2

      Many systems have files readable by other students by default, and students don't bother to read-protect their files.

      I would fit that description. In fact, I keep my assignments in a public CVS repository as I'm writing them, and many of my classmates know this. I have absolutely no problem with this, just as I have no problem discussing an assignment with my classmates or helping them out on their programs. I'm also fairly certain that cheating is quite rare (and since about half my class did all their work in the computer lab, it would be hard to cover up if it were happenning).

      So what's the problem?

    8. Re:the real world by elflord · · Score: 2
      A lot of the stories I hear about students plagiarizing each other's code is done without the other student's permission. Many systems have files readable by other students by default, and students don't bother to read-protect their files.

      Most of the schmucks who cheat on assignments as trivial as these wouldn't know how to view the files of another user.

    9. Re:the real world by Anonymous Coward · · Score: 0

      bravo

    10. Re:the real world by Anonymous Coward · · Score: 0

      What the fuck kind of name is elflord? You fucking dork.

    11. Re:the real world by bcrowell · · Score: 2
      In fact, I keep my assignments in a public CVS repository as I'm writing them, and many of my classmates know this.
      That's a great idea. Your changelog will then document thoroughly all the original work you did, and show that it was you who did it, and not somebody else.

      Do you also GPL your code? That way it would also be a license violation for someone else to take your code and erase your name from it.

    12. Re:the real world by Smegma4U · · Score: 1

      Ahhh...the old days of working in the computer labs and trying to stop the cheaters. My programming partner Joe and I eventually reached the point where we wouldn't throw out code printouts in the lab - we'd take them home to dispose of them so someone else couldn't steal them out of the trash.

      Also, when finishing up the assignments when other people were in the lab and asking how far along we were, we would fake frustration and anger in order to simply avoid dealing with them asking for help or wanting to copy our solution. Thankfully the real world isn't like that, or I'd have quite my job a long time ago.

      --
      If it's supposed to move and doesn't, use WD-40. If it moves and it shouldn't, use duct tape.
  41. Diff. by jatbrowne · · Score: 1

    Yeah, diff is basically it. There is minimal statistical stuff, they simply strip the comments, change the identifiers to x and check for similarities in the structure. We have it at our uni. Hell, they even mark our programming (beginners stuff) automatically.

    This is no news at all. All the students need do is change a few whiles and fors and they are in the clear...

    Who cares? If you need to cheat on hello world then you really do have a problem...

    1. Re:Diff. by Anonymous Coward · · Score: 0

      i garentee the professors strip out all looping information, as well as variable names and spacing/function order. I've talked to the teaching assistants for the ga tech program (some of my friends being a student there) and the program is far better than a simple character comparison

  42. Not technologically impressive . . . by Anonymous Coward · · Score: 0
    . . . but what would you expect from a state that would try to have someone locked up and fined six figures for running a distributed.net client?

    ~~~

  43. Nothing new, by melatonin · · Score: 2
    This isn't anything new (well, the thing said '93). The University of Toronto has used this for some time. I remember often after assignments were handed in, people would be called to see the TAs or the prof because they're assignments were 'too similar.' :)

    The software that U of T uses was developed somewhere else, I thought it was MIT, but I could be wrong.

    They didn't actually tell us that they were using this stuff, I found out after I graduated from reading it in the newspaper. So it's probably in widespread use, it's just not something CS departments brag about (I guess catching cheaters is fun).

    --
    Moderators should have to take a reading comprehension test.
    1. Re:Nothing new, by melatonin · · Score: 2
      And to make it clear, this is not diff. I mean duh, how stupid is that?

      The software that U of T used was apparently quite intelligent, and could tell if two algorithms/problem solutions were too similar, not just the text of the stuff that was handed in.

      --
      Moderators should have to take a reading comprehension test.
    2. Re:Nothing new, by Anonymous Coward · · Score: 0

      It's very possible to cheat MOSS. In fact, I've "heard" of several people manipulating their code in order to fool it. Luckly for them, it worked. Apparently, the trick is to manipulate the runtime of the code. I'll let your imaginations figure out how to do so. A hint, changing variable names is not the way to do it though.

      Don't cheat though. Some of my friends were caught cheating in CSC108 here at UofT. Let's see, they got called to the dean's office, they got zero on their assignment (worth 4 or 5%), got 10% taken off their final grade, and a statement on their official transcripts about cheating. Finally, the failed the class due to not doing their own work, as the academic penalty didn't help them either.

      Lesson, don't cheat. If you don't finish your assignment on time, hand it in late, or don't hand it in at all. It's better than getting the academic penalty.

  44. Cuz remember students: by brucehappy · · Score: 1

    If you can't program, switch to MIS.

  45. Ignorance on the part of the poster... by Ionizor · · Score: 5, Insightful
    • Cuz remember programmers: in the real world you are fired if you consult with a co-worker ;)


    So how exactly does consulting with a fellow student (or co-worker) result in both parties having identical code? I have to say that this is the most ignorant comment I've seen attached to a slashdot story ever.

    At my University they have the same code policy but they encourage you to work with others! Under no circumstances are you to copy their code line by line but you can certainly ask for their help or use a module or two. The only condition to all of this is that you credit them on the cover sheet of your assignment.

    Sorry for the flame but I saw that comment and it made me quite irate.

    --

    --
    Todd's Law: All things being equal, you lose!
    1. Re:Ignorance on the part of the poster... by Anonymous Coward · · Score: 0

      Cuz remember programmers: in the real world you are fired if you consult with a co-worker ;)

      I would assume by the little smiley that this is a joke. I think everyone knows that all most all programs are built with some (or a ton) of group work.

    2. Re:Ignorance on the part of the poster... by Anonymous Coward · · Score: 0

      I think a distinction needs to be drawn between collaboration and copying. Perhaps what Taco was referring to is schools which discourage even collaboration (of which there are quite a few, my alma matter included).

      This was to remain a thorn in the side of many EE majors who decided to take a course in the CS department. The EE department fully encouraged students working together, but the CS department strictly forbade it. Needless to say we EE's were a bit frustrated at times.

      Working together, I found, was one of the most efficient ways of studying as an undergrad. Not to mention an essential skill in the workplace. It's a shame that so many departments have been forced to implement a no-collaboration policy because they have seen too many instances of cheating, and cannot tell the difference between people collaborating and simply copying.

    3. Re:Ignorance on the part of the poster... by L41N14L · · Score: 1

      Well if it is a joke, it's a bit of a dumb one.

      Who could actually compare collaborating with coworkers in an industry setting to copying (line for line) another student's code.

      Frankly, as a student who doesn't copy other people's code, I have little or no time for those who do. They're undervaluing my degree, taking credit for other people's hard hours and, to be honest, should be strung up by the balls for it.

      In industry, fine. The idea is to get a quality product out the door. In schools, the idea is for everybody to do their own work - that doesn't involve getting free credit for my code.

  46. My method... by Wesley+Everest · · Score: 2

    When I was a TA, if I saw two assignments that looked suspicious, I'd hold them up side by side and cross my eyes to get the stereogram effect. If it was a bad cheating job, there would be an almost perfect match and my eyes would be able to focus on them, with the differences jumping out at me.

    Of course, with freshman assignments, they tend to be pretty damn similar even without cheating (write C code to implement bubble-sort using the pseudo-code in the book as a guide). And usually, the students that were cheating would fail the tests, so there was little need to do anything special.

    Why someone would pay tens of thousands of dollars to learn nothing and end up with a job that pays well but that they'll get fired from within a few weeks...

    1. Re:My method... by DA_MAN_DA_MYTH · · Score: 2

      You definitely bring up an excellent point. Give students a break especially during callaboration.

      Grade tests harder or make them weigh more in order to test the students knowledge. Don't fail someone because you presume they are cheating, remember folks we're supposed to be innocent until until without a shadow of a doubt their is no evidence to prove that you are not guilty.

      --
      "It takes many nails to build a crib, but one screw to fill it."
    2. Re:My method... by xantho · · Score: 1
      You think like Georgia State University, where, if your semester homework average only counts if it is lower than your average from other graded work, i.e. you'd better work damn hard on it and get nothing, than slack off and get hurt by it. I never understood that, but I guess it does bypass the whole cheating on homework problem.

      --Xantho

    3. Re:My method... by Amazing+Quantum+Man · · Score: 2

      folks we're supposed to be innocent until until without a shadow of a doubt their is no evidence to prove that you are not guilty

      Sorry, dude, but (at least in CA) it's "beyond a reasonable doubt", not "beyond a shadow of a doubt". And also, that's only for CRIMINAL cases. For civil cases (cheating would be such), it's merely "the preponderance of evidence.

      Hope you never get in trouble with the law in CA...

      --
      Fascism starts when the efficiency of the government becomes more important than the rights of the people.
    4. Re:My method... by DA_MAN_DA_MYTH · · Score: 2

      Your right about the reasonable... Bad choice of wording. I was merely pointing to the ideal, and again you're right cheating wouldn't be taken to criminal court as well. However it probably wouldn't be taken to civil court either, rather taken to the school's judicial affairs, where your judged by whoever.

      Civil action would be taken if you feel you got kicked out of school for doing nothing wrong.

      Hope you never get in trouble with the law in CA...

      So do I.

      --
      "It takes many nails to build a crib, but one screw to fill it."
    5. Re:My method... by Anonymous Coward · · Score: 0

      You mean you had to write your own bubble-sorts?

      At my community college (yes, they suck - I know because I went to a well-respected midwestern engineering school before going to a CC) the teacher literally just gave us the bubble-sort code to copy/paste. We didn't really even go over the algorithm!!

      Same for binary-sort, linked lists, etc. etc... God forbid we might actually have to *think* once in a while, as opposed to just writing code then trying to figure out where we missed a semicolon!

      Kids, stay far far away from community colleges, if you care anything at all about *REAL* Computer Science.

      Unsurprisingly, I've received an 'A' (it's a char, not a string or char array! :) ) in every programming course the CC teaches so far...

    6. Re:My method... by choka · · Score: 1

      And usually, the students that were cheating would fail the tests, so there was little need to do anything special.

      Not always true, at least not at my university, not what I see, not what I experience myself.

      When I was studying CS, I do most of my programming assignments myself. (I copied two assignments in three years, I admit it, but only because
      (1)I was seriously ill,
      (2)Nearly everyone is copying somehow, to some extend, and
      (3)the prof. is a damned sucker that won't let me submit the assignment late, even if it's for medical reason)
      There are other students who copy most of their programming assignemnts. And you know what's the result?
      We got the same marks for the assignments, but they pass the exam with flying colors and me only getting average grade.

      Do you know why? Because according to many prof., assignments and exams are not related. In class, they teach theory, in exams, they test your understand of the theory. For assignments, it's about implementation of one of the particular theory taught in class.

      So, doing assignments would not help you score a higher mark in exam. Why those copy cats get a higher score than me? Because they don't do their assignments. As a result, they have more time, and they use the time to study the notes and textbooks. These are times that I don't have. Under tight scheduling, by the time I finish all my assignments, it is the time to go to take the exam. (considering the fact that I sleep an average of 5 hours per day for two years, holidays inclusive) So how about that? And I'm not a special case... there are many others like me... ~_~
      But, well, my efforts are not wasted. I'm a better coder than my collegues at work thanks to the assignments.

  47. coincidence? I think not. by tedtimmons · · Score: 2

    Okay, like others have mentioned, think of diff:

    * determines exact matches

    umm, sure, diff does that

    * written in 1993

    I checked man on my machine and got this date: "22sep1993"

    Heh.

    -ted

    1. Re:coincidence? I think not. by gorilla · · Score: 2

      Diff was around in Seventh Edition Unix, released in 1979 or so. Here is the man page. I think it actually dates to Sixth or even Fifth, but I can't find any confirmation at this time.

    2. Re:coincidence? I think not. by Anonymous Coward · · Score: 0

      Shoudln't these professors be fired for claiming they wrote a program to do a diff when in fact, they are just using diff?

  48. so if another university uses the same code by Infonaut · · Score: 5, Funny

    to stop cheating, will GT bust them for plagiarism? ;-)

    --
    Read the EFF's Fair Use FAQ
  49. Works on resumes??? by Harlockjds · · Score: 2, Funny

    I wonder if they will start using this on the resumes of their coaches from now on?

    1. Re:Works on resumes??? by Anonymous Coward · · Score: 0

      Well, O'Leary didn't copy another coach's resume, he just fabricated material on his own. Which is like adding new tokens to C++ and saying you developed the language.

  50. This seems like it could be fairly effective. by Dephex+Twin · · Score: 1

    Based on the results, one should not blindly take action, but if these results are used as a guideline for further inquiry, it might be a help. I know that this sort of cheating can get rampant, at least where I went to school. And even if you are working with other students to figure out a program, it's pretty unlikely that all the positioning of characters in chunks of code would be identical.

    It might seem like the face recognition stuff that's controversial right now. But the important differences between these two things are:

    - it can be done much more precisely with code.

    - this is for school assignments, not unknown checks in public places.

    Seems like this wouldn't be too hard to trick, if someone could run a script that would randomly insert spaces, tabs, comments etc. throughout the code.

    mark

    --

    If you want to make an apple pie from scratch, you must first create the universe. -- Carl Sagan
  51. A Sad Fact by CTalkobt · · Score: 2, Interesting

    but there is a lot of cheating in undergraduate courses.

    I was one of the better students in my comp-sci classes and so other students looked for me for help etc. I would routinely point them to my own finished assignments as example of how to do something or provide listings in which we would discuess the assignment and how to do things.

    This worked well until I got called before the teacher in regards to two students having taken my listings and typed them in ( with practically no modification whatso-ever ). I explained the truth - that I provided it for purposes of instruction not stealing and managed to escape. The other students were forced to retake the course.

    After this incident I kept my eyes wider open and noticed more students "copying"...

    It happens. Whether this program is really needed or not I think is more an indication of how well the teacher stresses the students on final exams and such.

    --
    There's a gorilla from Manilla whose a fella that stinks of vanilla and has salmonella.
    1. Re:A Sad Fact by Anonymous Coward · · Score: 0

      That arguement didn't fly when I tried it. I ended up with an F in the course.

  52. Lazy? by Ender7A · · Score: 0

    Back in my day, my teachers actually LOOKED over our code. Wont This just make it more convienent for teachers to ruberstamp grades and not bother to check and make sure that you code is elegant and not spaghetti crap?

  53. Cheaters cheat themselves by waylander · · Score: 1

    Writing a computer program is an exercise in understanding the basic fundamental operations on a computer. Personally I don't want a guy with a CS degree that I hired to come up to me and say "no, I can't figure this problem out. I borrowed all my code from my friends." My response, "may I have your friend's contact info so I can hire someone who can get the job done?". Good grief, the early CS projects are "hello world", and some basic algorithms. They are pretty much canned and it is really important for someone to have a grasp of those fundamentals before moving on.

    Later projects need to include collaboration and workgroup projects.

    Just my $.02.

    --
    John Kramer
    God may be my co-pilot, but the devil is my backseat driver.
    1. Re:Cheaters cheat themselves by xantho · · Score: 1

      The final project in CS1312 at Georgia Tech last Sring was the backend and GUI for Tetris, written in Java. These projects are not quite as basic as you think.
      --Xantho

  54. i don't see anything wrong with this by xnerd00x · · Score: 1
    CmdrTaco writes a little blurb implying that this program will show as cheaters any students that have shared ideas with each other, but I don't see that with this program. From the article:

    ``But for the most part, the degree of similarity that this program is looking for - the commas are in the same place, the semicolons are in the same place, the spacing is the same, they've made the same mistakes - the only explanation, and what most students will eventually concede, is they actually did it,''



    This type of thing should be caught and should be punished. Some people just don't belong in CS, and they should be weeded out instead of riding on another's shoulders.

  55. If there is a God by roystgnr · · Score: 1

    And if he believes in karma, then Rob will spend the rest of his days being the coworker who has to be continually "consulted" by shouldn't-have-graduated CS cheaters who can't write anything themselves.

  56. Didn't get caught by twisted_pickle · · Score: 1

    There were several people that got caught 'cheating' last year in one of my CS classes last year at the Univerisity of Washington. The software they used to check the homework, which is always electronically submitted, went beyond looking for exact matches; it also looked for similarities in code structure that had merely variable names changed. In exchange for some donuts once I gave a snippet of code to my roommate, who was also enrolled in the course, but we were smart enough to make the code look completely different in his submission so we didn't get caught.

    --
    4-bit adder: A snake made of 1's and 0's
    1. Re:Didn't get caught by Mahy · · Score: 1
      No, it is just that we don't follow up with students unless things are VERY blatant, and we think we have a very good case for suspension or expulsion. After all, these kinds of proceedings can take years.

      William "Bo" Brinkman, TA for 142 and 143 at UW, 97-99

  57. Old Proverb by bdktty · · Score: 1
    Those who can't do, teach.

    Those who can't teach, prevent colaboration.



    Besides - those topics aren't covered until
    CS3300 (Team based Software Engineering)

    1. Re:Old Proverb by Anonymous Coward · · Score: 0

      Those who can't do or teach mark you down for not going to class.

  58. consulting != copying by Restil · · Score: 2

    Heck, even in the open source world, I can't copy someone else's program verbatim and claim I wrote it.

    Even if two people work together on a project, as long as they write their code separately, the code will be significantly different enough that it shouldn't be recognized as cheating.

    Probably what this will catch is the last minute "Quick, let me copy your program" right before it's due. And this DOES happen, and I find nothing "right" about that at all. That IS cheating, plain and simple, and should be stopped. In a class of 30 students, the instructor (or TA's) will probably be able to notice similarities. In larger classes, its easy for these things to slip by, especially if the grading process is split amongst multiple TA's.

    -Restil

    --
    Play with my webcams and lights here
  59. reimplimentation by Anonymous Coward · · Score: 0

    Boston University has been using software developed at a university in California (if someone knows where, post) for about 3 years now that does the same thing. It is known to make mistakes and a human must check those papers deemed plagarism to concur the programs decision, but it is still very useful for the purposes of a university where they expect you to do your own work. I know many people who have been accused and suspended because of it, mainly because they didnt believe the professor when he told us about the software the first day. Though a lack of collaboration is not realistic when applied to post-college experiences, it is invaluable for the university to ensure that we are getting what we pay for (because most people honestly dont seem to want to learn, so the school tries to make sure they do.) It is also useful because most cs classes are curved and if you have half of the class cheating, they are royally dimishing the chances of good grades for those who do their own work.

    It is a questionable practice, but in this specific setting, I believe it is nessicary, though a nessicary evil perhaps.

    BU student

  60. Been around for ages by da_bza_420 · · Score: 1

    I am a fourth year CS undergrad at Tech and they have had this system in place at least since I took these classes as a freshman, and I know that it was there even before that. A friend of mine got caught one time because he let someone look at his old code, and the idiots copied it and changed variable names. Some people never learn... I am curious as to why its getting all this media attention (this is the third media report I've seen on it) as its been at Tech in some incarnation for at least 4 years.

    1. Re:Been around for ages by abwreck · · Score: 1

      As far as I know, it's been in place for even longer than that. I just finished up my Master's, and the program was in place when I took the intro to CS class in 1996. Lord knows how long it was there before that.

      A friend of mine, a senior TA for one of these courses, told me that on the first assignment of the semester, about 30% of the class cheated. The program catches straight out duplication as well as things like "Summer '96" and "Don't forget to remove this block."

  61. Bad Reinforcement by spatrick_123 · · Score: 1

    This encourages students to write horribly obfuscated programs that only barely compile (in the hopes that nobody else would do anything taht bizarre)...in other words, it prepares them for the real world nicely. :-)

  62. Nothing new by wkurdzio · · Score: 1

    This isn't anything new. I'm a student at Virginia Tech, and the CS dept. has used a "cheating detector" for some years now. It's quite evolved and doesn't only detect obviously copied code (exact copies and copies w/ renamed variables, functions, etc.) but indications of cheating such as a section of code with a drastically different coding style than the rest of the code. It's quite good, and the CS instructors often brag that while it's rarely a case that students cheat (the Honor Code here is a point of pride), the program's garunteed convictions in the Honor Court.

  63. Re Post Dtechtor by TheViffer · · Score: 1

    May-be /. could youse dis tech 2stop re posts.

    --
    -- Knowing too much can get you killed, but knowing who knows too much can make you rich.
  64. Obfuscator App by jeff67 · · Score: 1

    Looks like there's finally a market for my new product idea: A code obfuscator that also accesses a thesaurus to substitute different meaningful identifier names!

    1. Re:Obfuscator App by Junta · · Score: 2

      Of course it would be completely useless as all of the cheating detection systems I've ever seen could care less about the symbol names, only about stuff like the structures of the data and execution traces...

      --
      XML is like violence. If it doesn't solve the problem, use more.
    2. Re:Obfuscator App by Anonymous Coward · · Score: 0

      That's why it's an obfuscator and a thesarus! Don't you know about Obfuscated code?

  65. Cheating by Carnage4Life · · Score: 5, Interesting

    CmdrTaco says:
    Cuz remember programmers: in the real world you are fired if you consult with a co-worker ;)

    As someone who TAed classes at GA Tech, I take a lot of offense at this comment. There is a difference between working as a team on project based classes (of which GA Tech has a good number off including classes where we got to hack the Linux kernel and another where we got to deliver a product to a customer) once you've shown you understand the basics of programming and wholesale copying of other people's work in entry level classes where you are supposed to be learning to program on your own.

    Beginning programmers need to learn how to program, find information from MAN pages & API docs, and come up with solutions on their own before being introduced into team based environments. If not they never learn how to be self sufficient or even if they are cut out for programming at all.

    It is true that in the real world no man is an island but on the flip side, how many people have worked with co-workers who completely clueless about how to perform their jobs but held degrees or certifications that implied they shoould be knowledgeable about programming? These are the kind of people who hid behind the work of others in team based projects and submitted others work on individual projects.

    1. Re:Cheating by cadfael · · Score: 2, Informative

      Indeed, I must agree. Having taught at the second year level of university, there are times when I assigned work for single person only, and other times when I said they could feel free to work with others, just let me know. There was NOTHING more frustrating than seeing simple assignments copied repeatedly (by a group of people who repeated the class the next year) despite being warned that we knew what they were doing. The worst part was having them not understand that changing the variables didn't make it their code. I actually required the class to decipher the code that was copied as part of the final, and ironically, the cheaters did very badly on it.

      --
      -- The Hollow Man
      Non illegitimati carborundum
    2. Re:Cheating by Anonymous Coward · · Score: 0

      As someone who was a Lab Assistant (way back when I was in college...6 years ago, hehe) I also take offense at the stupidity apparent in CTs comment.

      When I worked on assignments, I often talked with my co-students, but I never turned in code that would fail this check! However, time and time again I saw students turning in EXACT copies (even using the same printer with the same dieing ink cartidge to print them out) of a complicated assembly language program! The professor wouldn't do anything about it, however, because accusing someone of cheating (esp. if they have rich parents) is a risky move. One prof. had just been fired (well, run out of town anyway) for just that thing.

      So, working WITH someone is good, stealing FROM someone is bad. Isn't that was Open Source is all about?!

    3. Re:Cheating by Eric+Gibson · · Score: 1

      ...how many people have worked with co-workers who completely clueless about how to perform their jobs but held degrees...

      Hmmm... I've never met anyone fresh out of college that wasn't completely clueless as to how to do thier job. They always end up having to relearn everything anyway.

      Take this "cheating detector" for example. I wonder how many weeks of "academia", and design went into writing software that's equivalent reading every students code into a database and running:

      select c1.*
      from "code.db" c1, "code.db" c2
      where c1."Exam Code" = c2."Exam Code"

      Brilliant, send me that man's resume!

    4. Re:Cheating by Eric+Gibson · · Score: 1

      Excuse me:

      SELECT NAME, CODE FROM code.db
      GROUP BY CODE
      HAVING COUNT(*) > 1;

      Would be better.

    5. Re:Cheating by bigjocker · · Score: 1

      I can't fscking believe these people. That comment was meant to be FUNNY!!!.

      I'm sick of coming here and reading 80% of the comments bashing the editors for things like this one. I have read at least 10 comments highly moderated about that small comment and forget about the real issue of the article.

      That's sad. We used to read interesting things in here.

      --
      Life isn't like a box of chocolates. It's more like a jar of jalapenos. What you do today, might burn your ass tomorrow.
    6. Re:Cheating by Anonymous Coward · · Score: 0

      You should probably know by now that news sources don't ever get anything right.

      The gatech cheat finder has many heuristics it uses to detect 'excess similarity.' They're not just running diff (1) here.

    7. Re:Cheating by Brother+Grifter · · Score: 1

      Beginning programmers need to learn how to program...

      Management majors don't though. Tech really needs to create a seperate class for the non-cs folks.

      It is true that in the real world no man is an island but on the flip side, how many people have worked with co-workers who completely clueless about how to perform their jobs

      Didn't you work at Microsoft once? :P

  66. Get some transparancies by hardburn · · Score: 2

    My high school CS teacher once found a few identical programs. He printed out the source code to some transparancies, then lined them up, one on top of the other, on the overhead projector. The only blurred spot was the comment with the students' names.

    --
    Not a typewriter
  67. UCLA had this in 1985 by TokyoJimu · · Score: 2, Informative

    When I was taking programming classes in the mid '80s at UCLA, they had a rather clever cheating detection program. It didn't look at the source (Pascal or C) code, but rather at the produced assembler code to see if students were copying others' algorithms.

    So you might obfuscate your copied code by moving it around, changing variable names, etc. but it would still catch you.

  68. Not news / Stupid people deserve to be caught by StCredZero · · Score: 1

    Someone did this as a Master's project when I was in grad school 5 years ago. Not new. Not news.

    Also, this is another case of "Stupid people deserve to be caught."

    But for the most part, the degree of similarity that this program is looking for - the commas are in the same place, the semicolons are in the same place, the spacing is the same...

    It wouldn't take a lot of thought to alter these factors. Like I used to tell my undergrad students when I was a graduate TA, if you're not smart enough to answer the questions, you're probably not smart enough to cheat either.

    Even in the case of "the mistakes are the same" -- if your verification and debugging skills are that bad, you still deserve to be caught!

  69. Info on cheating detector by kramer · · Score: 5, Informative

    Some more info on the cheating detector from a Georgia Tech Alum of the CS program.

    1. The cheating detector is not new. It's been in place for years. When I took intro programming in 1994 they mentioned it, and it wasn't new then.

    2. Everybody at Tech knows about it. They tell you about this script the first day of class. Nobody here should be suprised they were caught. The fact that they were caught only shows them to be some of the stupidest people at Tech.

    3. It catches people every term. Usual numbers are below 5% range. The fact that it caught someone isn't news. The fact that it caught 10% of a class is news.

    4. These classes are cake. There is no reason anyone should need to cheat to pass these classes. They are the most basic concepts of programming.

    1. Re:Info on cheating detector by flute000 · · Score: 1

      The detector is not new, no--but apparently it has been revised since either of us took the class.

      Issue: the material is so basic, there are only so many things you can do. I mean, some of the assignments are out of the book, you're given var names to use--if you don't make errors, there shouldn't be that much difference between assignments--particularly for non-CS majors, who usually have no particular background or motivation to be creative.
      For all of these reasons, each student is getting an individual hearing from the Deans--I'm just going to be interested to see who, exactly, catches it.

    2. Re:Info on cheating detector by quincy_MD · · Score: 1

      The source article is a little thin, but it would be interesting to see if the advance of open source and the internet reduces the reliability of this script. Why? Because in the past, when us old-timers were learning to code we did it in a vacuum. We developed our own coding idioms and styles. Now, with tons of people being exposed to a common body of source code it would seem that 2 random programmers would be more likely to share a coding style simply because they both learned it from reading common source material. Hell... my old company was so strict on coding style guidelines that you give three of us an assignment and we'd have duplicate code down to the spacing. -Quincy

    3. Re:Info on cheating detector by Mr+Thinly+Sliced · · Score: 1

      Was this inbetween solving all those t.v. murder mysteries and eating lots of cake?

    4. Re:Info on cheating detector by vivianeq · · Score: 1
      Are you aware that a very signifigant portion of the projects were javadoc? Javadocs should vary signifigantly from person to person since it is mostly descriptive.

      Also the projects were multi-class assignments. It is easy to tell who may have cheated based on how they abstracted their methods and which file the methods were in. For example out last project was to write our own "nibbles"(remember the dos game?). Pretty open-ended.

      I really dont think the profs are running the cheatfinder on "hello world" and the "learn how to use a loop and switch" homeworks (much easier than the projects).

      Georgia Tech is a prestigeous university and by catching cheaters they are protecting the quality of my degree. Future employers should know that I can code the basics on my own - that GT graduates competent CS majors.

    5. Re:Info on cheating detector by zorba1 · · Score: 1

      4. These classes are cake. There is no reason anyone should need to cheat to pass these classes. They are the most basic concepts of programming.

      I think there was a direct correlation with the increased cheating per-capita and the opening up of the intro CS class to (almost) the entire school.

      Sorry, but if you stick folks who perceive CS as an irritating blocker between them and 3-4 hours of credit towards their unrelated degree, you'll get apathy-induced plagiarism.

      --George, another former GaTech TA

  70. Used at UF for a while by mattbelcher · · Score: 1

    A system similar to this has been in place for a while at the University of Florida. I talked to several of our professors using it and they claim that it is quite effective. It detects the obvious ways that students try to obfuscate their cheating, e.g. changing variable names, whitespace, etc. Whenever the program turns up a match, the professor examines them by hand before calling the students into his office. In almost all cases, the students confess. The first semester it was put in place, nearly a third of the students in the Intro course were caught cheating! The rate hasn't been that high since. When the programs assigned are sufficiently complex, the odds of finding two people with the exact same decision tree is quite small.

    A similar system was developed at Columbia.

    --

    Shockwave Flash movies are the greatest thing to happen to non-sequitur humor since Japan.

    1. Re:Used at UF for a while by Zen+Mastuh · · Score: 2

      It's true--I took the grad-level PLP (COP 5535, IIRC) course last summer. Dr. Bermudez announced in class that around ten students (out of ~100) had suspiciously similar code. I was shocked, since these were all graduate students.

      The software compares parse trees, rendering most obfuscation techniques ineffective. Perhaps it also analyzes the machine code, counting jumps and performing statistical analysis of procedure calls. The more industrious cheater can probably resort to #inline directives and nested function calls to beat the detector, but anybody who goes to that length should just do the damn assignment instead.

      I'm very grateful for any and all cheating detectors. You missed the point, Taco: collaboration is extremely important, but someone who can't produce code is useless in a production environment

      --
      "What is the sound of one belly slapping?"
    2. Re:Used at UF for a while by mattbelcher · · Score: 1
      I'm very grateful for any and all cheating detectors. You missed the point, Taco: collaboration is extremely important, but someone who can't produce code is useless [everything2.com] in a production environment

      No kidding. I learned this the hard way. My senior year at UF, we had a group project in CEN4500 (networking). We were supposed to write a command line chat program for UNIX. One of our group members proudly displayed some code that he had downloaded off the web that some friends of his in another group was using. He was suggesting that we not bother writing it ourselves and copy from the same source as another team! That's a sure way to get caught if I've ever heard one. How was I supposed to trust any of the work he did on the project after that incident?

      --

      Shockwave Flash movies are the greatest thing to happen to non-sequitur humor since Japan.

  71. Moss by melanarchy · · Score: 1

    I wonder if this is anything like the MOSS (Measure Of Software Similarity) program developed at Berkeley in 1998?

    The press release here.

    You can also see the MOSS website here.

    As a student at Rensselaer Polytechnic Institute I had a teacher run the entire classes code through MOSS for each assignment last semester, and aparently caught several people who had very similar code.

    MOSS also has the ability to detect similarities in software strcuture as opposed to just checking for exact duplicates of code.

    CS students who cut and paste each others code deserve to be caught in my opinion.

    1. Re:Moss by Marx_Mrvelous · · Score: 2

      As far as I know, both Purdue and UIUC use MOSS to catch cheaters. Personally I'm all for it. It doesn't stop people from asking/getting deisgn help, but it helps stop people from cut/apsting code frmo one rpgoram to another, and then changing struct and variable names.

      --

      Moderation: Put your hand inside the puppet head!
  72. To copy or not to copy... by Ian_Bailey · · Score: 1

    I believe that there are two types of code... The kind you can (and should) freely copy, and the kind you can't.

    This has nothing to do with copyrights or stealing someone's work. If the code fragment actually solves a conceptual problem, some form of algorithm, then it should definitely not be copied. Of course, some fragments are so common (such as a sort) that all code will look the same anyways, and you should be able to copy some of your own code.

    But the kind of code that should be copied at all costs are things such as system calls, user interface calls, connecting to various sources, and much of the stuff that has nothing to do with the actual problem. These fragments are frequently tedious, and rarely are useful to understand, and such fragments should be freely available in online databases. Especially the UI stuff, you WANT your program to work the same as others!

    My two € cents.

    1. Re:To copy or not to copy... by EvlPenguin · · Score: 2

      "...These fragments are frequently tedious, and rarely are useful to understand, and such fragments should be freely available in online databases..."

      I agree, but with certain reservation.

      I remember when I first learned C 10+ years ago, I wanted to make a my programs configurable through a config file with simple "flag=arg" lines (as well as #'s for comments). I spent more time working on text parsing and groking through pointer arithmatic than on the main program itself! It was annoying, but I learnt from it. A few programs later, it was routine, and I could write the boring stuff in a few minutes and get on with it. After a while, I just got lazy and started copying the old functions into new programs. It worked, that's all that mattered.

      So my reservation is this -- yes, you should be able (and it could even be considered benevolent) to copy and paste your old code for menial tasks; but you SHOULD understand how it works, and have written said functions in the first place.

      --

      --
      #nohup cat /dev/dsp > /dev/hda & killall -9 getty
  73. The problem by Anonymous Coward · · Score: 0

    Homework Assignments:

    1) Write a program that takes in a temperature in Farenheit and converts it to Celsius. Have the program diplay the correct result on the screen to two decimal places.

    2) Write a program that will calculate the day of the week of any date in history*. Use the following formula: ...

    3) Write a program that will send a form letter to everyone in the class. Use the following list of names: ... And use the following template for the the form letter: ...

    The problem is that the solutions to these programs are going to be pretty similar across the students' submissions.

  74. Half the class fails... by Monte · · Score: 1

    ...because they all declared "i" as an integer...

    1. Re:Half the class fails... by Anonymous Coward · · Score: 0
      Which reminds me. Did you hear the one about the agnostic FORTRAN programmer?
      GOD is REAL, unless declared INTEGER.

      ~~~

  75. University of Virginia has one too by wiredog · · Score: 2
  76. A few words from a GA Tech grad (aka "flame bait") by DaveWhite99 · · Score: 2, Interesting

    For all of you who posted : "gee, they invented diff again", it's a little more involved than just "diff". I'm sure other schools have similar cheat-detecing programs as well. Also, why Yahoo decided to pick up on this now and pass it off as news is beyond my comprehension. Maybe they had nothing else better to pass off as news. In my entire 4 years at GA Tech, I only heard about this program once and it's not a big deal. "There's nothing here to see people. Please move on with your lives."

    --
    Biodiesel : domestic, renewable, clean, and in the fuel tank of my bone stock 2002 New Beetle TDI
  77. If you were gonna copy someone elses code. . . by Cyberllama · · Score: 2

    Would you be so stupid as to copy it exactly? I mean theres 20 different ways to do the same thing in just about any langauge, how stupid would you have to be to copy someone eleses code without changing variable names and statements to be slightly different.

    1. Re:If you were gonna copy someone elses code. . . by Anonymous Coward · · Score: 0

      I think the easiest explanation is that these are people from the south western part of Virigina. They figured out readin' writin' and cyperin' and next thing they're asking them to write bubble sorts in a dead computer language.

      Hell, they'd be better off teachin' them fishin', trappin', and baitin'. Maybe banjo plukin' for music majors.

    2. Re:If you were gonna copy someone elses code. . . by Miles · · Score: 1

      Well, I assume that the cheating detector looks at intermediate compilation steps, or pseudo compilation steps. This would eliminate the easier ways of fooling a checker. In fact, I would guess it looks at things like number of functions, similar errors in similar functions, how the code gets compiled (unoptimized)--looking at the assembly code or if you have a custom 'cheat compiler', you could look at what modules it outputs.

      While there may be many ways to do a thing, real cheaters can't be bothered to understand what code does in order to significantly change things.

    3. Re:If you were gonna copy someone elses code. . . by Anonymous Coward · · Score: 0

      When making fun of other's intelligence, it would behoove you to not make basic errors like mixing up two different states.

      Your post is even stupider than a grammer [sic] flame.

    4. Re:If you were gonna copy someone elses code. . . by Anonymous Coward · · Score: 0

      The article says "code that is exactly the same" is what is checked for. . .

      BTW, does anyone else think slashdot's no posting for 20 seconds after hitting reply rule is stupid?

    5. Re:If you were gonna copy someone elses code. . . by Miles · · Score: 1

      True, that's what the article says. But "exact duplications of computer code" may simply refer to duplications at a lower level than merely the source code. It seems unlikely that a reporter would make this distinction, unless they were particularly tech savvy. I suspect that in this case, it isn't true, since Eislet mentions things like "commas in the same place...", but even that leaves leeway for things like different variable names being accounted for.

      Later on in the article, it talks about similarities, not exact duplications. Eislet himself mentions only "similarities," not duplicates, although he could be talking about only partial duplication.

  78. This isn't a case of colaboration is bad by rblancarte · · Score: 5, Insightful

    CS programs at schools are not out to end colaboration with students. They are aiming to produce students who know how to program. In the real world YES, you can just copy the code directly from someone else, but what does that teach you? Nothing. Well how to copy/paste.

    I mean, we talked about this today in class, if a guy gets a degree and makes it out of school riding the coattails of others his degree is worthless. Once he is out in the real world, he also drags down everyone else who has the same degree from the same school because employeers will think - Guys from school x don't know jack.

    CS departements are not evil, but they are trying to uphold the principles of school. Don't misinterpret actions such as these as some sort of action to "keep people down".

    -RonB

    --
    It is human nature to take shortcuts in thinking.
  79. Common Problem by Anonymous Coward · · Score: 0

    When I was at University, the group approach to individual assignments was a very real problem. In a class of 300, there would be two or three groups of 50 people who all submitted the same solution, with the profs or TAs being none the wiser (or simply not caring). The upshot was that the CS program was producing graduates of programming classes who couldn't actually program even the somewhat trivial class assignments!

    I'm all for anything that helps to solve this serious problem that seems to be common in CS departments. CS is about more than programming, but if you claim to have passed a programming class you certainly should have to cut code to get your grade.

  80. at UMBC you CAN shre code... by Anonymous Coward · · Score: 0

    You just have to give credit where credit is due.
    If you say "Mark wrote this" then you won't fail for cheating, you'll fail not because 'cause someone else did it, but because you didn't do what you were supposed to.

    If you say "I had trouble with bounding this loop and I got it fixed with help from Mark" then they'll not penaliz you in any way, unless that was the whole excercise.

  81. Also in the real world... by Christopher+Bibbs · · Score: 3, Funny

    No two programmers are working on the exact same bug/feature. You can't expect to just copy someone else's code or get them to do most of the work for you. At best, you can ask for help, but that's not what the article is talking about. It's talking about straight copying of code (with minor changes to fool a cursory examination).

  82. Not a new idea. by glsiii · · Score: 1

    Virginia Tech has had this since atleast 1998. All programs that we submit are run through and any violations are sent directly to the Honor Court. Professors have said that the conviction rate is 99%, but I'm not sure if that's a scare tactic or what.

    VTCS 2002

  83. Ahem by xSterbenx · · Score: 1

    I'm a grad student at GaTech, and from what I know of their 'introduction to computing' class, it basically consists of writing a basic webpage (I believe they have to include 1 picture and 1 table) and writing simple pseudocode. Doesn't seem much room for cheating there (and if you have to cheat writing html, you SHOULD be caught). The OOL class, of course, leaves open a lot more room for copying functions and classes and the like. Another thing to think about is that 180 students is around 10% of the campus. Surely that many people weren't involved in some mass cheating scam, were they? And if so, why wasn't it found out before?

    1. Re:Ahem by pizen · · Score: 2

      Actually, CS 1311 (the intro class at GT) is taught in Scheme. They cover everything from the basics through basic linked lists, binary trees, up to the beginnings of OOP. The web page and other such assignment are there because other departments of the school requested that their students know Excel and HTML and other programs so the CS department teaches them as "labs" in addition to the regular programming assignments.

    2. Re:Ahem by Progoth · · Score: 1
      Actually, CS 1311 (the intro class at GT) is taught in Scheme.

      I took this class in fall of '99, so they might have changed it, but it was all in pseudocode, with a special section or two that used scheme.

      Just for the record, everybody at tech has to take the first class, and all CS majors (which is the only major the CoC has) have to take the 2nd. And the first class is/was far too hard for non-cs people (average grade when I took it was a 60, no curve). That doesn't excuse cheating, though, I was easily able to make an A, I'm sure others could pass the class OK without cheating...

    3. Re:Ahem by pizen · · Score: 2

      I took this class in fall of '99, so they might have changed it, but it was all in pseudocode, with a special section or two that used scheme.

      Yeah, they got rid of pseudocode. It's all in Scheme now. I took it under pseudocode and found it to be much easier than the bitching I heard from all my friends taking the Scheme sections (Fall 2000).

  84. I think they should cheat by Nexus+Maelstrom · · Score: 1

    IMO, those who choose to cheat should be allowed to. They will not learn the material and be less inteligence for it. Even if they do graduate, these people should be washed out pretty quickly in the job market because their true skills will be apparent. This will leave more jobs available for those self motivated people who are truly good with thier work.

    1. Re:I think they should cheat by arkanes · · Score: 2
      Nah, cause graduating cheaters degrades the value of the degree. Optimally, you should be able to safely assume that someone with a CompSci degree from X univesity has minimum skills Y. If they graduate anyone, whether they earned it or not, it makes that degree worthless.

      Disclaimer: I have no college degree :P

  85. University of Guelph has used this for a while by deviantonline · · Score: 0

    I was in computer science last year at university of guelph where I (and a bunch of other unrelated students) got busted using their code checking machine.

    All programming assignments are handed in online where they are fed through a program that checks them for similarities. Basically if the code is similar the machine flags the program with the other program(s) that are the same and the instructors are informed.

    When I was called to the deans office about this I was handed a hard copy of my program as well as that of the other student involved with everything similar printed in red text. Even though the code looked nothing the same (yes, they were copied however) the machine was able to pick up on it.

    I learned from my mistake.

  86. Not new, but not "diff" either... by Ardax · · Score: 2, Interesting

    One of my CS profs created a program to do something similar for himself. It would take two programs and compare them and give a similarity score between 0.0 and 1.0. Seeing anything up to 0.6 in intro courses was considered normal, since the assignments were easier, but much above that and things got suspicious fast. Of course, any red flags were hand checked. Seeing as this is the prof that taught the compiler courses, I don't think there were many false positives. :-)

    It caught a few guys that I know. When confronted they tried to say that they didn't cheat. So the prof does the only sensible thing that a CS prof should do when dealing with cheating intro students: Single out a common line of code in their programs and ask them what it did. Hint: How many of you knew the ternary operator in your first forays into C? :-) Having a URL to an identical file from an algorithm archive helped too.

    --
    Pax, Ardax
  87. This is a switch by bedmison · · Score: 1
    I went through a Unix/C coding training course when I worked for one of the big IT consulting shops. They used a similar system for grading, but it compared the student's solution to a school solution, and looked for deviations, for which we got graded down.

    It could also look at a batch of source code, and look for similarities. Of course, our class was only 16 people, so you pretty much knew something as up when a person you knew wasn't getting it suddenly gets an A on the project.

  88. We've been using for 8+ years whats the problem? by Thellan · · Score: 3, Informative

    I just graduated from GaTech in December and I was a Teaching Assistant for the Into to Computing class for 2 and a half years at Tech. The students are told on the first day of class that cheating is not allowed and that if you are caught you will be punished. They are told about the program and whether they believe or not is their problem.

    The students are told it is ok to discuss the homeworks and project with each other and that it is ok to discuss the concepts. However it is NOT ok to copy each other's code.

    The program does not just compare the text of each student's homework which is what some people seem to think it does. The program gets rid of variable names, function names and things like that because a person cheating can simply change those. It compares the style of the code and it is not given common code to look at. The only code checked is the code from problems that generally generate unique solutions.

    In the time I spent there I know of over a hundred cheating cases caught by the program. In some of those cases if you had of given me the 2 pieces of code I never would have said the people were cheating but when asked the students confessed. I have never heard of someone being falsely accused. Most of the time when the 2 cheaters are asked separately they admitt to it.

    Once again, Tech does not have any problem with people helping each other understand concepts like the way pointers or a vector works or the differences between stacks and queues. What they have a problem with is when each studen does not do his own work on an individual homework.

    Eventhough some of the problems may seem not worth it, like writing your own version of strcpy, it is still necessary so that students understand how the library functions work even if they will never be writing library functions in their life.

  89. Berkeley cheating detection (MOSS) by f00b4r1 · · Score: 2, Informative

    I wonder how this system compares with a program developed at Berkeley called Moss to serve the same purpose. Moss is free and available as a web service. It is really pretty neat, for those of you advocating the use of 'diff' Moss is quite a bit more complicated than diff. It will match up lines of common code and also compare the choice of token names within the program. Learn more here: http://www.cs.berkeley.edu/~aiken/moss.html

    1. Re:Berkeley cheating detection (MOSS) by chriscera · · Score: 1

      I find it amazing that your post only has a score of 2. Moss is highly superior to this piece of crap, and has been around much longer. The output by Moss is beautiful, and ideal for TA's and graders trying to quickly detect cheaters w/o spending a millenium on just that aspect. The SERVICE IS FREE FOR ANYONE!! Ideal for universities, and legal issues around code theft.

      --
      -- Who needs windows and gates in a world w/o walls and fences?
  90. This has been at GT for years now by unclei · · Score: 1

    When I was taking some of the early 2000 level CS classes at tech back in '95-96 or so, we were warned from the beginning that they had a cheat-finder script or utility of some kind that they used. IIRC, it was not just a character by character comparison, but used some kind of percent similarity method.

    If any current/former gatech TAs/profs want to correct me/add to this, please do...

    --
    Andrew
  91. Many schools have something similar... by Guignol · · Score: 1

    It might be funny to use them against their own source and watch them go crazy *cheat* *cheat*...

  92. Slashdot Boggles Me Again... by jmaslak · · Score: 5, Interesting

    The responses here, at least the ones along the lines of "But collaboration is allowed in the real world" sicken me. I would (and HAVE) fired programmers who couldn't program simple stuff on thier own. The collaboration in industry is not anywhere near the level of syntax and elementry algorithm design.

    A University degree is supposed to signify that you demonstrated knowledge in certain areas.

    Cheating is not demonstrating knowledge.

    Undergraduate level programming assignments do not require even consultation with other students, IMHO. They are too simple. If you can't code an undergraduate programming project without extensive "consulting", then you can't program. Period.

    I am sickened by the number of people with CS degrees only because of "teamwork" and "consulting". I would guess, from my experience, 95% of people with CS degrees can't write a sort routine. Widespread use of these kinds of programs might fix some of this. As would harsher grading. In the real world, you don't get partial credit for a program that only dumps core or doesn't meet any of the design objectives. (in my opinion, any program which doesn't properly run a set of tests, provided to the students in the project instructions, should receive an "F" grade)

    No wonder the software industry is such a mess. I've seem CS *GRADUATE* students who couldn't use malloc(). Note that I did not say "who use malloc() wrong - no, these students could not even figure out how to call malloc() nor explain what it did. There's something strange happening (I call it cheating) when someone can graduate with a CS degree yet never use dynamic memory allocation knowingly...

    1. Re:Slashdot Boggles Me Again... by xSterbenx · · Score: 1
      "As would harsher grading. In the real world, you don't get partial credit for a program that only dumps core or doesn't meet any of the design objectives. (in my opinion, any program which doesn't properly run a set of tests, provided to the students in the project instructions, should receive an "F" grade"

      True. I remember numerous times where I wrote programs for my CS classes that worked perfectly but I would get a B or a C because my professor didn't like the way I had written my code (which was pure preference, since some profs would throw everything into functions while others used them sparingly). Others, on the other hand, wrote beautiful code and made some stupid mistake somewhere that prevented their program from running, but they would still get an A.

    2. Re:Slashdot Boggles Me Again... by tekniklr · · Score: 1
      There's something strange happening (I call it cheating) when someone can graduate with a CS degree yet never use dynamic memory allocation knowingly...

      Or, like me, they could just be at a school that concentrates solely on Java, and never makes you write a program in a language without garbage collection. Or, if they do end up writing a C program in one of their classes, it's so dinky and stupid you never need to worry about such things (i.e. write a program that takes this string as input, and parses it into this)

      Who are you anyway, the programming nazi?

    3. Re:Slashdot Boggles Me Again... by /dev/niall · · Score: 2
      No wonder the software industry is such a mess. I've seem CS *GRADUATE* students who couldn't use malloc(). Note that I did not say "who use malloc() wrong - no, these students could not even figure out how to call malloc() nor explain what it did. There's something strange happening (I call it cheating) when someone can graduate with a CS degree yet never use dynamic memory


      Maybe it's because a lot of school are favoring Java as a language to learn? Not that it's all bad, there are a lot of reasons garbage collection isn't all evil. Still, I agree with you; they should be at least aware of what malloc() is, and what it does.

      --
      --
    4. Re:Slashdot Boggles Me Again... by UberLame · · Score: 1

      You are surprised that there are Grad students who don't know malloc? Dude, you are very familiar with typical undergrad programs are you? Most schools use C++ and/or Java for everything. You aren't supposed to use malloc in either language. In my school (which has an accredited computer science program and large numbers of CS students who go on to grad school) even the professor who does use C for upper level classes doesn't use malloc (he tends to use static arrays).

      --
      I'm a loser baby, so why don't you kill me.
    5. Re:Slashdot Boggles Me Again... by Nevrar · · Score: 1

      Hmm.. or you are part of the minority of ppl who still write C ;b

      Seriously, Java is being taught nowadays and that ain't need no malloc ...

      --
      Nevrar
    6. Re:Slashdot Boggles Me Again... by Pinball+Wizard · · Score: 2, Insightful
      I've seem CS *GRADUATE* students who couldn't use malloc().


      I don't know malloc, but I'm pretty good with new and delete.


      OK, so I'm being pretty facetious here, but most universities(mine included) don't teach in C, they use C++ or Java.

      --

      No, Thursday's out. How about never - is never good for you?

    7. Re:Slashdot Boggles Me Again... by warpSpeed · · Score: 1

      I agree!

      The schools should be teaching several languages, or at least touch on several, and the students should know the differences between them. Students should have an understanding of architecture, assembler, C (or something similar), an OO language or two, data structures, algorithms, and lots of theory to be well rounded. If you cannot use a "malloc()" after you get a 4-year degree in CS you should get your money back!

      ~Sean

    8. Re:Slashdot Boggles Me Again... by Rupert · · Score: 3, Insightful

      I would guess, from my experience, 95% of people with CS degrees can't write a sort routine.

      I'm not a CS grad [rather, Maths], but I would not consider this a problem. What is a problem is the 95% of CS grads who don't know how to find the sort routine in the standard libraries of the language they are using.

      --

      --
      E_NOSIG
    9. Re:Slashdot Boggles Me Again... by StaticLimit · · Score: 2

      Even if Java is the primary language being taught in CS, I think that on a basic level, you really miss something if you don't get exposure to pointers and dynamic memory allocation and non-garbage collected languages. I love Java (and Visual Basic for that matter) all the more because I've been exposed to the things they take care of for me. I also had required classes in assembly, automata, and microelectronics so I have some concept of what's going on all the way down to the silicon. Of course the program I was in (at the University of Toledo) is Computer Science and Computer Engineering rolled into one.

      I'm not saying I've malloc'd more than a couple times, or even done it correctly, but could certainly explain it and use it if I HAD to.

      I attribute a great deal of my success in programming to the ability to find the right things to cut and paste. But I also understand exactly what I'm cutting and pasting and can tweak it and extend it to bend it to my will as the situation requires!

      - StaticLimit

    10. Re:Slashdot Boggles Me Again... by Nevrar · · Score: 1

      True, but as CS grad who's had "exposure to pointers and dynamic memory allocation and non-garbage collected languages" isn't necessarily gonna know what malloc() is...

      (Visual Basic???:)

      --
      Nevrar
    11. Re:Slashdot Boggles Me Again... by partingshot · · Score: 2

      > I would guess, from my experience, 95% of
      > people with CS degrees can't write a sort
      > routine

      Just the opposite from my experience.
      Most of the CS grads I know could not only
      write a sort routine, they could tell
      you which ones were better for various
      situations. They may insist on writing
      it in pascal or scheme, but they can write
      it.

      --
      Anonymous posts are filtered.
    12. Re:Slashdot Boggles Me Again... by Anonymous Coward · · Score: 0

      *cough*

      Yup. "Computer Science" never entailed actually *understanding* how things work... And "Astronomy" involves knowing how to polish a telescope, and being able to figure out which end to look into...

      /sarcasm

      If you can't even whip up a quicksort routine, you have no business calling yourself a programmer, much less a computer scientist.

    13. Re:Slashdot Boggles Me Again... by Anonymous Coward · · Score: 0

      If you've made it past the undergraduate level in CS without knowing how to dynamically allocate memory, and the University hasn't kicked you out of the major yet, they're doing you, and the rest of us, a grave disservice.

    14. Re:Slashdot Boggles Me Again... by Ionizor · · Score: 1

      Simple for you, maybe; admittedly simple for me, as well. For the most part I was the one giving the assistance (Paul, you're missing a semicolon on line 63...) but not everybody in my course is going to become a programmer.

      I'm in first year Engineering and next year more than 1/6 of my class will focus on something other than software so I don't think it's really fair to expect them to know everything there is to know, nor do I think that they need to learn more than the basic programming skills necessary to write a computer assisted model for a design.

      Consulting with your peers and cheating are very very different and it's unfortunate that you aren't seeing that. Consulting with your peers would be along the lines of "Hey, I've debugged my program and figured out that this line is generating the wrong result. Can you help me figure out what's wrong with it?" which is perfectly valid. You write the name of the person who helped you with that line in your acknowledgements and there's no problem. It's not cheating and you still know how to program at the end of it - especially if you understand why the error occured and why changing what you changed fixed it.

      According to our marking scheme a program that doesn't produce proper output or misses more than two design objectives will earn you an F.

      As for using malloc(), I would bet you $50 that if you asked anybody that came out of my software class with a mark higher than a bare scraping pass what malloc() was for they'd be able to tell you.

      --

      --
      Todd's Law: All things being equal, you lose!
    15. Re:Slashdot Boggles Me Again... by ejasons · · Score: 1

      I would guess, from my experience, 95% of people with CS degrees can't write a sort routine.

      I'm not a CS grad [rather, Maths], but I would not consider this a problem. What is a problem is the 95% of CS grads who don't know how to find the sort routine in the standard libraries of the language they are using.

      Bullsh*t. While you might not expect a CS student to be able to come up with a quicksort all by themselves, they certainly should be able to successfully whip up some sort of sorting algorithm. Computer science should (and is) a great deal more than just "pasting functions together"...
    16. Re:Slashdot Boggles Me Again... by BSarp · · Score: 1

      Undergraduate level programming assignments do not require even consultation with other students, IMHO. They are too simple. If you can't code an undergraduate programming project without extensive "consulting", then you can't program. Period.
      -----------

      Well, aren't you just hot shit. While I concur that _introductory level_ undergraduate CS courses are not that challenging, you go a bit too far in lumping all undergrad courses in this category.

      This past semester, I took a 400-level - undergrad- course in basic compiler design. As a project course, we spent the semester writing - you guessed it - a working compiler. Given the scope of the assignments we had to work on, I don't think you could consider them "too simple" to ask for help.

      Unless, of course, you are just one bad-ass programmer, as you seem to be. And if you are, more power to you. If not, kindly do us all a favor and piss off.

    17. Re:Slashdot Boggles Me Again... by StaticLimit · · Score: 2

      (Visual Basic??:)

      Hey, it pays. Leaves me plenty of free time to code the hard-core stuff (not that I don't waste it playing CivIII instead...). I'm looking forward to doing some programming in Ja^H^H C#^H^H Java... whatever. I won't make excuses for programming in VB though, it's a quick, solid IDE for business application programming.

      Yeah, I guess I'd be giving people too much credit to assume they could make the leap from "exposure to ... memory allocation" to "understanding malloc". Though chances are if you're playing around with those concepts, you're doing it in C.

      - StaticLimit

    18. Re:Slashdot Boggles Me Again... by Kupek · · Score: 2

      The exact opposite is no better--making talking about the programs a cardinal sin. At Virginia Tech, no amount of solution-sharing is allowed, at any level. That's not how the real world works, nor is it how classes in other disciplines work (math, physics, biology, history, english, etc.).

      Saying that someone must learn everything on their own, or else they're "not a real programmer" is very short-sighted. It's called learning. Learning requires teaching, and soemtimes--often, in fact--it is better and easier to learn from other students.

      No, I do not endorse cheating or copying programs, but I do think some amount of colloboration should be allowed. Not only that, because of the notion that talking about programs is cardinal sin, I'm a second semester junior in CS at Virginia Tech, and my Intermediate Software Engineering class is the first CS class I've had where we will work in groups--and my professor knows this, and realizes that we need to learn how to work in groups.

    19. Re:Slashdot Boggles Me Again... by Anonymous Coward · · Score: 0


      So what you're saying is that a student who correctly impliments 99% of the project should get 0% of the credit because they failed to get that last 1%? I sure hope I never have a professor who thinks like you. Students are there to LEARN, and they are going to make mistakes.

    20. Re:Slashdot Boggles Me Again... by Anonymous Coward · · Score: 0

      Maybe you just didn't get the right professors. By that time I'd had group projects in the 1704 Intro class, the 2604 Data Structures class, the 2704 OOP class, and the 3something Professionalism class. The 4xxx and grad classes had almost no programming so it wasn't really an issue then.

    21. Re:Slashdot Boggles Me Again... by sholden · · Score: 1

      If you can't even whip up a quicksort routine, you have no business calling yourself a programmer, much less a computer scientist.

      If you ever actually would whip up a quicksort routine instead of using the sort that *is* available already you have no business calling yourself a programmer, much less a computer scientist.

      In fact if you ever whipped up a quicksort routine for real code you have no business calling yourself a programmer. If the sort is big enough to need quicksort, spend 5 minutes and find the library sort. If it isn't big enough whip up insertion sort - since you'll actually get it correct (instead of spending an hour debugging your off by one error in the quicksort) and it'll be faster for the small sort anyway)...

    22. Re:Slashdot Boggles Me Again... by fraserspeirs · · Score: 1

      If you think CS exists just to make people memorise algorithms then you've got a bug-eyed view of CS.

      Sort algorithms come in code libraries and they come in books. I can't recall any sort algorithm off the top of my head, but I sure as hell know where to find one if I need one.

      What's the point in just memorising low-level algorithms? How often do real-world programmers (since you seem to like a focus on the 'real world') reimplement sort algorithms? If your programmers are doing this stuff frequently, I suggest you're not making good use of other parts of CS, like system design and code reuse.

    23. Re:Slashdot Boggles Me Again... by Rupert · · Score: 2

      What he said.

      The other poster was correct. Computer science is about more than "pasting functions together".

      However, the post I replied to talked about "the real world" and "the software industry". And in the real world, knowing when to use qsort rather than writing your own (hint: always), is important knowledge that is sadly lacking in a large number of CS graduates.

      --

      --
      E_NOSIG
    24. Re:Slashdot Boggles Me Again... by Anonymous Coward · · Score: 0

      I'm amazed at the number of people who don't think writing a sort routine is important!

      Please, tell me, in "C", how do you sort a linked list? Maybe your employer bought some sort of library to do that, but I wouldn't count on it. Of course, from what I read here, C isn't relevant anymore. I wonder if Linus knows that (and there aren't any custom sorts in the kernel)...

    25. Re:Slashdot Boggles Me Again... by Kupek · · Score: 2

      Professors wasn't the issue, they obviously changed the cirriculums. None of the programming intensive classes you mentioned had group work when I took them, which was ranging from a year to two years ago.

  93. Apathy is rampant and no one cares... by jvl001 · · Score: 1

    Having spent a considerable amount of time marking undergraduate assignments it is amazing how many people will duplicate the results of others, faithfully reproducing the same bizarre errors. For one reason or another, some folks feel that they are better off cheating than actually performing the work themselves. What is more amazing is that these same folks believe they won't be caught. In these cases I would usually divide-up the mark for this one question amongst the duplicators.

    During my own undergraduate years I quickly realized that unless I completed the work myself I was wasting my time and money. Collaboration and discussion of how to solve a problem is useful, but blindly duplicating the results of others is no way to learn.
    Catching plagerism amongst submitted computer code is nothing new. Automagic comparison of submitted code was done during my undergraduate years long ago. Even though our instructor warned us at the beginning of the year at least half a dozen people were caught using software evaluation.

    --
    /. is to journalism as graffiti is to a bathroom wall
  94. school != real world by Noonian · · Score: 2, Interesting

    First, the standard disclaimers: my comments are my own and should not be taken as necessarily representative of the GA Tech administration.

    There's a much better and more accurate article on the topic at the AJC. Take the AP version with a grain of salt.

    The fact that GA Tech uses software to detect possible cheating should not come as a surprise to anyone. Such systems have been in use at many schools across the country for many different disciplines besides CS. Nor should anyone be disturbed by the use of such systems: their purpose is to detect possible cheating, which according the AJC article was clearly verboten to the students in the class.

    In the real world, a completely different set of rules may exist, but the fact remains that if your boss tells you he wants you to do something on your own, then you'd damn well better do it on your own. When a teacher instructs a student to perform a task on his own, he so instructs not to make life more difficult for the student, but to ensure that the student is capable of independently executing the skills necessary for the completion of the assignment. When that student eventually enters the real world, he has demonstrated the ability to perform the skills to be expected of him in the real world, so when he then has the ability to collaborate with his peers, he can actually contribure to the group's performance. A student who has always relied on others to get by will offer minimal assistance to a group and will typically act as a hinderance.

    So sure, in the real world you won't be fired for collaborating with your peers, but you will be if you can't get anything done without collaborating with your peers.

  95. RIT by Apreche · · Score: 2

    we've had this at RIT for a long time. The teachers coded it. It's really really tricky. Basically they have the attitude of, if you can get by the cheating program, then you know what you're doing and deserve the grade you get.

    --
    The GeekNights podcast is going strong. Listen!
  96. Been done. by gregbaker · · Score: 2
    This has been implemented several ways by several people. The best known is MOSS. I've implemented a script myself to do this and it was fairly successful, catching 5 or 6 pairs from a class of 75. Not all of the cheaters probably, but it was the worst of them.

    The hard part is turning up the "sensitivity," so you get not just exact copies, but also people who have taken parts of a program or made some trivial modifications.

    The problem is that it's hard to find info about these sytems for the very good reason that this is one instance where security by obscurity makes sense. If students know how the systems work, they can re-implement them and check to see if they'll be caught.

    Greg

    1. Re:Been done. by afidel · · Score: 1

      If they can re-implement them and change their code enough that they pass the detector, then they have learned enough to get credit for the assignment. In fact for most intro classes you would probably learn MORE by trying to get around the detector than from a simple implement code in c that does what the books psuedocode does.

      --
      There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
  97. For all those worried about gettin busted. by Neck_of_the_Woods · · Score: 1

    It was very simple, when we "flagged" someone who was suspect they got a very simple oral exam to prove the program was writen by them.

    It was nothing hard, just what vars did you use for what. Why did you loop this, and a couple of other little things that anyone that wrote a program would remember.

    It was just a first run...nothing more.

    --
    Neck_of_the_Woods
    #/usr/local/surf/glassy/overhead
  98. Reality (as I see it) at GA Tech by nesneros · · Score: 1

    I'm a grad student at Tech who TA's an undergrad programming course. The course is a senior-level design based course that typically has 15 people or so. Even with such a small number, it typically takes me a full 10 hours to grade homework assignments. For a 100-200 person introductory course, this work has to be spread out over multiple TA's. Hence Johnny Apple may copy Suzy Zebra's assignment, but it would never show up on anyone's radar. Using a program to check for similarities across assignments is extremely useful as a first level of cheating detection, and I see no problem as long as the final "this person was cheating" decision falls to a real person (which it does at GA Tech, there's an appeals process and everything).

    --
    Some men spend their entire lives trying to kill themselves for having been born. --Ross MacDonald
    1. Re:Reality (as I see it) at GA Tech by Anonymous Coward · · Score: 0

      I don't think a TA should be allowed to make a decision any more complicated than, say, "Shall I put milk on this cereal before I eat it".

      Passing CompSci 305 should not be a basis for screwing up other undergrads.

    2. Re:Reality (as I see it) at GA Tech by Chuut-Riit · · Score: 1

      This is an important point. The mere fact that two assignments are highly similar (as determined by this program) is simply an indication that something naughty MIGHT have occurred. The software can't determine whether all the parties involved colluded, or whether, as an earlier poster mentioned, one student's trash can was raided and and his code spread to a number of individuals, or whether those individuals knew where the code came from, etc.

      This kind of screen, when coupled with very harsh penalties, such as expulsion or failing a class, is likely to result in overcompensation by essentially honest students to ensure that no one else sees their code.

      A more rational approach is a "two strikes and your out" rule. For the first offense, everybody whose work matches up (according to whatever degree of correspondence is determined to indicate that someone cheated) gets a zero. If you get 2 zeros for cheating then you fail the course. It's unlikely that an innocent student, stung once, will allow themselves to be stung again. It's very likely, however, that someone who's handle on the material is so tenuous that they've cheated once, will be desperate enought to cheat again.

    3. Re:Reality (as I see it) at GA Tech by nesneros · · Score: 1

      Judging by your post, and your AC status, I going to hazard a guess you're a disgruntled undergrad who feels a TA screwed you over at some point. "Passing CompSci 305" is never the basis for becomming a TA, its usually more like 1) Performing at the top of the class in CompSci 305, 2) Demonstrating a real interest in the material beyond "I want a CS degree so I can make money".

      Also, I know several TA's who are better teachers of material than the prof, and more understanding of undergraduate life. They generally more likely to know the students by name than the prof, they're more likely to spend time one on one with students than the prof, and they're more likely to care about their reviews than a tenured professor.
      Finally, it is absolutely necessary for many courses for the grading to be done by TA's, a prof who has to 1)perform original research, 2)write grants, 3)write papers, 3) sit on 3-4 school or department committees, 4)advise graduate students, 5)plan and deliver 2-3 lectures a week,and 6) write questions for homework and tests simply does not have the time to individually grade 300 assignments.

      --
      Some men spend their entire lives trying to kill themselves for having been born. --Ross MacDonald
    4. Re:Reality (as I see it) at GA Tech by Anonymous Coward · · Score: 0

      Actually, I'm not. I happened to have graduated at the top of my class in CS, and the guys who were TA's were basically people who would schmooze the professor.

      The guys who actually knew what they were doing were either hacking the school's mainframe or out partying. They certainly weren't grading papers.

      TA's tended to grade more on whether they liked the format of the printed reports than anything else. They were lUsers.

      I'm not sure they could identify a computer if it bit them in the ass.

  99. I actually got "caught" by one of these programs by Anonymous Coward · · Score: 1, Informative

    In college I actually got "caught" cheating by one of these programs. My friend was having trouble with his assignment so I went over to his house and walked him through it as a tutor would do. At no time did he ever have any of my code. However, because I helped him much of his code was like mine. In particular I solved the problem at hand. I almost got kicked out of school for it, but since it was a first offence we just got zero's for the assignment. To this day I don't see what was wrong with what we did, I tought him how to solve the problem, I didn't solve it for him. This sort of thing still pisses me off.

    Apoptosis

  100. A better approach by BluesMoon · · Score: 5, Informative

    Ok, check for exact match: diff source1.c source2.c
    great, I just wrote a program to check for exact matches in source code, and it took me three seconds. Maybe I should apply for a patent for my ingenious approach (maybe I'd get it!!)

    At my organisation, (in India) we've been developing something like this for quite some time for our internal tests.

    While most of the work isn't (and probably won't be) publicly released, we can look at a systematic approach to building a better detector.

    1. run indent on all source files to standardise white space usage:
      indent -i8 -kr
    2. Remove excessive white space within statements (students tend to add extra white space:
      sed -e 's,\([^ ^I]\)[ ^I]\+,\1 ,g'
    3. while you're at it, remove blank lines too:
      sed -e 'g/^[ ^I]\+$/d'
    4. Remove repeated lines, or lines that match
      i=i;
    5. Run diff/cmp on the files and check the %ange difference

    You may also want to first strip all #include <> statements (not #include ""), and run the code through the C preprocessor first to take care of #define, and conditional compilation

    There's more obviously that I'm not sharing with you. These are the basics that anyone could figure out in a few minutes - not years.

    --
    Do not underestimate the value of print statements for debugging.
    1. Re:A better approach by Ooblek · · Score: 1
      Is it just me, or does it seem like a total waste of time to develop a program that checks to see if your employees are copying code from each other? You said it won't be publicly released, so what is the point? I can check out code from the repository here that I never worked on, include it in a project I worked on, and I'll be cosidered better for it since I didn't waste my time re-doing what someone else already did.

      Do you cut their hands off if a match is found?

    2. Re:A better approach by BluesMoon · · Score: 1

      It's for students. We run training programmes.

      --
      Do not underestimate the value of print statements for debugging.
    3. Re:A better approach by Tyrall · · Score: 5, Insightful

      Actually, the white space is what tends to get the cheaters caught.

      If there's 6 extra spaces at the end of a few lines and there are exactly the same extra spaces on the same lines (variable names aside), then there's an extremely good chance it's the same code, or a cut and paste of that section at the very least.

      In addition, you'd want to strip comments in your above example.

    4. Re:A better approach by xantho · · Score: 2, Informative
      Actually, from what the professors tell me, it's far, far more involved than 'diff'. And when was the last time you read a completely accurate article that had actual depth of discussion? Do you really think that Yahoo! News would print something like, "Yeah, our system generates parse trees from submitted source and compares them all to each other. Even though it's obviously an n-squared problem, we've optimized it to make it run in reasonable time."? I never have seen something like that in a news article, and I'm willing to bet that you haven't either.I'd also place money on the fact that the system doesn't use a single "sed" command, nor "diff" (or "indent, while I'm at it).


      --Xantho

    5. Re:A better approach by Anonymous Coward · · Score: 0

      If the beginning programmer knows what your are doing, they wouldn't be copying someone elses code.

    6. Re:A better approach by anonymous+loser · · Score: 2
      Actually, the white space is what tends to get the cheaters caught.

      Hmm. Where I work we have codified (pun intended) standards for spacing (and naming, etc.) so all of the code is uniform and it's easy to adjust to someone else's code. Trailing spaces I guess we aren't as picky, so long as the line doesn't cause a wordwrap.

    7. Re:A better approach by BluesMoon · · Score: 1

      We do a lot more - comment stripping too. We also need to catch people who copy by looking at someone else's code and noting it down - whitespace won't come in there.

      --
      Do not underestimate the value of print statements for debugging.
  101. Take two hackers by Rocketboy · · Score: 2

    In the old sense, meaning people who believe that elegance is important and simplicity is a factor of elegance, and give them identical problems and environments to work in. Syntactically their solutions will most likely be very different (one will comment, the other not, one prefers braces indented one way, the other another way, etc.) but for many, many problems, particularly those posed in acedemia, their solutions will often be extremely similar, the algorithms possibly identical. How many ways are there to efficiently write a bubble sort, for example, or a node walker? There are lots of sucky solutions but may be very few elegant 'hackerish' ones, in my experience.

    So what happens when the cheating detector spits their names out?

    After 20 years of professional programming, I've recently gone back to university to get my BS in Computer Science (yes, there is a wall, Virginia.) The first time this happens to me I'm calling my cousin, the lawyer. At the least I expect to have the rest of my tuition paid for. At best I want to see some lazy prof fired. I refuse to put up with this B.S.

    1. Re:Take two hackers by Anonymous Coward · · Score: 0

      >So what happens when the cheating detector spits their names out?

      A: The students get asked to explain their code. If you can tell the prof how the quicksort (nodewalker, etc) works, you deserve to pass. If you can't then you're nailed.

      Still leaves open the question of when one student is able to answer and the other isn't.

    2. Re:Take two hackers by Anonymous Coward · · Score: 0

      I've recently gone back to university to get my BS ..... I refuse to put up with this B.S.

      If you drop all your classes, you'll never get your B.S., so you won't have to put up with it.. ;)

  102. This is news? by kyras · · Score: 1

    This is news? My school (Michigan) has been using programs like this for quite a while (at least a couple of years). Written here, not bought, AFAIK. And yes, they do catch a lot of cheaters, which I think is fantastic. They're still imperfect, though... I've heard of a case or two where the software was tricked when no cheating actually occurred.

    --
    Tastes like burning! - Ralph Wiggum
    1. Re:This is news? by Anonymous Coward · · Score: 0

      Way to go! We are in awe.

  103. Anyone see how everyone can be expelled? by happyhippy · · Score: 0

    If a class of a hundred are taught in the same way and they are given the same assignment, how similar are all 100 assignments going to be? They are going to be virtually identical in coding style, as theyve been taught the same way! The only differences will be layout, comments and variable names. But any good faker will know to change these anyway. So whats the point?

    1. Re:Anyone see how everyone can be expelled? by Bipolar+Bear · · Score: 1
      If they were developed independently, they're not going to be as similar as you think, even for simple assignments.

      I've taught university Computer Science for several years, and have failed at least one student for academic dishonesty every semester. The only time I go after students is when they submit an exact duplicate of another student's program, and there's always at least one who really is that fucking stupid.

      Ask yourself: do you want to work with somebody that brain-dead?

    2. Re:Anyone see how everyone can be expelled? by rmjmike · · Score: 1

      Not true. Most will be similar, some will be exact, some will be unique. My coding style was unique to the point of profs being able to know my code on sight. For one assignment one of the lab workers got into my account and printed out my program, only changing some of the variables (and adding his name to the top, I didnt always put mine). The prof called me in and told me he knew I wrote it, but split the grade between us.
      Not every program will be the same, even in the entry level classes.

  104. Good thing ... by mr.nicholas · · Score: 1
    But for the most part, the degree of similarity that this program is looking for - the commas are in the same place, the semicolons are in the same place, the spacing is the same ...

    It's a good thing that most of the students don't use a code-reformatter to layout their code ...

  105. More Info by pmcneill · · Score: 5, Interesting

    Here's some more info, from the perspective of a former TA (once for one of the classes in question). First, everyone at GaTech is required to take the first CS class, not just CS majors (== people in the CoC). Second, GaTech doesn't restrict collaboration in all classes. The first tier of classes are strictly individual so everyone has to be in front of the computer. In the second tier, CS2130 - Languages and Translation explicitly allows colloboration as long as people turn in their own code. Going further, later classes involve heavy amounts of group work.

    With regards to the cheater-detecter program (called 'cheatfinder'), it's significantly more complicated than diff(1). It involves checking the structure of the code (ignoring variable names , indentation, and whatnot). Admittedly, I've never seen the source for it (very few people have), but it's been around since at least 1997. The output of the program is a single number indicating the probability that two people colloborated on an assignment. The threshold is typically set fairly high (0.90+), so false-positives are less likely. 187 students, the number caught this time around, is definitely the highest I've heard of, but it's definitely not the first time we've hit a large number -- just the first time it made the cover of the local newspaper.

    Interestingly, many students (including myself before becoming a TA) think (well, thought now) cheatfinder is just something the profs made up to scare students.

    1. Re:More Info by copycatjsh · · Score: 1

      yeah, I thought it was something they made up too, until I logged into tokyo.cc.gatech.edu once and saw it running!

      I was highly amused by that too. Though I had no idea exactly how it checked things out.

      Though Bill Leahy this semester said it could check all of cs1322's homework assignments in around 10 minutes... now *that* really surprises me if its true.

      --
      I feel like I'm diagonally parked in a parallel universe
    2. Re:More Info by statusbar · · Score: 5, Funny

      Hmmm...

      Makes me think of the possibility of a new product! anti-cheatfinder!

      Parse the original code and then re-organize the parse tree to be different yet functionally equivalent. Output the new code based on the modified parse tree. No need to change the variable names since cheatfinder ignores them anyways.

      Then, sell the product to cheaters around the world! Hopefully they will go get jobs at microsoft!

      Jeff

      --
      ipv6 is my vpn
    3. Re:More Info by zorba1 · · Score: 1

      If an Intro to Computing student wrote an anti-cheatfinder, I'd give them a vicarious "A"...much more advanced than what CS1311/1312 offer.

  106. Not always accurate results by tekniklr · · Score: 2, Informative
    Last semester in my Operating Systems class at Rutgers Universuty, a large portion of the class got caught "cheating" on the first assignment by software like this. Each person got a chance to plead their case to the TAs and Professors before they were given a failing grade, because this was the first time this software was used on such a large scale (>200 students).

    It turns out that about half of the people cheating really weren't- they just all happened to independently come up with a seperate working implementation than the Professors originally intended, and hadn't even thought of themselves.

    All that ended up coming of this was that the Professors apologized on the class newsgroup- I think they still check the code using the same program.

  107. again, not much new by Mike+Vernal · · Score: 1

    bleh -- this doesn't seem particularly groundbreaking. As others have noted for their respective schools, Harvard has had this system in place for years. They keep pretty mum on its inner workings, but we know that it does more than straight text matching, probably using some of the parsing internals of the compiler to break the code down into a canonical form, and then do the necessary comparisons.

    -mike

  108. need to add a huge database to this. by Lumpy · · Score: 2

    what about last years's students? or the entire internet? there's a ton of code out there that is freely available.

    I also know that I would be pissed and question the credibility of the profressor that uses thison my code. Because that is exactly what the professors is doing, assuming that everyone is cheating and run them through the detector... maybe we should frisk and do drug testing on all the students, and hook them up to polygraphs during tests too just to be sure they dont have weapons, cheating aids, or are taking controlled substances or are cheating on the tests as we know they all are.

    Any professor that would use this or even allow it to be used on his students has ZERO respect from me as that is the amount of respect he is showing his students.

    --
    Do not look at laser with remaining good eye.
    1. Re:need to add a huge database to this. by SuiteSisterMary · · Score: 2

      Professor: "I'm afraid I'm going to have to fail this assignment, my boy. Your variable names are not clear, and that's poor programming."
      Student: "But if I called this variable "InterestRate_float" you'd claim I was cheating because other people have used it too!"
      Professor: "Good day to you sir."
      Student: "But...."
      Professor: "I SAID GOOD DAY!"

      --
      Vintage computer games and RPG books available. Email me if you're interested.
  109. This isnt new by SirDrinksAlot · · Score: 1

    We had one like that at fanshawe college as well. It could detect more then just exact duplicates, like duplicate functions as well. It would then be up to the professor to decide if it is an attempt at cheating.

    this is nothing new, fanshawe college isnt the first to do this.

  110. Hopeless case by Syberghost · · Score: 2

    Programs like this either generate horrible false positives, or they're little more than a diff that ignores comments.

    We had a professor who used one of these. I know for a fact that at least one person was copying his buddy's Pascal programs, but rejiggering them to use "repeat until" loops instead of "while do" everywhere, and changing variable names, and this was enough to throw off the scent.

  111. new?!? by Magius_AR · · Score: 1
    This is new?
    This just in...there's this new thing going around called the "Internet."
    Apparently it is some form of communication medium.
    More on that as it develops.

    Magius_AR

  112. What The Frell?! by $nyper · · Score: 1

    Okay then all you Open Source advocates and coders are cheaters and bad people who are just plain uninteligent?

    No I do not think you are and I also do not consider cutting and pasting code to be cheating. The only person you cheat is when you cut and paste code is yourself. The goal is CS is to get the job done as quickly and as efficiently as possible. Allot of times those goals involves cutting and pasting code code you found from somewhere.

    --
    "Help me Obi-/.-Kenobi,your my only hope!" -$
  113. The Program... by dghcasp · · Score: 1
    [...] developed and implemented a "cheating detector"; that is, a program which compares students' coding assignments to each other and detects exact matches.

    Oh, so they've developed "diff -s" now. Watch out for the patent application any day now...

  114. diff don't do it by kippy · · Score: 5, Informative

    First off, diff doesn't work if the kids are smart enough to change their variable names and add spaces here and there.

    I was a grader for the C++ and data structures class back when i was in school. And I saw my share of cheating. One instance that stands out is when a bunch of kids had variables called "dude" and "funtime". Problem was, they had enough differences elsewhere in their code, that an automated diff wouldn't have worked. For a while, I was going to write some fancy perl that would look for certain cheating patterns that I was seeing, but then I got lazy.

    One deeper way to check for cheating is to pass code through the front end of a compiler and check what comes out. if there are too many simmilarities, they will stand out even if kids change paramater names and the like.

    Finaly consider this: Checking for cheaters in a class isn't just doing a diff of two files. For every student in the class, you have to check his code against everyone else's. This is a O(n^2)problem. My class had around 350 people in it
    so that's 122500 checks to do. If it is anything more complex than a diff (multiple files, compiler front-end, fancy perl parcing) this can take a mad amount of computing.

    1. Re:diff don't do it by Anonymous Coward · · Score: 0
      so that's 122500 checks to do

      Only if you make the assumption that none of them are cheating. If a cheater scores a "hit" you can bail out early. Also once you have a verified cheater, you can use that as your next baseline to compare against. Cheaters tend to share work, so presumably you'll get more hits, allowing for more early-exits.

    2. Re:diff don't do it by startled · · Score: 2

      Well, the program supposedly does a better job than diff, but you'd still be surprised. When I was a grader, we had a few brothers in the same class. First off, it'd be so obvious if brothers were copying, you'd think they wouldn't even try. But the first assignment-- same code, same font, same printer.

      We thought they just didn't get it, so brought 'em in and told them in no uncertain terms-- no copying! Next assignment, same code, different font, same printer.

      The prof was a complete pushover, so we just told them off again. Next assignment, they changed a couple of variable names. Of course, the prof still didn't want to report them, so he just gave them a shitty grade (suspension or expulsion being the general remedies for that sort of thing).

      So there are two points. First: diff, or slightly more sophisticated diff, will catch a whole lot of people. Second: all intro CS classes at all universities find cheaters; only some are willing to enforce the rules. It looks like Georgia Tech is one that isn't afraid to stand up to this ridiculous conduct.

    3. Re:diff don't do it by Anonymous Coward · · Score: 0
      Of course, the prof still didn't want to report them, so he just gave them a shitty grade

      The university I went to had a very strict policy on plagarism, with pretty severe penalty (first offense: F for course, second offense: out of school), and this became the problem. The professors I would TA for were too scared (or lazy) to enforce the cheating rules because of the heavy penalties involved. On lots of occasions I would point out the cheaters' offenses and it would get dismissed because the events would be: cheater gets F, cheater complains, university has review. Best that could happen then is that the review would keep everything stayed the same (cheater F, prof okay), but what would typically happen is that university would overrule (maybe get F for the assignment or something) and the prof would get a black mark on their record.

      Plus there's also the problems of asshole students who smash up your car in the parking lot because you turned them in.

    4. Re:diff don't do it by Anonymous Coward · · Score: 1, Interesting
      Finaly consider this: Checking for cheaters in a class isn't just doing a diff of two files. For every student in the class, you have to check his code against everyone else's. This is a O(n^2)problem. My class had around 350 people in it so that's 122500 checks to do. If it is anything more complex than a diff (multiple files, compiler front-end, fancy perl parcing) this can take a mad amount of computing.

      Diff is a high cost way of doing it. There are more intelligent ways to create a cheating detector:

      1. Parse a student's submission, and extract some relevant statistics. Pick some good ones that students will never change through search and replace. If you are afraid that students will figure out the detector, change the stats used regularly.
      2. Create a vector which describes each submission. Since you only do this once per submission, you can lots of work here, such as parsing the files, compiling, dealing with multiple files, etc. If you reuse assignments from year to year you can keep these precomputed vectors around for checking future submissions too.
      3. Compute the euclidean distance between all vectors. (Yeah, O(n^2), but n really isn't that large, and the computation is cheap.)
      4. Sort the list of distances.

      Voila. The top of your list of distances now tells you the most similar submissions. Get your TAs to compare them by hand, and get ready to deal with the consequences of catching people...

      Is it possible to beat such a checker? Of course. Is beating it easier than doing the assignment itself? Highly unlikely. As a student you never know what statistics are being used, nor do you know what similarity thresholds are used, so anything you copy off of someone else may trigger such a checker.

      Does it work? Yes. I have caught many cheaters using this technique...

    5. Re:diff don't do it by shaunj · · Score: 1

      My school's (Rochester Institute of Technology) CS department has a cheat checker that looks for similarties (regardless of comments, variable names, etc) and generates a count of the possible number of similarities. From this, the professors are able to set a threshold for a maximum number of similarties (depending on the assignment). The ones above the threshhold are looked over by 3+ professors and a consensus is reached from there.

      -Shaun

    6. Re:diff don't do it by jokerghost · · Score: 1

      Quote:

      "Finaly consider this: Checking for cheaters in a class isn't just doing a diff of two files. For every student in the class, you have to check his code against everyone else's. This is a O(n^2)problem. My class had around 350 people in it so that's 122500 checks to do. If it is anything more complex than a diff (multiple files, compiler front-end, fancy perl parcing) this can take a mad amount of computing."

      There's an easier way to do this. Generate a script that takes into account the blank spaces associated with tabs, space bar hits, or carrige returns. All you need to do this is to assign all the characters (and spaces, etc) a value (hmmm... you could use the ascii equivalents) and add all the character make a checksum. Do this for every file/code/whatever or add all of the files/code/etc together to produce one checksum. Test that checksum against all of the other student's checksums within a degree of standard deviation. If the cheksums fall within this degree of deviation, then they are probably cheating...
      Another way, if you want to make it more complicated than a simple ascii test, is to, assign values to statements. Note how I said statements- you assign each call (eg "int whatever" a value.) If someone types "int x", ignore the x, and just add the value for integers to the checksum. This can be done with loops, function calls, and more. Also, this can take into account multiple files of code, so long as they are linked properly. Again, compare the checksum generated to all other cheksum- within a standard deviation.

      Another way to check would be to, instead of looking at the code itself, look at what is generated in the machine language. Compile the programs, and check the binarys against each other. Or, you could compile the program, feed the output into an assembler de-compiler and compare the steps, calls, whatever.

      In short, it's not so difficult to make a cheat detector, nor would it take a great deal of computational power, especially if you are using checksums. But, what everyone must keep in mind is that a computer only runs programs. A cheat dectector should always be verified by a human to assure that the machine is not wrong. There are only so many ways one can code "printf("Hello World")."

      -------
      Who says you have to be an adult to matter in the world? I'm only 17.

      -Jokerghost

    7. Re:diff don't do it by bollocks · · Score: 1

      Amongst the people I know who have been marking
      student papers, after seeing 350 odd papers, any two papers that are even vaguely similar will be noticed. It's not necessary to compare each paper against every other.

      Asking them to explain their code usually works. So does having a couple of people in the class who get p155ed of when someone who knows nothing gets the same mark they do. (especially by final year when they are imagining this person going out into industry claiming to have a degree from X, then finding that employers don't look favourably on degrees from X because they let too many through with little idea what they are doing)

    8. Re:diff don't do it by Serpent+Mage · · Score: 1

      If it is anything more complex than a diff (multiple files, compiler front-end, fancy perl parcing) this can take a mad amount of computing.

      On average it takes about 8 to 12 hours for the cheat finder to finish checking for cheaters on the first few programs (very small programs with only a few functions) and about 1 to 2 days for the middle programs and about 3 to 5 days for that last couple of programs in the semester. The reason for the massive amount of time is because not only does it check for cheaters by comparing current semester assignments but also has a huge database of past assignments from past students dating back to 92 so those most of the people who get caught are those that use past semesters assignments.

    9. Re:diff don't do it by Mike1024 · · Score: 2

      Hey,

      every student in the class, you have to check his code against everyone else's.

      Maybe not.

      You could create a numerical checksum that summarised the program's function, comparing the number of steps, etc. etc.

      This initial checking program could make a file with the number of lines equal to the number of checksum results. If you get the checksum 12345, your filename gets put in line 12345.

      All collisions could be written to another file for further analysis. Results that are very similar could also easily be flagged.

      This would be a linear-complexity problem (Depending, of course, on the checksumming technique's run-time). It would also allow highly parallel processing, so you could have distributed computing by all the university's computers (Connecting to a central server to get files and post results).

      Just my $0.02

      Michael

      --
      "Goodness me, how unlike the FBI to abuse the trust of the American public." -- The Onion
    10. Re:diff don't do it by DotComVictim · · Score: 1

      Compute closure on the set of variables not affecting the results of the computation (return values) in each function. Discard these variables.

      Compute closure on the set of functions not affecting the results of computations in main. Discard these functions.

      Rename all variables in each function to a (remembering prior names), and rename all functions to b (also remembering). Strip all space, comments and operators from each line of the function. Sort the remaining lines by length, with the longest line first. Restore original variable and function names. Substitute a-z for each variable by when it is first referenced.

      Perform a similar sort/rename for function names based on the length of each function and rearrange the functions A-Z, from most complex to least complex.

      Now sort each line in the file in ASCII order, stripping duplicates.

      This should match the most complex parts of the logic with no respect to variable/function names, redundant computation or choice of operators.

      You can subdivide the problem into overlapping buckets based on length of the hash, and compare only programs of similar distilled complexity.

      To get a reasonably good metric, one still needs to compute 'sedit' distance, allowing for swapping of two lines, swapping of two characters, insertion and deletion of a character, for each pair of hashes, in each bucket.

      I just don't see a better hashing than this, please post one if you know of it.

  115. BSA by JohnHegarty · · Score: 1

    Mabey the BSA should make thier members run this... see who's copying off who...

    Could Mr Gates and Mr Jobs please see me after class. I have found a problem with your assignments.

  116. Sounds like understaffed or just bad professors by Wesley+Everest · · Score: 2

    If this program is really necessary, it suggests that very little effort is being spent evaluating students' work. Given that universities have been cutting back on teaching budgets, it's probably due to too many students in a class or inexperienced professors. If the professors took the time to actually look at the code (or in the other case, read students' papers carefully), it is pretty obvious if a student is cheating.

    Also, if the professors took the time to create good homework problems, cheating wouldn't help a student even if they didn't get caught. Of course, if you're teaching two classes with 100 students each, you can't really do that.

    Perhaps students should do a little math and figure that if they pay $4k per quarter and take four classes, that's $1k per student per class. And if a professor is teaching 200 students, the university is receiving $200k for the classes. The professor is probably making somewhere around $10k for the quarter, call it $20 to include benefits and taxes. Where is the other $180k going? And when budget crunches come up, perhaps budgeting should be done similar to code profiling -- look to the biggest expenses first, and make sure that the cuts don't damage the overall purpose.

    Personally, if I was getting the sort of cheap-ass education where this cheater-detection software is considered a cheap alternative to proper education, I'd expect to pay much less in tuition, rather than the constant 10+% tuition increases students have been seeing for the past 20 years or so.

    1. Re:Sounds like understaffed or just bad professors by Anonymous Coward · · Score: 0

      You poor, sad soul.

      Don't you get that a University degree isn't about learning? Its about getting a diploma so you can come over to /. and bash the a-holes who don't have a diploma.

      Personally, I'm so educated that all the knowledge paralyzes me. At least that's my explanation to my boss when he asks why I haven't done anything in 3 years.

    2. Re:Sounds like understaffed or just bad professors by kyras · · Score: 2, Informative

      Read the article. It says that there are about 1700 people between the two courses. That's (on average) 850 people per course. That's huge, agreed, but even if you only have 60 people (hence 60 projects) in a class, and if they're of significant difficulty (e.g., more than just binary trees or mergesort or something like that), you can't correct them all in a reasonable amount of time. Which means splitting up the work among TAs and the prof, so cheaters slip through when the two identical programs are split between two graders.

      --
      Tastes like burning! - Ralph Wiggum
  117. Cheating can be more Global by Lucky+Kevin · · Score: 1

    There is also the problem of getting code from the net and from people unrelated to the University. When I worked in a Comp Sci department in a college of The University of London we would sometimes run reports and thesis submissions against AltaVista and Google; usually if we thought that the student had far exceeded expectations.

    One student was caught because the person in the States that the student commissioned to write his final year project for him complained to the University that the student hadn't paid him. We checked into it and the student was expelled.

    --
    Kevin
    "It's not the cough that carries you off, it's the coffin they carry you off in" O. Nash
  118. I teach a CS course... by ccoakley · · Score: 2, Interesting
    CCS CS 20 at UCSB is supposed to be a CS course geared toward using "real-world" problem solving techniques. So, I told students that they could buy, download, and copy any program and turn it in as long as it didn't violate a copyright or license agreement. Then the trick was to give them problems that they couldn't easily find such solutions.


    One assignment: modify this open source program to fix an assigned bug.


    Another assignment: Modify this (Same) open source program and add a feature that they've been wanting for a while.


    It's not like the solutions aren't readily available and well documented, it's just like in the real world: it hasn't been done here yet.


    As long as intro courses use textbook problems with textbook solutions, students should be penalized for not doing their own work. The point in these classes is to provide an educational foundation. As soon as the foundations are laid, the students should be given work that isn't straight out of a textbook, and should be allowed to use any legal method of getting a solution. It's not like they'll find an exact solution, so they will have to do some tweaking and patching to get it to work anyway.


    This was the philosophy my teaching cohort and I presented to the college Provost and the head of the CS department. They bought into it and gave us the class.

    --
    Network Security: It always comes down to a big guy with a gun.
    1. Re:I teach a CS course... by Anonymous Coward · · Score: 0

      "Hey, I'm Microsoft Certified"

      Its one thing being a loser.

      Its quite another to advertise the fact...

    2. Re:I teach a CS course... by Anonymous Coward · · Score: 1, Funny

      and quite the third thing to advertise in a public forum that you completely failed to get a simple joke.

    3. Re:I teach a CS course... by fscking_coward_2001 · · Score: 1

      well ... he did do it anonymously

  119. Re:I actually got "caught" by one of these program by Anonymous Coward · · Score: 0

    Hey, you can't expect TA's to use judgement...these guys can barely pick their ass without notes.

    The idea of using judgement and common sense in grading undergrad papers beggars belief. Therefore, they use a program which blindly follows logic thought up by a TA. A professor takes credit and it gets published.

    See how the world works? You should cheat, but set it up so you can't get caught.

  120. Similar program at Stanford by else...if · · Score: 2, Interesting

    Here at Stanford, where CS classes account for more than half of all cheating incidents, we've been using a system like this for a couple of years. Apparently, rather than comparing source code, it actually compares object code so that it can detect people who change variable names and so on. The theory is that no two people should actually write code which compiles to the exact same object code, no matter how similar their algorithms, unless they really are cheating.

    1. Re:Similar program at Stanford by C.+Mattix · · Score: 2

      When I taught an introductrry class at Purdue (3 years ago), we had a similar thing. It worked on both source and object level. It had a scaleable sensitivity, so that we could compensate for things that could only be written a few ways, for example linked list implementations. When it did find suspects, it would allow us to do a split window Diff on the files with the suspected portions highlighted. It was pretty sweet. I would always demo it the first day of class to scare the crap out of the kids.
      We usually cought 5-10 per semester (out of about 200). Most of those were people who would steal printouts from the printers in the back of the room and copy the code.
      It was always most obvious (and most pathetic) when 2 people would turn in things that were broken, in the same way, just with variable names changed. Ex:

      for(i = 0, i max, ++i) ... and
      for(counter = 0, counter maxSize, ++counter) ...

      Those things just made me mad.

  121. I've seen a similar tool by g1zmo · · Score: 1

    One of the professors in the CSE department at my school wrote (at least he claims to have written it, and I have no reason to doubt that) a tool that, among other things, tries to match patterns in the ways that memory is allocated and logical paths are constructed. It's actually a whole suite of tools that are used by the department to catch illegal collusion among students, and every submitted program is run through these tests.

    --
    I have found there are just two ways to go.
    It all comes down to livin' fast or dyin' slow.
    -REK, Jr.
  122. Sophisticated Cheat Detection System by Lethyos · · Score: 2

    $ man 1 diff

    --
    Why bother.
  123. diff is news? by verch · · Score: 1

    Someone at the GATech CS dept figured out how to run diff?! Wow, no wonder its considered a top University. I guess now people will start reformatting the code until the University discovers the -w flag. Once that happens, who knows, CS students might actually have to learn to code.. The horror!

  124. my cs prof had one too by gnurd · · Score: 0, Redundant

    he called it 'diff', and he caught some people too!

    --
    "i was saying gnu-rd"
  125. First Diff? by tommck · · Score: 2
    I'm surprised nobody posted a "First Diff-Related Post" article!

    (Geez.. how many people just don't bother reading any articles before posting their "original idea"?)

    T

    --
    ---- It puts the lotion on its skin or else it gets the hose again. It does this whenever it's told.
  126. This is old by drix · · Score: 3, Informative

    We have had this in the UC Berkeley computer science department for some time now. IIRC it's been quite effective; when it was first unveiled it nailed many, many students for cheating (I think). The verdict amongst students is, if you're good enough to defeat the cheating detector then doing the assignment on your own should be no problem anyways.

    --

    I think there is a world market for maybe five personal web logs.
  127. Re:Re Pist Dtechtire by Anonymous Coward · · Score: 0

    May B ?, Wood mouse disects two slippery posts.

  128. Good. Great! by dasmegabyte · · Score: 2

    I'm sick of programmers with degrees who can't program. Honestly, 100 level CS classes are supposed to be the acid test; if you don't have the basic problem solving skills to perform simple conditional logic, understand arrays and symbolic links, and output "hello world," you shouldn't be a CS major. And yet I've seen CS students in upper level classes (there was one in my networking group in his senior year) who can't write a program from scratch without a book or template to guide them.

    This is a major difference from consultation. Copying hurts the computer world, it hurts other students (who have one less peer to help them through the rough patches with hints and examples) and it unalienably hurts the cheater most of all. I dropped out of my CS department to work for IBM *because* there were so many students sliding by and yet still maintaining higher averages than mine.

    Of course, I am guessing that the GT system will probably be fairly stupid at first, and it won't take long for some overworked freshman to write an app to automatically thwart it. But this system will definitely help keep honest people honest.

    --
    Hey freaks: now you're ju
  129. nothing new.. by kemster · · Score: 1

    This is nothing new, MIT has been doing this for awhile...

  130. Once upon a time... by Monte · · Score: 2

    ...I wrote BASICA (aka GW-BASIC) code for a living (and you can wipe that smirk off your face right now, I got paid damned well for it). Because this was an interpreted language and worked within (God help me) 64k of memory, space was at a premium.

    There was this 3rd part product that did a bunch of nice things, but one of the options was "compact". It would remove all whitespace outside of literals, jam as many statements on a line as possible, replace long var names with "A0", "A1", "A2" and so on, if desired it would renumber lines from 0 on in increments of 1, etc etc, all in the name of reducing the memory footprint.

    It would excrete the most horrific, obfuscated, unreadable, unmaintainable little turd of code you can possibly imagine.

    I hope something similar is available for these students :)

    1. Re:Once upon a time... by Annamite · · Score: 1

      Well,

      to aid the professors, there would be some one wh ois smart enough to reverse this program's "features" to expande the code out to a more readable version?

      And who woul turn computer code assignmens in that no one can read? All the TAs would automatically give it a D.

  131. Not that uncommon by Foochar · · Score: 1
    I think just about every large CS department does something like this. I know that when I was studying CS at UMBC there was definetly something of this nature in place. The point isn't to catch collaboration and assistance but to catch true copying.


    The policy when I was a student was that talking about your code with another student was fine but looking at another student's code was not ok. If you wanted to sketch out a basic solution in psudeo-code that was ok to. You just couldn't implement it together.


    Later classes actually required collaboration. I took an OS design classes (used the dinosaur book by Tenenbaum) and we worked in teams. There were plenty of times when two or three of the teams would sit down and has through how to do something without getting into actuall implementation details. By this time they want to have filtered out the cheaters because if you are cheating on projects of the magnitude that this one was the only way you are going to get caught if is the seg fault is on the exact same line as someone else.

    --
    "You can't fight in here! This is the war room" --Dr. Stra
  132. So what? by nephorm · · Score: 1

    I attend the University of Maryland, College Park, and they've done this for years. In fact, they back-catalogue assignments for years so that at any time they can compare your code with that of programmers that have long since graduated (if they've assigned the same assignment as a previous year).

  133. Finally Relizing its out?? by Nashirak · · Score: 1

    When I was at Tech, I took the OO programing course. The first day of the course all the TAs and professors were like... If you think this thing doesnt exist then try us. :) We couldnt talk about how we were going to right an algorithm and were definitly not allowed to look at each others code. But while the diff cant really be fooled... at least the auto grader (we upload our programs to a webpage and it grades the program in about 5 seconds) can be fooled. :) Muha ha ha!

  134. Vanderbilt's Honor Code by Chris+Y+Taylor · · Score: 5, Insightful

    "Today I am going to give you two examinations, one in trigonometry and one in honesty. I hope you will pass them both, but if you must fail one, let it be trigonometry, for there are many good [people] in this world today who cannot pass an examination in trigonometry, but there are no good [people] in the world who cannot pass an examination in honesty."
    - Madison Sarratt (1891-1978), dean, Vanderbilt University.

    1. Re:Vanderbilt's Honor Code by Anonymous Coward · · Score: 0

      Nice thought. But if you're sitting on the sidewalk selling pencils as an honest man or sitting in a CIO's chair and you cribbed a CS101 assignment once, WHICH IS BETTER FOR YOU AND YOUR CHILDREN?

    2. Re:Vanderbilt's Honor Code by ReadParse · · Score: 2

      ...for there are many good [people] in this world...

      Oh nice... our world is so politically correct that we're going to change Dean Sarrat's words so they might not offend any women? I think they would understand that he said this a long time ago, when higher learning was predominantly a male endevour. Yes, it really was.

      If you haven't figured it out yet, he said "good men," not "good people".

      Hey, a quote is a quote -- whether you like all of the words or not.

      Oh, and by the way, I realize it wasn't the Slashdot poster that made the edits, but rather Vanderbilt University itself.

      RP

    3. Re:Vanderbilt's Honor Code by Anonymous Coward · · Score: 0

      Give the guy a break. He thinks its better to be honest and poor.

      My guess is that he's not very honest and poor.

    4. Re:Vanderbilt's Honor Code by dublin · · Score: 2

      PC has run amok. There is NO reason to change that quote. The truly scary thing is that academic freedom has been compromised to such a degree that no one dares utter it in its original form.

      This is even worse than the current flap over changing the races of the firefighters that raised the flag Iwo Jima-like over the WTC remains, in order to present a more "diverse" picture, history and accuracy be damned...

      --
      "The future's good and the present is nothing to sneeze at." - Roblimo's last ./ post
    5. Re:Vanderbilt's Honor Code by ymgve · · Score: 1

      Perhaps he just misremembered the quote? Don't be hard on him...

  135. Sad, sad tale... by Anonymous Coward · · Score: 0

    I was in a Joint Enrollment Economics class where the prof. pulled four students out of the final exam: he took them all into the hall, and essentially dismissed them (they came back in sans exam). It turns out the four of them had (while the rest of the class was busy doing original work) quietly trading answers in the back of the classroom.
    the real kicker is that the professor was kind and gave them a second chance: he let them take the exam again after the school day was done. Well, he leaves the room for five minutes and when he comes back, the four cheaters are at it again! Needless to say, they got Fs.

    Personally, I can't imagine someone who thinks that it's okay to use someone else's work in any environment where the goal is to measure the individual.

    1. Re:Sad, sad tale... by bcrowell · · Score: 2

      Personally, I can't imagine someone who thinks that it's okay to use someone else's work in any environment where the goal is to measure the individual.
      Well you see, the college educational system is really really unfair. The profs try to make you study for, like, hours every week, or else they give you a really bad grade like a B or something. So cheating isn't wrong. Cheating is actually a revolutionary blow against a corrupt system. Every tender, loving act of cheating brings us one step closer to educational utopia, where everyone will be awarded a PhD at birth.

    2. Re:Sad, sad tale... by Anonymous Coward · · Score: 1

      "I became Mr. Harshaw again when major universities began to hand out PhDs for playground supervision. It demeaned the years I spent in medical school." -- (deliberate misquote of) R.A. Heinlein

      Yes I know you were being facetious but I knew too many students whose actual opinions are too close to that "joke" for comfort.

  136. Copying code by Dewfus · · Score: 1

    What do you call a person who copies code instead of writing his own? "Hello, Mr. CEO."

  137. in a room of cheaters, who has the right answer? by eyeball · · Score: 2

    Cuz remember programmers: in the real world you are fired if you consult with a co-worker
    I guess the university wants to guarentee that there will be well educated people that workplace cheaters can consult with.

    --

    _______
    2B1ASK1
  138. In the real world... by Anonymous Coward · · Score: 0

    There isn't anyone to copy off of because they all have their own projects to work on.

  139. What the news is by epepke · · Score: 2

    A lot of people have been saying "this is news?" The news is that 187 people were "caught" with this program, not that the program was written. The story appeared in the Atlanta Journal-Constitution today; I presume it went out on the wire services, too.

    Frankly, I'm skeptical. I'm sure this program is more sophisticated than diff, which means more likely to get false positives. It was in two introductory programming courses. I'm not sure that there are 187 different ways of writing substantially different programs for that kind of assignment, especially by people who have only seen the style of the teacher and that of the textbooks.

    1. Re:What the news is by psykocrime · · Score: 1

      Frankly, I'm skeptical. I'm sure this program is more sophisticated than diff, which means more likely to get false positives. It was in two introductory programming courses. I'm not sure that there are 187 different ways of writing substantially different programs for that kind of assignment, especially by people who have only seen the style of the teacher and that of the textbooks

      Exactly. If somebody asks you to write "Hello, World", how in the hell are you supposed to do it in a fashion that's different enough to NOT get flagged as "cheating?" It just doesn't make sense, especially in lower level courses, to assume that people are cheating because their work is similiar.

      --
      // TODO: Insert Cool Sig
  140. Mod this up by Wesley+Everest · · Score: 2

    I love this idea. Rather than outlawing good practices, they're doing real education. And if you really cheat with this policy in place, it's very clear-cut.

  141. UC Berkeley uses this by amanb · · Score: 1

    http://www.cs.berkeley.edu/~aiken/moss.html

  142. The problem isn't with sharing code... by rmayes100 · · Score: 1

    The problem is giving credit where credit's due. There was a post on here a few months ago about Redhat releasing a driver (sorry I don't remember the details but it's on /. somewhere...) that was taken from one of the BSDs, without giving credit to the original developer of the driver (as the BSD license requires). I've had professors in the past that had no problem with you borrowing code as long as you cite where you got it from (just like writing a paper). I think Computer Science is still about getting the job done without reinventing the wheel but you need to make sure you aren't outright stealing someone else's work without either their consent or giving them credit.

  143. Clarifications by jbester1 · · Score: 1

    Some clarifications from a random cs major at 'Tech.

    The first class cs1311 is a scheme course which is required by every student (as far as I can tell). The second class cs1312 [Java] is required by CompSci, CompEng, and several other engineering majors (Industrial, Electrical, etc). Since all the departments pressure the CS dept. to dumb these classes down there really isn't a reason to copy code except laziness.

    The surprise really isn't that they caught people cheating (it's usually around 5%), but that it was around 1 out of every 8 students that did so.

    As a side note most of the assignments given aren't copy algorithms out of the book assignments. More so, according to the honor code you are required to cite any book from which you obtained an algorithm to use.

    1. Re:Clarifications by Anonymous Coward · · Score: 0
      The surprise really isn't that they caught people cheating (it's usually around 5%), but that it was around 1 out of every 8 students that did so.

      I think I'm starting to see why there's so much cheating there :).

      ~~~

  144. Too late for O'Leary by sulli · · Score: 2

    If only they had used this on their football coach before Notre Dame hired him!

    --

    sulli
    RTFJ.
  145. Cheating by Anonymous Coward · · Score: 0

    Cooperate to Graduate... thats the American Way!

  146. experience by sammy.lost-angel.com · · Score: 1

    i used to work in a lab as an undergrad computer science student, i was SHOCKED at the number of people that would copy. some would get away with it, others would get caught (depending who the prof was). as soon as they started taking more advanced classes, where individual projects were involved, it was very clear who had cheated their way through the easy classes.

    now, a few of these people probably managed to get through the entire program, and i am certain this reflected poorly on the school when they got out in the real world and didn't even know what OOP was, or how to write classes in C.

    i fully support schools that implement systems like this, as long as they work. it's better for the school, the students, and the eventual employers of the students.

    if you can't do the programming, you shouldn't be in the class.

  147. CS detector don't bother me, but term paper does by Angwe · · Score: 1

    Yeah, six words is enough to determine that we're cheating.

    Or that we're both quoting the same relevant material from our (text)book.

    That one's fucked.

    --
    Curiosity?!? My ass! He stole shit! -T. Carpenter
  148. Drexel does this too by steddyj · · Score: 1

    I'm a CS Student at Drexel University in Philadelphia. The last term I had class (out in the real world now, working in Perl on co-op) was last spring, when our Prof told us he was implementing a simalar program.

    At the time, they were still very inaccurate, and being used only to pick which ones needed to be carefully examined by the TA's. Not Really sure how they run now.

  149. Manchester University UK has had this for years by Kamran · · Score: 1

    Manchester University has had this for years, and it's fairly advanced, checking overall structure, so people who use different variable names or replace do whiles with while loops will still get caught. It's fairly extensive, and also works with Functional languages. It also highlights how much code looks similar, and highlights the pieces of code in question.
    There was a link but I can't find it

  150. Simple Cheating Detector by Watcher · · Score: 1

    There is a really simple way of determining whether or not someone has copied code for an assignment:
    Remove all whitespace, and change all variable names to a standard name, and then compare the munged sources. Its a good way of figuring out whether anyone has copied code and then just reformatted it and changed the variable names. Sure, it won't catch folks who copy a routine here or there, but it is a quick and easy start, and if you get more sophisticated it can cut down on cheating considerably.

  151. OO Programming? by nherc · · Score: 1, Redundant

    I would think these students would receive a bonus for efficiency in reusing existing code. :)

    --
    'He was a dreamer, a thinker, a speculative philosopher... or, as his wife would have it, an idiot.' - Douglas Adams
    1. Re:OO Programming? by Moonshadow · · Score: 2

      There's a recurring joke here in the office:

      Good programmers know how to write good code. Better programmers know how to steal it.

      Free code repositories on the net are our best friend. :)

    2. Re:OO Programming? by Dyolf+Knip · · Score: 2
      I would think these students would receive a bonus for efficiency in reusing existing code/i>

      We do. But not until we take CS 2130, the class taken right after these two, where we are specifically told to use other people's code when possible, just so long as we label it as such.

      --
      Dyolf Knip
  152. Sod This!!! by Anonymous Coward · · Score: 0

    What they really need is a tool that can determine individual contributions to "group" projects and give credit to the people who did them!

  153. Other sources of cheating... by ChaoticCoyote · · Score: 2

    ...include newsgroups, public code archives, and books. Several times a year, I'll receive a note from some teacher who suspects that a student turned in code from one of my books! Spend any time on technical newsgroups, and you'll learn to identify the students who are looking for free help with their homework... ugh.

    One fool actually asked me to translate one of my Java programs into C for him so he could use it in his class! What a yutz.

    To make a "cheating detector" work, they'll need to compare student's work against the vast body of public domain, published, and open source code found in the wild. And that just isn't practical. With the current system, they're only going to catch those who cheat off each other, or those who copy from the same source.

  154. amoral CS students by L1nuxMn · · Score: 1

    if cheating is so bad in Software Engineering then why don't the universities add Ethics to the list of prerequisites for the course...

  155. not even close to being foolproof by Anonymous Coward · · Score: 0

    I took a number of classes at a big10 univ that used systems to do this, and let me tell you, they don't work. How do I know you ask? I spent a semester under the gun of the academic honor board(or whatever fancy title they use to pad their resumes - they are other students) with the threat of expulsion looming over my shoulder. My school has very strict policies about cooperation among students, essentially help of any kind is a violation. I asked a friend(already took the class) to help me out on a problem I was having debugging a small section of code. His contribution amounted to 1 line of code(used for debugging ONLY) that I accidentaly left in when I submitted my solution, and a 5% increase(from a 91 to a 96%) on the score (or 1% of my total grade for the semester). To this day I do not feel like this was cheating, and if the Prof. would like to argue otherwise I would say that I was the least of his problems(the class was rife with major league cheating(entire assignments)) and at least I knew the material(for the most part obviously)

    I went and talked to the prof, and he asked me if i would like to admit to anything. I knew I had technically violated their rules, and that my friend was now open for punishment so I made the dumbest mistake of my college career - I lied straight to his face and told him I looked at an old solution(they use the same assignments each year - NO changes). Had the prof actually looked at the code I claimed I copied, the code I turned in and the code that was presumably flagged they would have easily seen that I was lying about using the old solution. He was more than happy to accept my explaination(look at how effective it is!) even though it was an IMPOSSIBILITY(i NEVER looked at it, and my code was totally different from their code(i finally saw what they accussed me of AFTER they handed out my punishment.)

    To make a very long, convoluted and just plain stupid story short: these systems don't work, there are only so many ways to skin a cat in most cases, and they rely on other methods(FUD) to "catch" "cheaters"

    In the end it didn't really matter to me(aside from the massive amounts of stress) - I had my final grade lowered by 11% but I still ended up with an A, but only because I knew the material

    My advice to ANYONE flagged by one of these systems - find out immediately what they are accusing you of, and certainly don't try to make things better by making them worse

    fvck yeah i'm anon

  156. "in the real world"... by Wakko+Warner · · Score: 2

    ... you aren't even hired if you don't fucking know how to code in the first place and got your degree by copying others' work.

    Don't say such stupid shit, Rob.

    - A.P.

    --
    "Remember when the U.S. had a drug problem, and then we declared a War On Drugs, and now you can't buy drugs anymore?"
  157. anti-anti-cheat by famazza · · Score: 1

    Ok, who will be the first to propouse a anti-anti-cheat program.

    You give your classmate's source code to it, and it returns an anti-anti-cheat-program code :o)

    We must always be a step ahead!

    --

    -=-=-=-=
    I know life isn't fair, but why can't it ever be un-fair in MY favor!?
  158. yup......it was very scary by Anonymous Coward · · Score: 0

    I graduated from GA Tech, and I had to take both intro to programming classes as all engineering majors were required to. the second class was programming in java, and yeah they would use the "cheat detector" to weed out those who shared codes....and like it had all the work of all students going back to previous couple semesters so you couldn't even use any old work by someone else. they would check it on everything you turn in, homeworks, programs, design docs. I remember around 50 students every semester got a "F" and disciplinary warning. It was a scary thing....one wrong move and you were busted, and there was no arguing the mighty "Cheat Detector"

  159. Explanations by pridkett · · Score: 2

    Such a project is not that difficult, in fact, we had to develop a program for my senior software engineering class, with a GUI and all. It was based on Halsted's metrics which is based on lines of code, variable names, function calls etc.

    The problem with such a method is in introduction CS classes (or even OO classes) there are very few ways to do things. Furthermore if the professor gives information related to it, it's highly likely such information will appear verbatim in the solutions.

    My university uses such a program, and often it seems to flag people who didn't cheat. We might hear about how many people get "caught" but it never shows how many people actually DIDN'T cheat (ie the rate of false positives). Of the three people who I know well that were flagged, none of them cheated and all were exonerated. Fortunately, I attend a small enough school that a few well placed connections can correct this, but I feel bad for people at larger institutions.

    As a TA for a senior level class, I still frequently come across copied homework and lab assignments. Unfortunately, all I can do is give the people 0's on the assignment (no harm if they never did it in the first place). I'm wondering what the punishment at other institutions is.

    --
    My Slashdot account is old enough to drink...
  160. Old news! by Wothan · · Score: 1

    diff..not much more...
    My school, UQAM..(Université du Québec à Montréal), has been using it for ages....If you can't code, switch to MIS.

  161. Missing the point... by Edward+Teach · · Score: 1

    This was used for two undergraduate classes: "Introduction to Computing" (required for any student in the College of Computing) and "Object Oriented Programming" (required for Computer Science majors)." Cuz remember programmers: in the real world you are fired if you consult with a co-worker ;)

    The point in having first and second semester students do their own work is to evaluate what they have learned, not what their roommates, or classmates, have learned. Once they have the basics down, we expect them to work in teams and to collaborate, as long as they document where they got any code.

    I have a hard time having sympathy for someone who turns in work that is not their own, passing it off as their own, and then wondering why they fail. There are rules to follow; the rules are clear; the students agree to follow the rules in order to attend; the rules should be enforced.

    --

    Setting his threshold to 5, Sparky eliminated most of the trolls on /.

  162. They use this many places... by Tower · · Score: 2

    As has been said for various other schools, the RPI CS dept has a script like this... after a pre-compilation stage, it doesn't matter if you changed variable or function names, or moved the functions around in the file... at that stage of the compile, if the searches find very similar code, it will flag it, and a real person will then compare the findings. Nice, efficient, and tougher than changing "int foo;" to "int bar;"

    --
    "It's tough to be bilingual when you get hit in the head."
  163. Term-Paper Blues by CrazyLegs · · Score: 2
    This is really nothing new. Here in Canada, some universities are using similar techniques to ferret out term-paper cheats. There is a company (can't remember the name) that offers this service which, basically, compares a student's paper to a number of ready-to-buy papers one can find on the Web, etc. If the 'similarity index' reaches a threshold, the student's paper is flagged for further investigation by the teacher.

    Anyways... I have no particular problem with finding cheats. Learning the social skills and dynamics of group software development is one thing, but outright cheating is quite something else. When I think back to my school days, those who were pathological in their need for 'help' on their assignments were the ones typically over their head and/or in the wrong profession. Weed them out!

    --

    CrazyLegs

    "Pork!!" said the Fish, and we all laughed.

    1. Re:Term-Paper Blues by d-e-w · · Score: 1

      This is really nothing new. Here in Canada, some universities are using similar techniques to
      ferret out term-paper cheats. There is a company (can't remember the name) that offers this
      service which, basically, compares a student's paper to a number of ready-to-buy papers one
      can find on the Web, etc. If the 'similarity index' reaches a threshold, the student's paper is
      flagged for further investigation by the teacher.


      So, it'll chase all the cheaters back to paper mills. (Businesses which charge more, but generally produce original papers.) Paper mills have been around and easily accessible by college students for decades.

  164. old news by SnugBoy · · Score: 1

    Virginia Tech has been doing this for years. The worst part is that anyone caught with this system gets an automatic Honor Code violation.
    I mean, what would you name a variable that is the bottom axis of a plot. If you said "x", congratulations, you have an honor code violation. Something like 60% of the students in my programming class got a violation in one form or another.

  165. this to that by Omegalomaniac · · Score: 1

    Of course, some people are so stupid that it's really not necesary to use a script on them. One of my professors told a story of a student who copied someone else's C++ code and changed all of the instances of this to that. Obviously, the new code didn't work too well.

  166. so it would be like working at slashdot? by Anonymous Coward · · Score: 0

    n/t

  167. Um.. by WyldOne · · Score: 1

    I thought the best way to discover cheaters was to ask them about 'their' code. If they waffle about how they implemented it, they usually did not do the work.

    You might use a tool to help find potential cheating, but using a tool to prove it is very wrong and unfair.

    --

    make Linux, not Microsoft. sin(beast) = -0.809016994374947424102293417182819
  168. This isn't exactly new thing by greesil · · Score: 1

    At my CS department (University of Washington) we had a similar program running. As it turned out, about 10% of the class was cheating. Normally, the faculty can't do anything about cheaters because it takes up so much time cutting through the red tape (that, and the student union is really strong). But for some reason my class had so many cheaters that they decided to actually go after these guys.

    The class had a about 200 people or so... 20 or so cheaters. That's practically a whole section!

    -me

  169. Hey taco... by adlam.bor · · Score: 0
    Cuz remember programmers: in the real world you are fired if you consult with a co-worker ;)

    Taco, anytime you want to come work for my school, please feel free. When you're responsible for guaranteeing that the graduating students can think for themselves, making sure that they (and you) understand the difference between collaborating and cheating isn't something to make a snide joke about.

  170. Me Too!! by Anonymous Coward · · Score: 0

    I don't remember any article generating more me too posts. Everybody -1 Redundant.

  171. Yeah, but. by Pope+Slackman · · Score: 5, Funny

    Knowing slashdot, they'd prolly implement it by comparing how well they compress.

    You know they're dying to use this revolutionary compression filter technology in other places!

    C-X C-S

    1. Re:Yeah, but. by Anonymous Coward · · Score: 0

      Don't laugh.

      One of the gatech heuristics is compile time (obviously there are others).

    2. Re:Yeah, but. by Anonymous Coward · · Score: 0

      I don't get it.

    3. Re:Yeah, but. by Anonymous Coward · · Score: 0

      Maybe Slashdot could use this technology to stop reposts..

    4. Re:Yeah, but. by Anonymous Coward · · Score: 0

      a goatse post that got modded to 5!@#$

      wtf

  172. Management fast-track by Jburkholder · · Score: 1

    I went to Purdue-Cal where we had a guy who was cheating his way through the assignments by getting listings from the TA he was sleeping with. He would show up the day before the project was due, sit at a terminal typing for a couple hours, compile, get up, stretch, walk over to the printer, collect his listing and leave.

    When he graduated, he landed a job at a local company where he bluffed his way through the interview and then was more or less useless at his coding job. Guy was an ace at fooling the boss, though - convinced the slob everything was someone else's fault. Conned his way into a project leader job where he didn't need to code and pretty much 'delegated' any real work to his subordinates. Last I hear, he was on the fast-track to a director slot.

    Something like this would have kept this guy from ever passing his first ASM class.

  173. "Please Write a Cheating Detector..." by akiy · · Score: 1

    Damn it. So that's why they had us write a cheating detector in my freshman computer science class. I should have cheated back then...

    --

    --
    http://www.aikiweb.com - AikiWeb Aikido Information

  174. Didn't any one actually read this by hebertpa · · Score: 1

    Its not about the software, which is implied in the /. version. Its about 186 people caught cheating. 186 students who will proably be going to community college next semester.

    The worst thing is that they did it in to the easiest classes in a computer sceince program, I got an A with skipping most classes when I went to school.

    --
    madness takes its toll please have exact change
  175. Marking schemes for code, and decompilers by C_James_B · · Score: 2

    background -
    I attend an English university of no distinction, and I'm completing a master's degree in CS. It's not a first CS degree, but a conversion for those who did a different subject for their undergrad.

    coding -
    We've done some x86 assembler, C and Java, which I think is reasonable mix. Some people on the course seem to hate programming. Personally, I wish there was more, but that's by-the-by.

    question -
    Of the above, the Java project was collaborative. Makes sense, given the increased orthogonality of code units versus C or assembler. I wrote most of the code, someone designed the (optional) database, someone else did most of the worrying, and betwen them they produced vast amounts of documentation. I know for a fact that our code was not read over, despite the fact that implementation was supposed to be fifty per cent of the marks. We could not have been, as far as I can see, marked fairly. I like my code - it's the thing I do best. I'm not particularly interested in documentation &c. Does anyone else think that code is overlooked in marking, to the advantage of less core CS skills? How common is it for markers to skip looking at code? Has anyone often had their code looked over in great detail by their lecturers?

    I wonder how many people have tried compiling their code, then decompiling it and handing in the tidied up decompiled code? Don't know much about decompilers, but I'd imagine they make the code look pretty terse, if the initial compile was any good.

  176. Cheating more prevalent in CS than elsewhere? by Black+Parrot · · Score: 2


    > Prior to that year, VT had an average of 75 cheating violations for the WHOLE university (25000+ students). For that one class, on one assignment, 150 students were found cheating by the cheating detector... out of the 500 or so students in the class.

    IIRC, there was a year when 20% of all students busted for cheating at my alma mater were in one of the sections of Intro to CS. I wonder whether cheating is especially endemic there, or whether it's merely the getting caught that's endemic.

    After all, CS seems to hold the promise of a gilded career these days, but the subject matter is so difficult that Otto B. Abusinessmajor can't hack it. Lots of motivation and opportunity to cheat, it seems.

    --
    Sheesh, evil *and* a jerk. -- Jade
  177. A parse tree comparison would be better... by cduffy · · Score: 2

    ...which I suspect is what they're doing.

    It's easy (almost trivial) to instrument a parser to build (say) a Python data structure representing a tree (I wrote some code to do this a while ago; see the CVS repository of http://sf.net/projects/dtct, and please try not to laugh). Applying a diff algorithm to a parse tree (or putting it back out into text and running diff on it, or comparing varieties of text, and so forth) is really quite simple, and not so prone to many workarounds as the system you mention (where using inlines, macros, pragmas modifying compilation &c could have significant effect).

  178. Room with a view! by GdoL · · Score: 0, Redundant

    This is diff plus a VB frontend, right? And those guys with a PHD on computer science education put a 1million bucks and 2 years work on it.
    It's amazing what a good PR can do!!

    --

    ------I can please only one person per day. Today is not your day. Tomorrow isn't looking good either.------
    1. Re:Room with a view! by GdoL · · Score: 1

      It's amazing what you can get with. As a 'visiting' researcher on a Computer Science Department I know that normally you know how cheated.

      If you can put on a program the frequency of each tudent on class, the results of his/hers homework, the times he ask the professors with doubts about the classes, etc. it could be a good xheeat detector. Nowadays in our department most of the examinations of pratical issues, like programming languages classes, are done with a computer.

      The student will write his/hers version of the program at a computer and be live evaluated, it isn't easy to cheat without been detected, and the teacher has a fast evaluation of the pratical skills of each student.

      --

      ------I can please only one person per day. Today is not your day. Tomorrow isn't looking good either.------
  179. Slashdot should learn something... by GI+Jones · · Score: 3, Funny
    Maybe someone should write similar software for slashcode... it might prevent them from posting similar stories:

    http://slashdot.org/article.pl?sid=01/05/09/198259 &mode=thread

    --
    "Perhaps most amazingly, votaries of 'diversity' insist on absolute conformity." -- Tony Snow
    1. Re:Slashdot should learn something... by damiam · · Score: 1

      That actually might work... could Slashcode at least warn the editor if a proposed story had the same link as a previous story? Or if the article linked had very similar text as an article previously linked to? (granted, this might be a little CPU-intensive)

      --
      It's hard to be religious when certain people are never incinerated by bolts of lightning.
    2. Re:Slashdot should learn something... by Anonymous Coward · · Score: 0

      that would only be useful if slashdot editors cared.

      look at all the comments they can get by recycling!

      look at all the comments they can get by giving us an angle on why something is BAAAAAD!

      slashdot is turning into the tech enquirer.

  180. Head TA Elaborates by Arkhan · · Score: 5, Informative

    As a former Head TA for one of the classes in question (CS 1502 - Intro to Computing), I'll try to elaborate and answer common questions.

    No, I have no current affiliation with Georgia Tech.

    Yes, the cheatfinder really, really, honest-to-God exists. We used it every quarter that I was associated with the class and caught _lots_ of people. You'd be stunned how many people thought we were just making it up to scare them into not cheating.

    Yes, it actually works. It examines mostly source code, although some versions of it were twiddled to look at "in-between" assembler to help catch those who just change variable names and such. It scans for patterns in the logical constructs of code blocks, even if they've been rearranged or altered in other "cosmetic" ways. It also looks for exact matches in text (like the "commas in same places" mentioned by Kurt in the article), but this is misleading -- it does a whole lot more than that.

    Yes, depending on how you run it, it can generate a boatload of false positives, but it contains several tweakable threshold levels that let you control how "suspicious" a pair-match has to be before it gets flagged, and these thresholds are made looser for simple programs where there's really only one way to do it.

    No, no action is *ever* taken based on the output of the cheatfinder directly. It merely alerts the TA who's responsible for cheatfinder that quarter and he/she then manually reads the source code to see if it looks like a case of cheating. If so, it gets sent on to the professor for a final verification (and possible discussion with the student if it is a borderline case), before being forwarded to Kurt for examination and possible disciplinary action.

    Finally, yes, it's an old and very "evolved" codebase. You wouldn't want to be the one to maintain it, but on the other hand, it has been tweaked to the point where you'd be really surprised at the sort of clever cheating it can detect. (i.e. it works a lot better than diffing the source code ;)

    Anyway, figured I should throw in my $0.02 on this one, since I used to run that class.

    If anybody has any specific questions, please post to this comment and I'll reply. (Questions from current Tech students asking how to "get around" the cheatfinder will be happily ignored, of course. ;)

    1. Re:Head TA Elaborates by dagoalieman · · Score: 1

      A stupid question, but one that I've not really seen an answer to yet:

      Many CS programming assignments are ones that you have multiple ways of doing, but some parts are going to be the same (IE if two people decide to use bubble sort for some unknown reason on a list, chances are they'll whoop out the old data structures book and rip from there- every coder does this to a degree. In general we call this concept "libraries." :))

      How many people get flagged on such incidents where a small portion of code is EXTREMELY similar, but it's obvious the overall product is different? I know that's the intention of the threshold, but in English essays they look for paragraphs, sentences, and the overall thing.

      Now, while many of such people may indeed be cheating, how many times do you find that it's a case of tutoring with no code exposure? I told a friend how to write some simple algorithm (string matching, IIRC) in his program, and the code ended up basically the same as mine with the exception of him using a slightly different conditional statement and variable names. The teacher asked us about this, we explained, and he said "Oh, OK." (The teacher also asked us individually to write something small which would prove we understood it, with the theory of he who couldn't do it was the true bastard, and the other a benevolent misstepping- another good way to catch cheaters, have them do a small, concept centric assignment as a test, and see if they're clueless)

      I imagine this code tutoring happens often, but I also imagine it's not very often that it gets flagged. Just curious.

      .

      --
      We don't need no Net Explorer We don't need no Thought control
    2. Re:Head TA Elaborates by Serpent+Mage · · Score: 1

      To answer your question with as little verbiage as possible, small portions of code which are similar (and not common as in your example) are given a very small percentage point. The more often that it finds an identical algorithm the polynomial growth of the probability. Anything that is "common" codebase such as code given in class, text books, and other common things like sorting algorithms are allowed to be identical and thus does not alter the probability in any way.

      I know this to be fact because I was a former STA at Georgia Tech and actually made a tweak or two to the cheat finder codebase.

    3. Re:Head TA Elaborates by "Zow" · · Score: 2
      If anybody has any specific questions, please post to this comment and I'll reply.

      As mentioned by others in this thread, checking every student's submission against every other is a n^2 problem - how did you deal with the computational requirement?

      -"Zow"

    4. Re:Head TA Elaborates by Arkhan · · Score: 1

      As mentioned by others in this thread, checking every student's submission against every other is a n^2 problem - how did you deal with the computational requirement?

      It is an O(n^2) problem, and we didn't particularly have a clever way around that. In the real world, though, O(n^2) algorithms are perfectly workable so long as n remains reasonably small, and if the coefficient (which is usually discarded in theoretical discussions of Work) is small enough, they can be reasonable even for fairly large n. (For example, if it's really an order 0.1(n^2) problem, that's not *so* bad.)

      Mostly, though, we were fortunate enough to be able to run it on some really fast Sparc servers (the main time-sharing computer systems for the university, IIRC), so we had an enormous amount of horsepower at our disposal, and of course it was run "nice" at off-peak times.

      Perl cleverness kept the actual coding to a relative minimum (since much of it was regexp-oriented), but that didn't reduce the computational complexity or time, of course.

    5. Re:Head TA Elaborates by zorba1 · · Score: 1

      The C*O(N^2) coefficient is small - say I have 3 submissions - the real cost isn't 9 checks, but 6: If I check 1 against 2, I don't need to check 2 against 1.
      --G

  181. This isn't exactly new... by Janthkin · · Score: 2

    Michigan State, at least, has been using such a program in their computer science program for more than 5 years.

    It was always interesting, when multiple students used an example of code out of the book for part of their projects, and then were accused of cheating as a result....

  182. A little insight from the inside by rkischuk · · Score: 5, Insightful

    As a former TA for one of these classes who nearly ended up working on the cheat finder software for a quarter, let me add some additional fuel for the fire.

    1. These are not just "programmers" in the traditional Computer Science major sense. The first class is required for almost all students at Georgia Tech. It started off just for Computer Science and Computer Engineering, then expanded to all engineering majors (civil, mechanical, etc). Now, even management majors (Georgia Tech's version of Communications, Basketweaving, or whatever the weak major that many athletes did at your school) have to take the class. The language used to be a locally developed pseudocode language (affectionately known as Russcal). Right or wrong, many of these students consider the class to be an unnecessary hurdle on their way to a degree, and to a technologically illiterate management major, programming does not come easy, nor are they inclined to learn their ethical obligations as a "programmer" - they just want out of the class.

    2. Contrary to many snide remarks, the algorithm is, in fact, quite sophisticated. It is not fooled by extra white space, variable name changes, or simple rearranging. As a TA, I saw even simple algorithms done a slightly different way by every single student. Chances are that a student who will resort to cheating doesn't know enough to rearrange the code beyond the recognition of the cheat-finder and still have it be correct, and a student who does know enough would probably spend as much time dressing it up as it would take them to write the thing in the first place.

    3. Once two submissions are flagged as possible copies, they are first reviewed by a student TA. If the TA believes that they are in fact copied, it is escalated to the class manager (GT staff), and then to the dean if need be.

    It's not a perfect system, but the cheat-finder does a good job of crunching the role of a human down to a minimum, and leaves room for people to make a subjective judgement. It's pretty good, so cut the sarcasm back a bit - it's unwarranted.

    --
    Seen any BadMarketing lately?
    1. Re:A little insight from the inside by markmoss · · Score: 2

      It would seem like this program, or any conceivable cheat detector other than a bug in the student's laptop, would be ineffective on "hello world" programs, because after you eliminate white space, variables, and simple re-arranging, there's only one reasonable algorithm.

      So my question is, how in heck can you teach "basketweaving" majors enough programming to where they can write programs that the cheat detector will work on? IIRC, it took half the semester for my CS101 to get a class full of nerds up to the point where we could write programs complex enough to have 20 different variations on the algorithm. (Of course, things might move a little faster now that they don't have to type FORTRAN into punch cards and wait a day for it to be run. But still, business, communications, and PE majors???)

  183. DORA by grendel's+mom · · Score: 1

    The University of Colorado, Boulder, had/has a similar grading/"cheating" program that has been in use for several years. Ask any CS student about DORA and their Intro. to Programming or Data Structure's class. The usual reply is, "...that bitch." :-)

  184. University of Toronto has been doing it for years by ajmfreefall · · Score: 1

    We're way ahead of you, Georgia Tech; the University of Toronto's Computer Science department (www.cs.toronto.edu) has been using software to detect plagarism in code for quite a while now.

    Firstly, it doesn't just look for exact matches of code. That would be stupid. As far as I know, it uses certain algorithms that look for similarities in, for example, the structure of various classes used on a program. Presumably, they would also look for blatant similaraties in execution patterns.

    As for CmdrTaco's ignorant comment on his deluded preception of the "real world" - obviously he doesn't understand the purpose of a university education. As a student, I'm glad that universities take such measures to prevent people from copying code. Especially when assignments don't involve implementing code for the sake of learning a language, but rather involve creating algorithms from scratch, for the purpose of understanding more fundamental concepts in computer science.

  185. school sucks by Anonymous Coward · · Score: 0

    and programing is for fags anyway.

    Cheating and getting away with it is all the learning I need. Hell, that is the real world.

  186. Comp Sci Cheating testing at CU by randLews_Therin · · Score: 1

    A simalar system exsists at the Universtiy of Colorado in Boulder. The system does not do anything to those that just consult with each other it however does catch anyone that tries to just turn in someone elses work. It checks for programs that are 96% like other programs that have been submitted to the system. I think it is acctually a good method of catching blatant cheaters. I mean come on if your that bad at cheating you can't tell you know anything about the subject and would survive in the real world.

    1. Re:Comp Sci Cheating testing at CU by psykocrime · · Score: 1

      It checks for programs that are 96% like other programs that have been submitted to the system. I think it is acctually a good method of catching blatant cheaters.

      No, it's not. It's a terrible way to catch cheaters, IMO. And the reason is... even if two students' work is 100% the same, that's still not PROOF that one copied from the other. It's entirely possible that two students, working in isolation from each other, could produce identical solutions to an identical problem.

      Especially in a programming 101 course, where the problems are likely to be pretty trivial. It's suspicious, of course, if two students turn in highly similiar work.. but that alone does NOT constitute proof of cheating.

      --
      // TODO: Insert Cool Sig
  187. algorithm nitpicking by brer_rabbit · · Score: 1

    While the big-O notation is O(n^2), a comparison of this type is realy (n^2)/2, so you've *only* got 61250 comparisons for your 350 students...

    1. Re:algorithm nitpicking by morcheeba · · Score: 1

      Ok, you started the nitpicking, I'll continue it!!

      You forgot that you don't need to checks students against their own code. The formula is (n*(n-1))/2.... thus for 350 students, checks=61075

      Of course, multiple files (a varying amount) for each student submission = more possibilities, but you can cat all files together, or compare the assembly/rtl code generated by the compiler.

      Example: 5 kids labeled a,b,c,d,e:

      a vs. bcde
      b vs. cde
      c vs. de
      d vs. e

      5 kids, 10 comparisons total.

  188. Sometimes cheaters announce themselves by drjoe1e6 · · Score: 1
    When I TA'ed a couple intro CS courses, I caught a few cheaters who made it so blatant, it was hard to ignore.

    In the Pascal course, the students had to generate a maze and solve it, finding the path recursively. They were supposed to use a random-number generator from the textbook, with three 5-digit constants. One student made a typo in one of the constants. Then I saw it again. A quick grep revealed a third program with the same goof... sorry, wrong number.

    The other case occurred in a course where all examples and assignments were in ANSI C. Imagine my amazement when a homework file came in using K&R syntax. Just how red does a flag have to be? :-)


    -Joe

    --
    Lose = not win ...... Loose = not tight
  189. TOO MUCH Cheating by Anonymous Coward · · Score: 5, Insightful

    Pardon me for posting anonymously, but I've got to let a little venom loose.

    I was a TA at an prestigious, well known computer science program. The professors there always unfurled elaborate anti-cheating policies. Cheating of any kind whatsoever would be brought before the Dean, where you are going to be subject to a wide range of punishments, including possible expulsion from the University. They purported to be using a script very similar to the one being described here. Yet many of my classmates cut and pasted their way through all the entry level classes while i labored away at every assignment. How did they get away with it?

    That one issue -- that people who did no original work whatsoever got scores at least as high as mine -- has been dismissed as "a fact of life" by friends and family, and I tend to not think about it too much. Why? Because I'm the one getting the education, not them, and in 5 years when college GPAs don't matter a fraction as much as intelligence, experience, and work ability, I'll get sweet (or is it l33t?) revenge.

    But in the meantime, I thought, let's become a TA and be on the other side of the fence for a change. Let me do my part to bring all these cheaters to justice.

    And you know what? The reason they all got away with it was not because the previous TAs slacked off, but because the professors, when push came to shove, just didn't care. They lied about using the script.

    When I brought identical assignments to their attention, they didn't pounce, but gave me options such as taking off some points or letting it go.

    As it turns out, we have a very forgiving Dean, and any cheaters brought to his attention will get no more than a slap on the wrist. For that, professors get to do a lot of paperwork, cast themselves as the bad cop in making the case, and get a poor repuatation with students who are used to the status-quo of a cheat friendly environment. They don't want to do any of that , so they put on the pretense of being tough on cheating and hope it all goes away.

    Slashdot is mostly a young crowd, and young are naive like I was, so let me break some bubbles: maybe at GA Tech profs let ethics take precedence over apathy, but not everywhere.

    And to all your cheaters out there: yes, you're off the hook for now, but wait until we're co-workers.

    Can someone please mod this out of the anonymous doldrums? Thanks.

    1. Re:TOO MUCH Cheating by Anonymous Coward · · Score: 0

      P.S. Of course, I was also naive to think that intelligence and work ability count for getting ahead in the real world.

      Some things never change.

    2. Re:TOO MUCH Cheating by Anonymous Coward · · Score: 0

      As it turns out, we have a very forgiving Dean, and any cheaters brought to his attention will get no more than a slap on the wrist. For that, professors get to do a lot of paperwork, cast themselves as the bad cop in making the case, and get a poor repuatation with students who are used to the status-quo of a cheat friendly environment. They don't want to do any of that , so they put on the pretense of being tough on cheating and hope it all goes away.

      Sorry for posting as AC, but I, too, was on the faculty side of the fence during cheating episodes. I was an assistant professor, found several clear cases of plagiarism, including the original sources, and the kid was given a slap on the wrist. Part of his defense was dragging in another professor who said that everyone does it. Meanwhile, I'd invested a shitload of time of time that I could have been using to do research making my case, been "talked to" by the tenured professors about being too hard, and threatened by the student.

      Quitting that job (and explaining why in my resignation letter) was the most satisfying thing I ever did.

    3. Re:TOO MUCH Cheating by soft_guy · · Score: 1

      I was a TA in a course on Statistics and Research Methodology. Once, two students turned in completely word-for-word identical papers which were short research write-ups done as homework for a grade. The two students claimed that they didn't know they couldn't work together. Of course, they are allowed to work together, but they needed to each have written a paper. The professor and I decided that since they claimed that they had worked on the paper together, they should each get half the points for doing the paper. The paper had gotten a B+ the first time I graded it, so we cut the points in half and each student got a high F. They both were able to pass the course, but the grade on that homework did affect their grade totals for that semester.

      --
      Avoid Missing Ball for High Score
    4. Re:TOO MUCH Cheating by bdjohns1 · · Score: 1

      I've got to agree with this guy:

      When I brought identical assignments to their attention, they didn't pounce, but gave me options such as taking off some points or letting it go.


      I was a grader for a similar CS course at my alma mater (U of Illinois), and ran into a similar problem. Basically, I had about 30 kids (in a class of 350) who handed in the same code, aside from minor cosmetic changes (comments, variable names). No sophisticated checker used - I just noticed a few people who formatted their output the exact same wrong way. Grepped the handin folders, and found 30 people with the same answer. Some of them were dumb enough to hand in from adjacent workstations at the same time. Unfortunately, the professors in charge of the course wimped out - they just gave the kids a 0 on the assignment (worth maybe 5% of the grade), after all their rhetoric about punishing cheaters.

      My respect for UIUC's CS department went down the drain after that.

  190. Maybe Ga Tech can extend this technology... by mrroot · · Score: 2

    ...to check the resumes of candidates for their head football coaching position.

    Considering the last guy who coached there was George O'Leary...

    --
    I Heart Sorting Networks
  191. Intro to computing is required by any engineering by Anonymous Coward · · Score: 0

    Almost 3/4 of all majors are required to take this and many people don't see programming as a skill they need to learn. The program is a little more sophisticated than detecting 'exact' matches. It supposedly is able to detect similar code with different comments or variable names, etc.

  192. Only one step.... by Anonymous Coward · · Score: 1, Informative

    Having become familiar with the process by which the cheat-detect system works at Georgia Tech(and not by ending up on its wrong side, either), I have become aware that it is much more complex than a simple "diff filea.java fileb.java" operation. It is much less likely to be either spoofed or given a false positive than many of the people posting to this thread have suggested.

    It should also be noted, for those people whining about the innocent suffering at the hands of the automated, zero-tolerance faculty, that having your project and someone else's tagged as possible cheats simply means that both potential offenders are referred to the dean of the College of Computing, or to the instructor of the course. It isn't as if the algorithm is the first, last, and only say in whether or not you are tagged/punished for cheating. That would be stupid.

    One thing I've learned as I've become more and more versed in technology is that it should never affect major events, such as one's potential expulsion from school, without a very close degree of human oversight on a per-case basis.

  193. Dumb teachers by Anonymous Coward · · Score: 0

    I remember in my Unix class in college, we had to write something in AWK to read in a text file, average some grades and print out a report on the screen. At the beginning of the AWK lesson, he said if you have any problems with AWK, then use the "Oreilly Sed and AWK" book. Well that exact program was used in the book. Everyone figured it out and typed it in and changed variable names. Everyone got an A. If he said anything we all agreed that we'd mention to him that he was the one that told us to use that book as a reference.

  194. Prior art by herbyderby · · Score: 1
    They've had this at Berkeley for a while too, and it has been written about extensively. You can even sign up to use the service online if you are a programming teacher or TA at another school.

    I used it as a TA for a lower division class at Cal and it really was quite impressive--color coding similar sections, etc. A human review is necessary or course, but there was never really any doubt that the top few catches were cheating.

    See MOSS and the 1998 Wired article about it.

    -- Chris

  195. Another Cheating Detector by ammulder · · Score: 2, Informative

    (free; for instructors only)

    Measure Of Software Similarity

  196. Good for other things too by dbrower · · Score: 2
    Since 1986, I have used the "sim" program from comp.sources.unix to detect redundant code in programs. See the uunet archive

    While originally written as a "cheat" detector, it also does a good job of identifying similar structures in systems that are good candidates for refactoring. It helps find things that should be functions rather than cut-and-paste-with-trivial-or-no-change.

    -dB

    --
    "It if was easy to do, we'd find someone cheaper than you to do it."
  197. In the real world by autopr0n · · Score: 2

    In the real world you also won't get fired for being a complete fucking idiot. What's your point?

    Well, I suppose that depends on where you work. And like whether or not they suck. The fact of the matter is, there are a lot of people out there who do cut a lot of corners in their code, and still manage to make money. Those people suck to work with, of course, because their code is always shit and they don't really know what they're doing.

    --
    autopr0n is like, down and stuff.
  198. Catch cheaters at demonstration time by darrellpfeifer · · Score: 1

    I teach comp sci at a community college. I used to get all bent out of shape about plagiarism but it seemed to be a losing battle. Now all the students in my classes have to demonstrate their lab solutions to me. I ask them to explain the flow of program, point of the tricky bits, etc. I ask them questions like "if you were to change this subroutine/method to add this extra parameter, show me the places in your code where you'd have to incorporate the changes". I am concerned that the students have learned and understood the material, not how they arrive at the solution. The students are even allowed to demonstrate other people's code if they wish; we discover very quickly how much they know. The demonstration tends to result in much better feedback and interaction between the student and the instructor. I'm fortunate enough to be in an environment where we can give this sort of personal attention.

  199. The old adage still holds true... by Corrado · · Score: 1

    ...good programmers create; great programmers steal.

    --
    KangarooBox - We make IT simple!
  200. Who says it's cheating? by AnotherBlackHat · · Score: 2

    No one accuses the teacher of cheating when they copy the assignment straight from the textbook. Yet if the student does exactly the same thing with the answer, then suddenly it's bad.

    If I assigned the classic "Hello world" program, I wouldn't expect or want something like;
    main(){char *p=&13["\0\n!dlrow olleH"];while(*p) {putchar(*p--);}}
    I'd expect the student to copy the program exactly. If I was worried about students not learning the material, I'd just assign a problem that hasn't been solved - preferably something actually useful, like "change this open source program to accept '--word' style options as well as the current set, or "change this to work with IPv6"

    The question shouldn't be "did you copy?", the question should be "did you learn?".

  201. Wrote similar code & why by cfulmer · · Score: 3, Insightful

    So, when I was the head grader for the first hard cs couse at CMU, I wrote a similar program -- it does't need to be very complicated because cheaters are, by definition, lazy. Change some variable names, comments, whitespace, move some code around and maybe break a function into two smaller ones, and that's it. My code just counted the numbers of braces, 'if' statements, parentheses, equal signs, etcc, producing a set of numbers for each program. Then, sort them and pick out the ones that are really close to each other. Those get picked out for hand checks.

    As for why: everybody was supposed to do their own work -- this was not one of the courses where people were supposed to collaborate on their programming assignments (those courses came later.) Some students went overboard on the restrictions -- there was never anything wrongg with discussing the assignments (that's part of the learning process as well), but everybody needed to do their own work to prove that they understood the material.

    Now that I'm out in the "real world," this makes sense -- I can tell the people who cheated and slacked their way through school, because they don't last long without understanding what they're doing.

    Now that I'm out in the work

  202. The penultimate anti-cheating system (theory) by mark-t · · Score: 1

    Consider that one of the biggest problems with cheating is that it is often difficult for the professor or marker to determine which work was the original and which was the duplicate. The system below could theoretically completely solve that particular problem.

    Using a system similar to carbon-dating, you can, in theory, determine the time at which a particular thing was written. Of course, this would require that the students be given pens with radioactive ink immediately prior to the exam, but in the cases where identical work is found in submissions from people that sit closer together than about 2 or 3 feet, this system could verify who copied off of whom. "Don't mind these glow-in-the-dark pens, class... we use them to detect cheaters."

    Of course, nobody would ever actually do this... but it makes for an interesting thought experiment

  203. Consulting a coworker? by Courageous · · Score: 4, Insightful


    You may not be fired for consulting a coworker, but if you take a coworker's worker and then claim you did it yourself, you'd certainly better cover your bases.

    C//

    1. Re:Consulting a coworker? by beowulfshaeffer · · Score: 1

      you'd certainly better cover your bases.
      Shoot them?

      --
      Shave the Whales!
    2. Re:Consulting a coworker? by Courageous · · Score: 2


      No. Iocane powder.

      It's odorless, tasteless, and completely undetectable.

      C//

    3. Re:Consulting a coworker? by markmoss · · Score: 2

      More to the point, if you're hired to write a _new_ program to solve a _new_ problem, you aren't going to find an existing program you can copy, and you won't know how to write a new one. Employers are very happy if you can get the job done fast and cheap by finding a solution in existing code, but they hire _programmers_ because they expect to need programs that haven't been written before.

    4. Re:Consulting a coworker? by Courageous · · Score: 2


      At my first job I was hired to program, but I knew so much more about computers than those in the environment, I ended up doing far more systems selection than programming. You know: buy this, download that, integrate the other damn thing.

      But of course you're generally correct, and what I just described is the role of most good programmers everywhere. We don't so much as "write programs" as we do "solve problems," as it were. My job these days always seems to be writing a few clever algorithms which transform a complex task into a coherent intermediate representation and writing glue that knows how to make this representation work with any variety of other things, commercial, freeware, internally adapted, and otherwise.

      Only in my hobby time do I actually get to write innovative new programs.

      C//

      C//

  204. Worst case scenario by tuxlove · · Score: 1

    When I was in college, one semester the professor teaching the course on compilers failed every single student in the class, except for a couple of them. The reason? They all "cheated". Everyone had been broken up into small teams to work together for the entire course, and in the end each student was supposed to turn in his/her brand new compiler. But because the members of each team had worked very closely together, the team members' work was quite similar (though not exactly the same).

    I guess the prof got upset and failed everyone save for a small few who I think hadn't worked with any team. The students protested, having worked very hard and produced some good work, but the school sided with the professor. So an entire class went down for the count.

    Now we're making software that can fail you automatically! Great idea!

  205. Re: diff don't do it, but dis do. by Black+Parrot · · Score: 2


    > Finaly consider this: Checking for cheaters in a class isn't just doing a diff of two files. For every student in the class, you have to check his code against everyone else's. This is a O(n^2) problem. My class had around 350 people in it
    so that's 122500 checks to do. If it is anything more complex than a diff (multiple files, compiler front-end, fancy perl parcing) this can take a mad amount of computing.


    Not so hard, because you just generate a parse tree for everyone, which takes a bit less time than compiling the programs. Then you use Lisp to try pattern matching on the parse trees, and terminate the comparison as soon as you reach a point that won't unify. (Probably no point in checking the rest of the program on that pair.)

    Though an O(n^2) problem, the actual number of pairs to check is only about half of 350^2, call it 60K tests. No sweat for a fully automated system on a 1GHz PC, unless the programs are really big.

    --
    Sheesh, evil *and* a jerk. -- Jade
  206. Basic skills vs. industrial collaboration by Anonymous+Brave+Guy · · Score: 2, Redundant
    Cuz remember programmers: in the real world you are fired if you consult with a co-worker ;)

    No, in the real world, they try not to employee you in the first place if you don't have the basic skills to do your job.

    Take a look at any Usenet group for a particular language, alt.comp.lang.learn.c-c++ for example. There are plenty of volunteers in these groups who are happy to help people out with problems. Some, like the group above, are even dedicated to helping newbies, often with their homework assignments. However, most of the professionals there will refuse to post any help at all until it's clear that a respectable effort has been made.

    Every now and then, some smart-ass objects and tells them they're something unpleasant, and the reply is always the same. It goes something like this: "I do this for a living. If I help you cheat, then one day you might get a qualification you don't deserve. And then you might wind up working for me."

    There's a world of difference between helping someone out who genuinely doesn't know or understand something -- a common and sensible practice in industry -- and doing everything for someone because they're too lazy to do it themselves.

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  207. We got it too... by drumerboy · · Score: 2, Informative

    A program such as this has been in use since prior to 1998 here at Virginia Tech

  208. this is all bass ackwards! by stupidNewbie · · Score: 1, Insightful
    I understand the need to stop cheaters and to prevent some dumb kid who doesn't know anything from graduating and getting a cushy codemonkey job..

    but in these places of higher learning they teach trivial stuff like "write a for loop that counts 1 to 100"...

    no good debugging skillz.... no design skillz...

    no clue how to work on a large software project with a team....

    ... and since when do employers make a bunch of codemonkeys to the same thing?

    in any real software engineering workplace you better learn real fast how to reuse what's out there so you can get the job done FAST

    being slow and stupid gets you fired... not making the best of what's out there...

    whew... I sure did get emotional there....

  209. The System is Wrong by jdclucidly · · Score: 1
    It is not a question of whether or these individuals have become adept programmers, but whether the university is teaching. That's right, not certifying, but teaching. The university's upmost responsibility is to provide an environment where the largest amount of usefull information is available to those who want to learn can absorb it. Somewhere along the line our twisted society started thinking, "If they've been to college, they must be good." This is so many shades of wrong.

    If a person cheats their way through college, ideally, the only people they've hurt is themselves. If the people who work with these supposed inept programmers were to actually report it no one would be grumbling. I have no sympathy for those for people who complain and do nothing about it.

    The only way the system will change is when people start truely believing in the part that education plays in becoming a good human being. Bravo to CmdToco for pointing out the stupidity of the system.

  210. my approach by josu · · Score: 1

    I was a teaching assistant for a CS1 class. When I found two students handed in virtually identical pieces of code, I'd just grade one then write on the other one "See [other student]'s paper". If they want to cheat, let them. It'll only hurt them in more advanced courses.

    What I didn't like was when they fabricated results (no, "^" is not the exponentiation operator in C...). For this I gave them zeros.

  211. I know what program they used! by Adrian+Voinea · · Score: 0, Troll

    [..] that is, a program which compares students' coding assignments to each other and detects exact matches. [...]

    Let me guess... Is this what they used ? ;))

  212. Big Deal by Not2Bryt64 · · Score: 1

    This isn't new. Several of my professors at Michigan Tech ran Perl scripts which did this exact thing...in 1995! I never actually saw them, but they did indeed catch anyone stupid enough to cut and paste code. I always made sure to obfuscate all my stolen..err.."borrowed" code.

    --
    -These aren't my pants.
  213. Experience of an former TA by BWS · · Score: 5, Funny
    I was TA/Maker for 2 classes at my Univ and my experience with cheating suggests that programs like these are necessary...... here are some of the better exampls.

    1. for an intro to java course... I had a student that photocopied another's assignment and then used white-out to remove the other's name and write his own down
    2. for an intro to java course... they had to implement a doubbly linked list structure... I had 4 students copy off another student... they changed all the variables by adding an extra to the end ... so like next became nextS... (they used Z, S, and B FYI respectively)
    3. for an data strcutres course... I had the two students who's code was the same expect that they replaced the numbers in the varibles by the written version... so like counter1 became counterOne and counter2 became counterTwo
    4. my 2nd funniest example (well, the first one is really good) is an student who tried to pass in another's assignmetn and changed the comments type... he replaced all the /* */ comments by // comments..
    5. my best example was once when I was TAing a course and during my tutorial one of the students acutally offered me $40 to do an assignment for them... (they didn't know I was the TA)...

    in general... they are the extreme... there is a lot of general cheating going on and I think something like this is a good idea... to catch "the smarter cheaters"

    --
    -- Note: These Comments are Generated by ME! Not You! ME!
    1. Re:Experience of an former TA by BWS · · Score: 2

      sorry... typo
      the last one should be -->

      5. my best example was once when I was TAing a course and during my tutorial one of the students acutally offered me $40 to do an assignment for them... (they didn't know I was the marker)... some courses at our univ has different TA/Makers...

      --
      -- Note: These Comments are Generated by ME! Not You! ME!
    2. Re:Experience of an former TA by Anonymous Coward · · Score: 0

      If I was a teacher and I noticed cheaters using a very creative way of cheating, such as tapping/scratching morse code on their desks during a test, I'd probably let them get away with it. What the hell.

    3. Re:Experience of an former TA by spatula · · Score: 1

      I've got an even better one. I was the TA for an embedded systems course and someone turned in a program that I had written, except with the comments changed. Normally I was careful about where I kept my solutions, but I guess I left that one in a public directory. It's one thing to cheat off of another student and hope the instructor doesn't notice. But cheating off the instructor! I wonder how they made it all the way to a third year course with no common sense.

    4. Re:Experience of an former TA by Anonymous Coward · · Score: 0

      NARC !!!

    5. Re:Experience of an former TA by Anonymous Coward · · Score: 0

      For a teacher your communication skills could use a lot of work.

      I hope you spell- and grammar-check whatever written materials that you give to your students.

  214. Prior art by Anonymous Coward · · Score: 0

    Diff already does this

  215. You must be one of them by Anonymous Coward · · Score: 0

    If this is your solution to the problem of how to create a "Cheat Finder" then you are probably one of the idiots that was caught cheating.

    I'm no genius but I know that text comparisons are extremely inefficient in a DB and will only catch the most blatant cheaters anyway. A comparison of the parse trees generated that ignores identifiers would be the barest minimum to catch cheaters in my book.

    You're probably a chickenshit "web developer" aren't you?

  216. Heh this is part of my final year project by Sits · · Score: 2

    I'm in my final year at university and my project is a coursework submission program which I will hopefully have plagurism detection built in...

    I wonder if anyone will notice if I just borrow some the code from the Georgia one...

  217. *puke* by Ackilles · · Score: 1

    I would hate to see a new batch of B.Sc's comming out who graduated from copying off one another (cure for cancer would take another 100 years). I guess in computer science individual creativity isn't too important... By the way the only people I hear making the argument that a university education is analogous to the open source movement are hacks that can't code anything for themselves.

  218. NC State by TJBalistic · · Score: 1

    Why is this news? NC State University has been using a similar program for at least 5 years now.

  219. TURNITIN.COM - Villanova now using this service... by AlphaGeekDude · · Score: 2, Informative

    I think this is a GOOD thing. Plagarism at the undergrad level runs rampant. If you're not smart enough to do the work - perhaps you should consider an educational path less taxing on the mind.

    Subject: Academic Integrity
    Importance: High

    Welcome back! I hope that you had a wonderful holiday season. I am writing this note to you to give you a "heads up" regarding a new process for which Villanova has contracted to help us enforce our academic integrity policy.

    At Villanova, class papers can now go to "Turnitin.com," which is a search engine that compares papers with others from Villanova and with thousands of websites to determine whether the material is the same. Once the search is complete, faculty receive a detailed report of what materials have been copied and from where.

    I am telling you this to help you avoid academic integrity violations. Please be VERY careful and provide complete citations for your work; if your professor has indicated that you are to do your work individually, then do your OWN work; and so on. If you have ANY questions AT ALL, please seek clarification from your professor PRIOR to submitting your work to him/her!

    I sincerely wish you a very successful semester!

    Best regards,
    Dr. Victoria McWilliams
    Associate Dean C&F

  220. Yeah! by Greyfox · · Score: 2
    And if you don't turn in that verbatim solution, you'll get dinged for poor style!

    Welcome to the Life! Boy it sucks!

    --

    I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

  221. CompSci class not the real world by praedor · · Score: 2

    It really isn't a valid criticism of preventing cheating in a compsci class to refer to the real work world where you DO consult and work together. The point of the university class is to help teach you a computer language - to make sure an individual gets it, understands it, and can use it. Once you get that, THEN you can enter the work world and collaborate instead of simply leach off the expertise of another.


    If you take a chemistry class, it is generally expected that you the individual student will understand the reactions and the processes/tools rather than simply copy or leach off another student who DOES know what they're doing. You gain nothing and provide nothing if you can't do the basics on your own FIRST.

    --
    In Bushworld, they struggle to keep church and state separate in Iraq as they increasingly merge the two in America.
  222. But Who Cheated? by webprogrammer · · Score: 1

    So they run this program, and find that 10 people all have the same code. Why coppied whom? It's just one person's word against another.

    --
    Tim ODonnell (trying to be the most
  223. The problem isn't the cheatfinder. by eison · · Score: 1

    The problem isn't the cheatfinder.
    Using a program to narrow down the field of what a real human needs to scrutinize is fine. The problem is when real humans refuse to use reason, based on the apparent belief that a computer said it so it must be true. In my experience, this has been the situation at Georgia Tech, and it's a sad situation indeed.

    --
    is competition good, or is duplication of effort bad?
  224. That's brave of GT by f00zbll · · Score: 1
    The only thing this tells me about Georgia Tech is a lot of their students are lazy and don't deserve to be there. People who are stupid and lazy enough to cheat on simple labs/assignments in intro classes don't deserve to be there. Sure lots of universities use programs to scan for cheating, no news there. I can think of plenty of people that are far more deserving and hard working that should be in college but can't afford it. I seriously doubt this will change much. Rich kids go to school and do the absolute minimum to get their degrees, because they are raised with a certain set of values. Poor kids fight too and nail to earn a living. Sure these are generalizations, but there is some truth to it.

    mod me down if you like, but I've seen it happen in college. No rich kid I ever met worked 40hr/wk and took extra classes

  225. This is about as new as bell bottom pants by oldhacker · · Score: 1

    A 'cheat catcher' was in use for intro programming courses at the University of Illinois when I went to grad school there in the early 70s. I suspect 90% of major universities now use some form of automatic similarity scanner.

  226. This was OLD in '93 - yap/plague go back to '86 by OnanTheBarbarian · · Score: 2

    Not only is this a strangely old topic on the face of it, it's even older than they claim. Michael Wise at Sydney University (now a research fellow at Cambridge) had a system called "yap" (Yet Another Plague) which did fairly advanced plagiarism detection on electronically submitted assignments that was already old hat when I was a 1st year undergraduate, back in 1990.

    The first paper on yap (from 1992) cites related work from 1981 (in SIGCSE) and a series of articles on the system "plague" as far back as 1986.

    All of this material (as well as the successor system, YAP3) is easily available on the Web. It would be nice to see people do 10 minutes of research before spewing out Yahoo news stories and Slashdot posts (note: "research" is a slightly different skill to "cutting and pasting press releases").

  227. In the teaching trenches... by Embedded+Geek · · Score: 4, Interesting
    I've taught numerous courses and once figured it wouldn't be too tough to build a detector like this. Inevitably, someone who cheated would follow a very basic procedure:
    • Copy the original code.
    • Change every variable name (even if to a less sensible name - HalfCircleWidth instead of Radius).
    • Rephrase most comments, but in the most transparent manner (e.g. "incerment the counter": becomes "the counter is incremented").
    • Grab one or two lines of code near the top and rewrite them in the most awkward manner possible. Presumably, this is to prove to themselves that they're more clever than the teacher and that they could've actually done the assignment if they'd bothered.
    Inevitably, it was the trivial stuff (indentation, comment structure) that set off my alarms. Then, I'd give them a moment of truth and sit them down to try to explain how "their" code works. If they didn't, I'd kick their tails out. If I was teaching a seminar at someone's workplace, I might or might not inform their management. Since all these penalties were spelled out in my syllabus, I never lost any sleep (in fact, putting them in my syllabus tends to ensure no one tries it).

    As to the the differenece between "consulting" with another and "cheating", I've found that the "explain your own code" is a pretty good yardstick. If I spend 2-3 hours preparing to teach a lecture, I have no sympathy with someone who doesn't spend enough time to do the assigned work but instead cheats.

    --

    "Prepare for the worst - hope for the best."

    1. Re:In the teaching trenches... by Anonymous Coward · · Score: 0

      It's easy to check if they've just changed variable names or whitespace -- compile the thing. For anything more than a trivial program the binaries will be different, even with the compiler doing its optimizations.

      The thing that's more difficult to check is them paying someone else to write code. I did a lot of this in school (i.e., got paid for writing programs for other students) and still do. Though I'm no longer taking classes, somehow another crop of cheaters have gotten hold of my email address and have offered anywhere from $25 to $200 to write a fifty line program. In fact, a quick look on the internet shows that many people do this.

    2. Re:In the teaching trenches... by elflord · · Score: 1
      It's easy to check if they've just changed variable names or whitespace -- compile the thing.

      Changes as small as variable names and function names are likely to result in different binaries if you do this.

    3. Re:In the teaching trenches... by Anonymous Coward · · Score: 0
      If I was teaching a seminar at someone's workplace, I might or might not inform their management.

      OOOOOOOH. Veddy scary.

      Those of us who are real programmers are laughing at you right now.

      Turning them in. Ha ha ha ha ha. Honest to god...where do we find these people.

      I'm going to tell the principal! OOOOOOH. Please don't tell! Please don't!. I mean it, I'll tell! OOOOOH! Please don't! Please don't.

    4. Re:In the teaching trenches... by Embedded+Geek · · Score: 2
      We'll ignore the flamebait...

      Actually, you had to tell their manager something. Most managers got a little pissed when someone cheated and got kicked out of an onsite class the company was shelling out $4-8K for.

      And, yes, I did have a few beg me not to tell their manager. Oddly, though, they didn't seem as sarcastic as you are.

      --

      "Prepare for the worst - hope for the best."

  228. this can bite innocent parties right in the ass by Jaeger- · · Score: 2, Informative

    just wanted to give my past experience with this kind of thing. at my (undergraduate) college, one of the cs profs had implemented a cheating detector of his own. in my senior year i was in his class and took an extended break one weekend. i had my code done early as i knew i wouldn't be able to work on it at all that weekend, and some people in the class knew i wouldn't be around. a guy who was also in the class came over to my dorm, was let into my room by my roommate, got on my comp, and took my code. the roommate's excuse was "well he came over before to study with you before so i figured it was ok to let him on your comp". dumbass.

    the prof called us in separately a couple weeks after the assignment was due and i honestly had no idea what was going on. despite my explanations of what happened etc, he decided that it wasn't his job to decide if i was telling the truth, what should be done, etc and so he turned us BOTH over to the honor council. we were tried separately and with my roommate's testimony i was found innocent, and never again gave my l/p to the guy so he could play games on my box when i wasn't around. the other guy got off too, but that was because he was a 2nd semester senior with 2 weeks left and they just decided to get him out of there.

    there were similar examples to this (where innocent parties are in trouble unfairly) due to people stealing printouts of peoples code in a shared lab, taking printouts from the garbage, stealing floppy discs w/code, stealing code from /tmp, stealing files located in shared storage space with bad modes set (644), etc. all of this happened while i was in college to various friends etc but most of it occured in the low-level cs classes where the non-cs/non-engineer types were struggling to get "hello world" type programs to work.

    when a similar cheating detector was used in the cs101 intro to c class, something like 20% of the class got in trouble. it was a real mess for the honor council. groups of people would steal code from smarter people and then share it around. amazing...

    wayne

    --
    E V E R Y T H I N G I W R I T E I S F A L S E
  229. Please stop the redundant links! by Kieckerjan · · Score: 1

    This will probably get modded down as off-topic, but this is as good as almost any ./ story to complain about redundant links.

    So you've found a nice tidbit on the web and decided to drop slashdot a link. That's cool. We love you for that. So you found it on news.yahoo.com. Why provide another confusing link just to the homepage? I know where it is. If I wouldn't know where it is, I could easily deduce it from the article's url. Moreover, it distracts my attention. It forces me to actually read, parse and interpret the submission, something I try to avoid as much as possible.

    Your submission is by no means an exception. It seems to be some sort of editorial policy. Slashdot submissions abound with redundant links to the homepages of "google.com", "cnn.com"... hell it wouldn't suprise me to see "slashdot.org" linked. I think we can assume that people know how to find their way to these sites.

    Why am I so upset? Because I hate skimming slashdot in the morning and hitting the wrong links all the time. It costs me time. It spoils my mood. Which makes me yell at my cat.

    Links are meant to stand out. Keep them that way by using them sparingly. Stick to the meat.

    --
    Being well balanced is overrated. -- John Carmack
  230. My Intro to CS Cheating Story by Anonymous Coward · · Score: 1, Funny

    My first programming course 20 odd years ago led to a pretty funny cheating story. For a final exam we were given a fairly simple coding assignment to do on the last day of class. We were instructed to write our code down on sheet of paper, put our name on it, xerox a copy of it and hand it in right then and there. And then we had until the last day of Finals week to get the code to compile and work, and we would be graded on the delta between the first draft and the working code.

    The funny thing was that the course was taught in two sessions, a 10:00AM and 11:000AM session and the two sessions were given completely different coding assignments.

    And yet there were a number of people that somehow managed to hand in working code for the other session's assignment instead of their own :).

  231. Wow, your mom must be proud by Anonymous Coward · · Score: 0

    Feh.

  232. What's Next? by Anonymous Coward · · Score: 0

    How long will it be before somebody develops a program which takes your code and changes variables and structure enough to get by these cheat screens? It's a lot easier to do with code than with your English paper.

  233. not fired for consulting, but... by hazem · · Score: 1

    You won't be fired for working with your co-workers. But, this is about ethical behavior.

    Consider that you are a consultant and work for 2 different companies. If you take code from one company and use it for the other without permission, then you are acting unethically and will probably be fired if you are discovered.

    If you can't even be ethical about writing "hello world", then how can you be trusted with someone's company?!

  234. does this mean i cant use perltidy? by drfrog · · Score: 1

    or htmltidy?

    geez, what do we follow the best practices guides for??

    see perldoc perlstyle for what i mean

    or just grab perltidy and confuse the profs!!

    --
    back in the day we didnt have no old school
  235. an older and better solution by Ellen+Ripley · · Score: 1

    Instructors shouldn't waste time trying to catch cheating out of class; if people are stupid enough to short *themselves* by cheating, let them.

    Catch cheating the same way other courses do: with solo in-class exams that can't be faked.

    Ellen

  236. It has it's positive side... by Anonymous Coward · · Score: 0

    I think that, for the classes that it's being used for, it is a reasonable check. I can't even remember how many people I've know who managed to cheat their way through lower level programming courses and then find out in Compiler construction or Operating Systems that they don't know how to translate their logic into working code.

    The concept of "sharing ideas" is definently a valid concept but only when the basic ability of writing code has been learned

  237. I took the course by SquierStrat · · Score: 2, Informative

    I took the course last semester, and well, the rules about cheating are insane. If you so much as look at another student's code in order to help him, or her, you both are technically cheating and if found out will both flunk the course. Also, alot of people who take the course, have no business taking it! Why? Well it's not every student at the college of computing, it's EVERY student who has to take that course. Some of these kids can't move a mouse in a straight line, much less write computer programs! And it IS a programming course, from day 1, you are taught scheme syntax and usage and some stupid sorting algorithms. Half the time, there aren't very many different approachs to the problems give you (they are VERY structured in how you are to complete them.) Also...at the beginning of the semester there were 5 of these classes being taught, 300 to a class. Of those who remained after drop day, 186 people ACCUSED of cheating is very surprising that it was so few to me! This so-called scandal is not because kids wanted to circumvent the system, it's because the CoC's administration has some overbearing rules.

    On a sidenote...this is actually not new...it happens there EVERY semester, it's just the first time it was announced in mass to the press.

    Face it, in real life, these students will have to collaborate on projects and problems. Telling them that they can't even give each other hints (I'm not joking,they devoted an entire lecture to what constitutes cheating!) is moronic in my opinion. And no, I was not one of the 186 students, I was so bored in the course that I never even went to class, I only bothered to show up for tests.

    --
    Derek Greene
  238. Testing Methods by MrNally · · Score: 2, Interesting

    >Cheating is not demonstrating knowledge.

    I agree, so why not use our ability with networking to solve the problem. The goal is to see that students can code their way out of a paper bag.

    Why not have a class of networked boxes and then 'test' the students by having them come in and write their code while the network is shut down, preventing the students from getting access to any help during the test. Take the floppys and CDROMs out and they can't bring in outside help. There could be bonus marks for speed.

  239. Heh... by Omicron · · Score: 1

    Funny comment on the story about how programmers never can consult other programmers on a project. I do admit cheating in class is a bad idea, but....

    They should come up w/ a class on how code REALLY gets written:

    1. Do Systems Analysis and Design (ie. 20 minutes of chicken scratching on a piece of paper stolen from the laser printer).

    2. Write The Groundwork Of The Program (ie. dig through your and co-workers code to find pieces that will do what you need to do).

    3. Write A Little Code (ie. anything that you couldn't scrounge from friends/coworkers/examples on the net)

    4. Release Software

  240. A couple of problems by MrResistor · · Score: 2
    First, especially in low level classes like intro to programming, the prof often outlines examples which are related to the assignment problem, and which diligent students like myself copy down and modify to fit the assignment. Thus, it would be quite simple for multiple students to have solutions with identical lines since those would likely be lines the instructor wrote which didn't need to be altered to fit the assignment.

    This amounts to cutting and pasting from the instructor, rather than another student, but these are intro classes. How do you teach a language without providing example code that illustrates the concepts you're trying to teach? How can the students (who don't already know the language) complete their assignments without anything to work from? Can you imagine an instructor asking a bunch of newbies to format a printf() without an example to work from?

    I think a lot of people who are going to get "caught" by a system like this won't be cheaters at all. There are going to be a lot of students getting slammed for using the resources that SHOULD be available to them; textbooks, lecture notes, tutors, etc.

    What it WON'T catch are the real cheaters who get their solutions off the internet. A solution to that problem would be a lot more interesting.

    --
    Under capitalism man exploits man. Under communism it's the other way around.
  241. Thoughts of another Georgia Tech alumnus by wberry · · Score: 3, Interesting

    I took Intro to Computing in the Spring of 1996. It was cake for me because I was a Computer Science major and I dig this stuff. But a lot of non-CS people dreaded that class above all others, especially Management, International Affairs, and Architecture majors, but also some engineering people, such as Aerospace and Industrial Engineering.

    (And can you really blame them? How many civil engineers really need to know how to sort numbers in O(N log N) time? Or insert into a linked list for that matter? They write hacked-up FORTRAN if they write anything at all.)

    Kurt Eiselt came to the first lecture and gave us a scare speech about Cheatfinder. Knowing that it looks for similarities between two students' works, I was worried constantly about my homework answers. A typical problem was to write an inorder binary search tree traversal routine in pseudocode. Honestly, how many different ways are there to do this? And there are 500 people in all sections of the class?

    Fortunately, I was never flagged, but I have heard a few stories (which may not be true, you know how that goes) of people who were flagged, and were only vindicated after losing student jobs and failing classes.

    I don't think an automated cheat detection system is applicable to small problem sets like binary search, stacks, and Mergesort. For the later classes, say Sophomore level, I have no problem with it though.

    Besides, many Greek orders and clubs on campus have extensive "word" banks--archives of previous homeworks and tests, with solutions, from previous class offerings. Are they going to check against all previous students' work too?

    --
    LAMP hosting on Debian, SSH, no bandwidth cap, PayPal accepted - http://secondbrainhosting.com/
  242. GPL compliance... by curunir · · Score: 2

    Could something like this be used to detect violations of gpl'd software? It would be especially useful for detecting usage of gpl'd software in proprietary products where the source is never released.

    --
    "Don't blame me, I voted for Kodos!"
    1. Re:GPL compliance... by netringer · · Score: 1
      Could something like this be used to detect violations of gpl'd software? It would be especially useful for detecting usage of gpl'd software in proprietary products where the source is never released.
      Yeah. I'd like to know just where the command line FTP, Telnet, ping, etc. in MS Windows came from. Somehow I doubt that the code started out with only
      main() {
      --
      Ever dream you could fly? Get up from the Flight Sim. I Fly
    2. Re:GPL compliance... by curunir · · Score: 2

      the lack of bugs or security holes certainly seems to suggest that, doesn't it?

      --
      "Don't blame me, I voted for Kodos!"
  243. The Real World by Amazing+Quantum+Man · · Score: 2

    Cuz remember programmers: in the real world you are fired if you consult with a co-worker

    But remember, College ISN'T the real world. The point of College is not to get the job done, but to learn stuff. If you just copy somebody else's stuff, you won't learn anything, and you'll be pretty useless in the "Real World"(tm).

    Disclaimer -- when I was grading programs (back in '83/'84) I busted a few people for copying...

    --
    Fascism starts when the efficiency of the government becomes more important than the rights of the people.
  244. We at R.I.T have a more complicated program by KwamiMatrix · · Score: 1

    Here at the Rochester Institute of Technology, I am an undergrade freshman Computer Engineering Student, and one of my CS2 professors here has developed a program more advanced than this one at Georgia Tech. It actually bypasses source code variable names and order, and deeply analyzes the structure of a program, and how the program operates. Much better anti-cheeting program, and has huge success rates. It still catches false cheeters, though. It's Not perfect. My CS2 professor brags about it.

  245. This has been in place at Virginia Tech since 1994 by PSL · · Score: 1

    They started using this in the CS Department at VT in '94. Not only does it compare you to your fellow classmates but it compares to its history of programs it's read... so you can't use the same code someone else used years ago if the project ever came up again. It caught about 60 out of 300-400 people the first time it was used. What ever happend to "working as a team"? hehe.

    --

    "Times may change, but standards must remain the same." - George Carlin.
  246. Related - Theory of Plaguarism (sp?) by Embedded+Geek · · Score: 2
    (Somewhat OT)

    When I took a lot of creative writting courses in college, the topic of plagurism often came up, often in the context of "stealing" a single phrase or idea. What I found was that people who were good writers were incapable of cutting and pasting someone else's prose. They'd wind up teaking, twisting, and "improving" it. By the time they read it aloud to the class, you couldn't recognize it at all.

    Then, of course, they'd get all offended that you didn't realize that it was a Hemmingway reference or something. Human nature, I guess...

    --

    "Prepare for the worst - hope for the best."

    1. Re:Related - Theory of Plaguarism (sp?) by Anonymous Coward · · Score: 0

      Sounds like art-fag nature to me.

    2. Re:Related - Theory of Plaguarism (sp?) by Anonymous Coward · · Score: 0

      and your ass is a museum

  247. How far can you go before you should be kicked? by Letch · · Score: 1

    How much is cheating? Where is the line drawn between collabration and cheating?

    If I give code to a friend, then thats easy. But for example, what if my friend is having a hard time working out a program, so I show him mine and explain, 'Look, I used a loop here to search throught the structure then used a iterive procedure yada yadda' and he goes away and codes his practical using my outline?

  248. I recall by macdaddy · · Score: 2

    ...in a few of my entry-level CS classes where on more than one occasion my work looked remarkably like others in the class, including that of the instructor that also work the assignments during the same timeframe that we did. I didn't copy and neither did anyone else. It's just that the instructor grilled steps into our head on how we *should* program something. When all was said and done, our source had a certain resemblence to one another. On one of the hardest assignments in the class, a calendar, my source was almost identical in parts to the instructor's. We even chose many of the same variable names. I can easily see how 2 or 3 people out of a class of say 500 could have very similar source. Can't you?

  249. Talk about cheating by damas · · Score: 2, Interesting

    Well we got every assignment in the last 5 years on file. We run hacker (which produces functionally equivalent programs = renames functions and vars) and the like (rotate ORCAD schemes) and got a cgi script that does most of this automagically.

    Those dumb enough to carbon copy stuff deserve to be caught.

    1. Re:Talk about cheating by Stephen+Samuel · · Score: 3, Interesting
      A friend of mine (Dan Wilson) who taught computing at the University of Alberta had a program (20 years ago!) that generated statistics on a program to catch cheaters and copiers. From his description of the program, it seemed to work off of the parse tree, so it was essentially imune to simple workarounds like renaming variables or changing the indents.

      Of course, he was also aware of the limitations of the program (given that he wrote it), so I don't believe that he took the statistics as the sole sole arbitrator of whether or not students were stealing code.

      On the other end of the scale, Dan once found out that someone had published a solution to one of his assignments. He publicly announded in class that he was aware of the cheat. For anybody who had already submitted copied code and couldn't come up with a 'real' solution, he offered a partial amnesty (a zero on the assignment, but otherwise no punnishment) for people who came forward and fessed. He also warned that anybody trying to sneak the cheat past him would be failed from the course.

      Despite his warning, a number of students still submitted the known cheat. Some blindly submitted the file without any edits whatsoever -- not even bothering to fix a simple syntax error that kept the program from compiling. As promised, they were removed from the course and reported for cheating.
      There's no accounting for abject stupidity.

      --
      Free Software: Like love, it grows best when given away.
  250. Cut'n'Paste by wls · · Score: 1
    ...but who graduated anyway because he cut-and-pasted the work...

    Cut'n'Paste is evil. Real computer science students should know how to use wizards to write their redundant code.

    1. Re:Cut'n'Paste by Idolatre · · Score: 1

      Wizards are still a form of Computer-Assissted-Copy-Paste, the real way to reuse code should be to put all the reusable code in function/class libraries that are then imported in future projects.

      And that way you get the extra benefit that you don't have to waste time writing code for a wizard, which must be updated when the generated code changes.

  251. Cheaterbeaters are a sad statement by Karl+Cocknozzle · · Score: 2

    I hope I don't sound like an old fart when I say this, but if you have to cheat at beginning programming class, you should re-consider whether CS is the right major for you. Seriously.

    My freshman year, we got Pascal I & II. I might have been one of four or five people in a class of 15 that wrote all my own code. I mean, it's fucking pascal. If you can't grok pascal, maybe it's time to change careers. (Sorry if you had trouble with pascal...I'm not saying I'm a god but I never had to cheat to get my homework done.)

    All this talk of Pascal makes me nostalgiac for the goofy "everything is one big nest" code. I bet google could find a pascal compiler for Mac OS X...

    --
    Who did what now?
  252. Class != Real-World by chinton · · Score: 2
    Cuz remember programmers: in the real world you are fired if you consult with a co-worker

    Geez, Taco, wtf? The classes in question aren't the real world -- they are there so you learn how to program, not how to collaborate. Perhaps instead of allowing posters to add their own comments to submissions, they should be forced to attach their witty or insightful comments they same as the rest of us.

    Your quip turns the whole focus back onto the school -- they are the ones doing something wrong by looking for cheaters, instead of the cheaters themselves. Whats next, complaining about the fact that the assignments are graded at all?

    Cuz remember surgeons: in the real world you will have someone assisting you.

    Cuz remember pilots: in the real world you will have a co-pilot.

  253. Cake? by GT_Alias · · Score: 1

    Granted, they were a breeze if you had any coding background at all, or just happened to be someone who thought in that style. But the intro to computing class is required across the board for all majors at Tech. I think when you have your average Management or Architecture major in there trying to decipher the fundamentals of Scheme, you get a lot of clueless people who would definitely not consider the class "cake." Those were usually the people all crowded into the local computer whiz's dorm room, copying and pasting for all they were worth.

    1. Re:Cake? by quincy_MD · · Score: 1

      And you certainly don't want to make the Management school harder... there's too few women on campus to begin with. At least there were too few when I was there in the late 80's... (OK...how brain dead are some of the management school bimbos at Tech? I had one brainiac sit down next to me on the first day of Organic Chem and it took her 15 minutes to turn to me ask "this isn't psychology... is it?" Duh... no.)

    2. Re:Cake? by vivianeq · · Score: 1
      That is really offensive. Women at GT get so much crap. Sure some of them are bubbly sorority girls who may seem ditsy. But my (somewhat)bubbly sorority girl (CS major) roommate last semester and another girl had the highest average in her combinatorics class. I think the women here at GT often are more serious students than the men.

      As a cs major myself I am really sick of guys ignoring my input, thinking I am stupid. I don't like management majors either but dont assume they are at GT just to get their high paying Mrs.

  254. Lawyers use these tools too by Caractacus+Potts · · Score: 2, Insightful

    I once worked for a company (circa 1990) that was being sued by a competitor for stealing their source code. They did a line-by-line comparison of the codes involved and found what they determined to be a "significant" number of matching lines. Of course these lines (in FORTRAN) were 99% the typical comments, declarations, DO statements, CONTINUE, FORMAT, RETURN, etc... that occured in most programs anyway, or they were in routines commonly derived from the NETLIB or HARWELL source libraries. They figured a judge and jury wouldn't understand the issues involved, so the burden of proof (or clarification) fell on the accused.

  255. not really new.. by Suppafly · · Score: 2

    This is really anything new.. I live in IL and I've heard of one of the larger state schools doing this.. and I've heard a lot of the younger professors describe this exact same thing from their days in the university..

    whats sad is the amount of false positives produced by these things..

    I'm just glad my school doesn't implement something like this.. it would be more of a hassle than anything..

  256. What is a 'good developer'? by lostboy2 · · Score: 1

    It seems to me that good developers are those who can
    *) develop code on their own
    *) collaborate with others to produce code
    *) apply code that has already been developed to a new project

    And the job of a CS program is to produce people who can do all three of these things.

    In my experience, collaborating and applying pre-developed code is an important part of development in The Real World. It's pointless to reinvent the wheel if someone else has already come up with a workable solution. That's why there are websites like the Access Web.

    It's also seems to me that it's fairly likely that people will create similar looking (and even identical) code independently, especially for basic programs, given the push for coding standards.

    Now, none of this suggests that Georgia Tech is wrong to use their cheat-finder program, but I'd be wary about relying on such a program as your sole gauge as to whether a person is cheating (or, more importantly, if it's your sole gauge to determine if a person is *learning*) which, thankfully, doesn't sound like it's the case at GA Tech.

    In response to the comments about bad developers, it seems to me that if people are getting CS degrees (or any kind of certification) without the basic skills, the problem isn't just that they're cheating; the problem is that the institutions that are granting those degrees are not teaching their students the right skills and/or are not testing those skills rigorously enough. And simply saying "write a program that does X and doesn't look like anyone else's" is not enough, IMHO.

    But then, I *don't* have a CS degree, so what do I know? :-)

    -- D.

  257. Should do an article on Squeak instead by Anonymous Coward · · Score: 0

    Well of all the things to mention about Georgia Tech, this one is pretty lame. I know Georgia tech is Squeak-central and they have some amazing stuff.

    http://www.SqueakLand.org/learn/university.html

    Wonder if this system is written in Squeak?

    Anybody know?

  258. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  259. Real world example by cs668 · · Score: 2, Funny

    I acutally had the problem of a co-worker taking a bunch of work I had done to the boss and claiming he did the work.

    The funny thing is the guy was so stupid he didn't understand that there would be backups that would show who created the files and when.

  260. Guess Who's Consulting for Dinner? (A Drama) by Anonymous Coward · · Score: 0, Funny
    Cuz remember programmers: in the real world you are fired if you consult with a co-worker ;)

    Here's the flip side of Cmd Taco's comment:
    Manager: Hi Sally, this is Bill, our new hire. He graduated without writing a line of original code and is totally clueless, despite successfully litigating against Georgia Tech's use of a cheat detector. You'll be doing all his work as well as your own.
    Sally (pulling hair out in clumps): Arrrrgh! Damn you Cmd Taco and your smug comments!
    Bill (puzzled): I thought it was okay to consult with co-workers?
    Curtain closes.

    This mini-software-drama has been brought to you by Beatrice.

    Anonymous Kev
    Proudly posting as Anonymous Coward since 1997

  261. This is not news by Necroman · · Score: 1

    Here at Iowa State, we have been using something similar for our two data structures classes CS227 and CS228. Most any other class in the department where people turn in code, the code is run through the same kind of thing. And not just exact matched.. but % different between certain ones (only 5% difference raises suspition).

    As far as I know, this process has been in place for at least 2 years now, maybe longer.

    --
    Its not what it is, its something else.
  262. really old news by xtp · · Score: 1

    I was a TA for an undergraduate course. It was almost 30 years ago - ~1974. We wanted to identify assignments that had been copied. Sometimes variable names were changed, sometimes not. The compiler was hacked to produce a signature derived from parse tress. Graders looking at assignments could compare the signatures. The prof simply announced that independent work was expected and showed the statistics. A few people needed more personal explanations. By and large the exercise was carried out with good humor and good taste.

  263. Caught cheating by Anonymous Coward · · Score: 0

    Word of advise. Don't cheat on your last assignment in your last course of your degree.

  264. This is not new to KU students by MBCook · · Score: 2

    I'm going for a BSCoE at KU, and in our programming classes last semester, we were told that they used software that basically did the same thing. I don't know how long they've been useing it, and I didn't hear of anyone getting caught. I think that this is just the first instance of it CATCHING people.

    --
    Comment forecast: Bits of genius surrounded by a sea of mediocrity.
  265. "Real world" argument is such BS by trenton · · Score: 3, Insightful
    That argument never holds up. When does your orginzation have all devleopers coding the same solution, simultaneously? Not everyone working on part of the problem. But everyone solving the same, complete problem in parallel. Never.

    So, we've now proven that in the real world, you can't very well "cheat" off a coworker becuase they're doing something different. You could reuse code, but that doesn't count either. You can ask for their input, but you can't pass their work off as yours. Try that and see how long you last (probably about as long as those cheater students).

    --
    Too big to fail? Does that make me to small to succeed?
  266. Re:i cheated by Anonymous Coward · · Score: 0

    you trolls are startin to get desperate for new material it would seem ;)

  267. I would dispute that remark... by Greyfox · · Score: 2

    I've come in and had to clean up behind lots of other programmers who didn't fucking know how to code. The one benefit to this crappy economy is that these people will no longer be able to job hop every 3-6 months due to the shit hitting the fan because they don't know how to program. Oh, the horror stories I could tell...

    --

    I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

  268. It would need to be exact, but that wouldn't help by Anonymous Coward · · Score: 0

    This is just another reason why CS departments are going to hell. This method of catching cheaters is wrong.

    In entry level courses, all the assignments are going to be almsot completely identical for students who have never done any programming (or little) before. And colleges are full of these people, chasing the promises of money.

    Think about it. A group of students all have the same point of contact to learn naming conventions, data structures, problem solving techniques, and algorithms. Since they all have the same point of contact, their solutions will all look really close. On a sufficiently small project, even as big as a couple hundred lines, there is a large chance that 3 or 4 students are going to produce relatively indistinguishable code.

    An exact match would be cause for concern, but a cheater won't have an exact match anyway. So there is a flaw. Anything really close to an exact match is to be expected, and exact matches aren't likely from cheaters.

    There used to be a trick that a junior high teacher did with his students. Didn't catch cheaters but made it hard to cheat to begin with.

    Exploiting a "feature" in Apple's basic, he set up a program that could "poke" in the values for lines numbered above 65000. Essentially setting up a template with the students name that all programs had to be turned in, looking like. Without "poke"ing the values around (which he didn't teach), you couldn't change those lines.

    If you wanted to cheat, you would have to retype the entire assignment into your own template.

    Not full proof, but for that level, it was pretty effective.

  269. Not exactly new news by tabacco · · Score: 1

    My school (University of California, Santa Cruz) as well as many of the other UC campuses have had this sort of software in place for years. Ours checks for code where only the comments have been changed, code where the variable names have been changed, or code which is just flat out identical. It keeps archives of past assignments for all classes, and checks submissions against the entire archive too. It may also do other stuff, but those are the few details I've gotten out of various professors.

  270. Already made news by zer0vector · · Score: 1

    I go to UVA and this program was put to use and modified to check term papers for identical strings of words greater than 6. Two semesters ago about 145 Honor Charges were brought against students in a single class, leading to quite a few expulsions. The program isn't perfect, since it still raises a flag for quotes and bibiography, but it seems to work in exposing an existing problem.

    --

    ----
    Striving to put right what once went wrong, and hoping each time that his next leap, will be the leap ho
  271. I remember a guy.... by mikera · · Score: 5, Funny

    ....who thought he would cheat by copying someone else's code.

    But he was pretty paranoid about getting caught, and realised that a verbatim copy wasn't enough, you'd have to change the variable names, comments etc.

    So he did some research, wrote himself a little parser that read in the source code and built a parse tree of the program. He then wrote another function that spat out all the code again but with different spacing, block ordering and some simple variable renaming (e.g. x,y,x->a,b,c)

    To make sure the structure of the code didn't give him away, he wrote a few code transformations, e.g. if a then b else c became if !a then c else b. The order of non-conflicting assignments were swapped, and mathematic expressions were re-arranged (sometimes actually optimising the original code in the process!).

    Still wasn't good enough, the comments needed changing and the structure of the code looked the same. So he linked in a thesaurus and NLP/AUG engine to change the words in a meaning-preserving manner. Same principle could be applied to the more complex variable and function names, so buildTree became makeStructure etc.

    Finally, to put the icing on the cake he modified the program so it could output the code in a couple of different functional languages. Made the plagiarism almost impossible to spot.

    Best programmer I ever met.

    1. Re:I remember a guy.... by "Zow" · · Score: 2

      Cute.

      I heard of another student who went to the opposite extreme. In freshman programming the TA's would always put a sample executable in the class directory so that we could compare our output with the canonical output. Now maybe this was just an urban legend, but a year or two before me there was this bright student who couldn't get his program to work, so what he ended up doing was commenting out his entire program and having his main exec the sample program. At my university, anyone who even understood what a system call was in freshman programming was considered a genuous by their classmates, so we were rather disappointed to hear that he failed that assignment - the general concensus was that he should have gotten an 'A' for ingenuity.

      -"Zow"

    2. Re:I remember a guy.... by AutumnLeaf · · Score: 1

      And I know a guy who wrote most of a program for a class, wasn't able to get it running (partly due to some life circumstances taking some time, although that's still not quite an excuse), who did the same thing. All programs, according to "code guidelines" had to start with comments. So he just ended his header comment in the middle of his big (multi-page program), exec'd the sample program, and started his comment again.

      Worked like a charm. I was impressed. While I never would have had the guts to do it, I still wish I'd at least THOUGHT of that!

    3. Re:I remember a guy.... by mikera · · Score: 1

      Sweet, though I wouldn't try it nowadays since lots of people are using syntax highlighting...

  272. Down with Cheat detectors! by ShortedOut · · Score: 1

    I admit, I cheated on intro to VB! I stayed out drinking almost every night right before the program was due, so I schmoozed up those nerdy chicks to give me the code so that I wouldn't fail. Honestly now, why waste time coding VB, which I never use, when I could be out partying, and drinking, which I always use? Cheating in VB is just as much a part of getting a well rounded college education as getting laid is!

  273. This is nothing new by Anonymous Coward · · Score: 0

    This is nothing new many univerisites employ such automated scripts. My London university has been doing this at least 7 years and probably before I started.

  274. teaching style by CrazyDwarf · · Score: 1

    When I was in college learning programming, we all started with the same basic assignments. These consisted of, "Type this in. Watch it work." And later, "Modify this by changing X line to read Y." For a long time, I tended to use the same generic variable names. I remember comparing my code to friends in the class, and many times sections of our codes (functions, procedures, etc.) would match word for word, even though we hadn't even discussed the projects among us. I don't think this is going to be taken into account here, and I shudder to think what will happen to the education of young programmers.

    I think it is even more interesting that this happened, considering I had started programming about 9 years earlier. The elementary school I was in in 3rd grade started teaching us basic programming on the TI-994A. I miss that hunk of junk. I think I'll go look and see if I can find one, just for nostalgia.

    --
    It's easy to stand out when the general level of competence is so low.
  275. hardly novel by Anonymous Coward · · Score: 0

    Alex Aiken at Berkeley came up with something like
    this years ago.

  276. how we use such systems by Anonymous Coward · · Score: 1, Informative
    I'm a graduate student at a major computer science department. I've both been a TA and lectured the introductory computer science classes.

    We have been using a system to detect cheating for years---it started before I got here. The one we use is Moss (from Berkeley). How Moss works? I'm not sure, except that it does examine program structure, at least to an extent. I can comment on how it's used.

    In an intro-sized course, 200-400 students, it's impossible to check the programs by hand, especially when they are graded by different TAs. Moss is very useful as a first pass in detecting cheating. When Moss flaggs a pair of assignments that are very similar, we examine them by hand and make a judgement.

    If there's any error the process errors on the side of the student. If there was plagarism that is not caught by Moss, then the students will probably get away with it, since the chance that the TAs will discover it is small (although it does happen). No accusation of plagarism relies on Moss---Moss is only used as a tool to narrow the manual comparison process.

  277. What about open source? by anonymous_wombat · · Score: 1

    The purpose of a programming class is different than a commercial software project. That does raise the interesting question of someone reusing code from an open source project as part (not all) of a programming assignment.

  278. Levels Of Cheating by Anonymous Coward · · Score: 0

    I teach an introductory, pseudocode-only programming logic course at Pierce Community College. Enrollment is usually 50-60, with typically 25 students completing the course. This is a public institution, fees are $11 per unit, and about $38 for enrollment and night parking, so we aren't ripping people off.


    I assign 10-12 pseudocode homeworks per year. At the beginning, as many posters have noted, there are few logical ways to implement most of the algorithms. So cheating may occur, but I usually only catch it at this point when they repeat a unique blunder. This is all graded by hand.


    As the algorithms get harder, the cheating becomes more obvious. Also, the number of submissions drops, so similarities are more pronounced. (In this class, a harder algorithm is gymnastics scoring for 75 contestants, file input, discard high and low from ten scores per contestant and calculate average, show 1st-2nd-3rd, use subalgorithms and arrays, et cetera - this is not intended to be a very rigourous course.)


    Punishment for cheaters is usually to note the solution similarity to all parties involved. Once is usually enough.


    ...then I taught a fourth-semester OOP course. By the third assignment, it was easy to spot the - um - excessive consultation. (As a more real-world experience, the last project was a team effort, with only one set of code submitted for the team.)


    For those who have not taught, and haven't graded 60 papers a week from beginning students with varying degrees of aptitude and comprehension - an automated system like MOSS can be a great aid. In particular, it lets the instructor concentrate on what each student is comprehending, and I know that I need this feedback weekly.

  279. Why does it matter if they cheat? by Cygnusx12 · · Score: 1

    Let them cheat all they want, it won't help anyone a penny when it comes to Exam time. If you can ace your homework, but fail your final.. and still actually TAKE the Exam .. that should be factored into your grade. I'm not sure I've ever taken a class where one could outright FAIL the Exams and still pass the course.

  280. Re:It would need to be exact, but that wouldn't he by Pituritus+Ani · · Score: 1
    Exploiting a "feature" in Apple's basic, he set up a program that could "poke" in the values for lines numbered above 65000. Essentially setting up a template with the students name that all programs had to be turned in, looking like. Without "poke"ing the values around (which he didn't teach), you couldn't change those lines.

    Damn, we're old, aren't we :)! I think most of those MS BASICs wouldn't allow direct entry of lines above 63999.

    --

    Another proud carrier of the $rtbl flag

  281. Sue the school! by billcopc · · Score: 1

    Although this kind of software has existed for some time, it is to be taken with a grain of salt. Any instructor who blindly points the finger at the 'cheaters' this software discovers, is opening himself and the institution up to a barrage of lawsuits.

    I've spent many evenings correcting C++ homework for a fellow teacher (who doesn't know squat about C++, of course). In the first few weeks, about half the group was copying off each other. Some of them were sneaky enough to swap lines of code around, or change a few variable names, but with a little thinking it was obvious that the code was identical. It was most obvious when those little modifications resulted in code that didn't even compile. Of course the students would argue that they did not copy, some cocky fucks even had their parents call me to personally insult me (it was a prestigious college, lots of the parents were ambassadors and/or wealthy business meatheads). Needless to say, we had them kicked out of the course very quickly while the college's mgmt handled the legal threats.

    There were also some cases that looked similar, yet once you grokked the code you could sense the subtle differences in that particular student's reasoning; those cases would probably turn up as false positives using cheat-sniffing software. In such a case, being sued would be a very bad thing, since the odds are on the student's side : punitive damages and bad publicity are a great way to destroy an organization.

    Finding cheaters can be easy, just as it can be devious. I wouldn't trust such a task to any dumb software.

    --
    -Billco, Fnarg.com
  282. Cheating by enigma48 · · Score: 1

    I must have gone to the most enlightened university in North America going by the responses by most of the crowd here.

    First of all, go look at MOSS before you call all cheat-detection tools copies of diff. For my university's more rigourous classes, they've set scores VERY low (I've been told about 20-30% of a perfect match) and only 5-10% of the class meet that. The majority of that group were dumb as a rock - cut and pasting ALL code, INCLUDING comments, etc. There was even a case where twins were in the same program, same class, and they used the SAME code in a major assignment. Didn't even change the documentation to reflect the "new" author. There have been false positives, but they are rare and the department errs on the side of the student if there is reasonable doubt.

    Like a few have said - these are tools and should be used accordlingly. No one who wields a scapel is qualified to perform surgery, nor should one tool be used to perform cheating tests. A school of any size gets lawsuits for everything. Students can appeal just about anything. Why would they suddenly trust one source of error when students can be ejected from school?

    Consider the alternative argument: many students ARE cheating. Hmmm - a course forced on most students, CS degree or not. Many prior students take the course, probably got away with quite a bit.

    Collaboration is one thing. Cheating because you think you can get away with it - oops, not anymore - is another thing. Flag the code matches, look at it with your eyes and ASK THE STUDENT. If they can't answer a single question about a 200 line program they wrote, the odds are slim that they wrote it. (maybe we can finally use drinking as a defense though!)

    Make sure punishment is swift, certain and (relatively) severe and in a few years, students will either a) do their own work or b) the manditory course's workload will be reduced.

  283. Stupid by NeuroMorphus · · Score: 1

    This is the stupidest software I ever heard. If ya ask me, the best way to tell is to just read the code!" The teacher looks at the code with his/her own eyes anyway right? Humans can see algorithms, software can't.

    --

    python >>>
    reduce(lambda x,y:x+y,map(lambda x:chr(ord(x)^42),tuple('zS^BED\nX_FOY\x0b')))
    1. Re:Stupid by Anonymous Coward · · Score: 0

      There are 1700 students between the two classes, multiple professors for each class, and a lot more TA's who actually do the grading. That 1700 also isn't spread 50/50, but was more 70/30 or 80/20 in the fall semester. If you want to make one person compare 1000 programs by hand, you are a very evil person.

    2. Re:Stupid by NeuroMorphus · · Score: 1

      That's why you don't go to Georgia Tech, but rather Southern Polytech ...

      --

      python >>>
      reduce(lambda x,y:x+y,map(lambda x:chr(ord(x)^42),tuple('zS^BED\nX_FOY\x0b')))
  284. So? by Anonymous Coward · · Score: 0

    I go to school at UVic, in BC... They have been using a system like this for years.

    There is absolutely nothing new about this.

  285. Not New Software by whatsit · · Score: 1

    The University of Nebraska-Lincoln cs department has been using something like this for a few years now. They call theirs handin and it handles all programming submitions and checks them for cheating patterns. Big deal...

    --

    user@host:/usr/bin$ whatis ./java
    java: nothing appropriate.
  286. Football Coach by kneeo · · Score: 1

    Too bad they didnt have this when George OLeary first became coach, they could have ran it on his resume.

  287. OT: reversing a list by KnightStalker · · Score: 3, Interesting

    Here's 7 lines of C to reverse an array. The assembly would be more or less identical. I don't feel like dredging up my memories of 8086 assembler... it would probably end up screwing up my Perl for the next hour or so :-)

    int list[] = {0,1,2,3,4,5};
    int i,j,len=sizeof(list)/sizeof(int);
    for (i=0; i < len/2; i++) {
    j = list[i];
    list[i] = list[len - i - 1];
    list[len - i - 1] = j;
    }

    Reversing a linked list would be marginally longer, but a doubly linked list would be just as short or shorter than this. Only a real novice would take 100 lines of C to do it. BTW, how could you possibly learn assembly before learning what a stack is?

    --
    * And remember, it's spelled N-e-t-s-c-a-p-e, but it's pronounced "Mozilla."
    1. Re:OT: reversing a list by DavidTC · · Score: 1
      Too lazy to code it, but what you should do is allocate the array one bigger then it needs to be, then you can put 0 into 100, 99 into 0, 1 into 99, 98 into 1, etc. At the end you just throw away 0.

      Mwhahahaha. One less copy per loop!

      Of course, none of this makes any sense for a seven item array, the correct way to do that is to just make another frickin array and copy it. ;)

      --
      If corporations are people, aren't stockholders guilty of slavery?
    2. Re:OT: reversing a list by pclminion · · Score: 2
      Or, if you want to be slightly more obscure, and avoid using the temporary variable j:

      list[i] ^= list[len - i - 1];
      list[len - i - 1] ^= list[i];
      list[i] ^= list[len - i - 1];

    3. Re:OT: reversing a list by rabidcow · · Score: 1

      Nice and symmetrical:

      void ReverseArray(int *array,int elem)
      {
      while (elem>1)
      {
      --elem;
      *array ^= array[elem];
      array[elem] ^= *array;
      *array ^= array[elem];
      --elem; ++array;
      }
      }

      int list[] = { etc };
      ReverseArray(list,sizeof(list)/sizeof(int));

    4. Re:OT: reversing a list by Brownstar · · Score: 2

      The hundred lines, wasn't in C it was in assembly. (what you have is pretty much the logic he gave us)

      The c code wasn't hard to understand, just a pain to implement.

      and as far as not knowing what a stack was, this assignment was like second week or so, and so far we had only been working on register manipulation, and basic op codes, I think it was the next week or so that we started to cover stacks.

    5. Re:OT: reversing a list by KnightStalker · · Score: 2

      well, this is a total waste of time, but I'm still trying to figure out how to use 100 lines of *any* language reversing a list. I would do this in (pseudo)assembly as follows:

      initialize list with numbers
      load dx with 0
      load ex with length
      dec ex
      .label
      load bx with list offset dx
      load cx with list offset ex
      load list offset ex with bx
      load list offset dx with cx
      inc dx
      dec ex
      cmp dx,ex
      jl .label
      ; congrats, your list is reversed

      or something along those lines. I think you have to use the bp register and maybe one of the general purpose registers to access the list offset. And there's probably a better way to swap the list values. My assembly is *really* rusty :-)

      --
      * And remember, it's spelled N-e-t-s-c-a-p-e, but it's pronounced "Mozilla."
    6. Re:OT: reversing a list by KnightStalker · · Score: 2

      ooh... I'll remember that one. It never occurred to me. It's probably slower than using a temp, (there are still three assigns, plus three xors this way, and with the temp there are 4 array accesses compared to 6 with this method) but this is way cooler. And the lines form a nice square block :-)

      --
      * And remember, it's spelled N-e-t-s-c-a-p-e, but it's pronounced "Mozilla."
    7. Re:OT: reversing a list by Brownstar · · Score: 2

      Because you took the time to figure out what you did, I guess I should answer.

      I went back through my old labs (yeah I'm a dork, I keep everything)

      the reason it would have been so long was :

      1) we were using the Motorolla 64HC11 and it only had 2 8-bit accumulators, and 2 16-bit index registers, and a stack pointer, and the prof didn't want us storing any of the counters, or addresses in memory using a store command.

      2)We had to read an unknown number of elements, until we came to an FF, then reverse those (that wasn't a problem though)

      3) Plus we weren't actually using the assembler yet, every thing was either an opcode or a hex number (address/offset/whatever else) and the way we were writing it was an 8-bit hex number per line (to then be placed directly into memory).

      So yeah, It probably wouldn't have been a total of 100 lines of actual assembly (probably not even 100 of just opcodes and values) but it would have been a lot longer than the 12 (sorry not 11) 8-bit hex solution I came up with using a stack. Plus remember this was my second week of ever looking at low level coding using opcodes and hex, so it wasn't all that familiar at the time.

    8. Re:OT: reversing a list by KnightStalker · · Score: 2

      Ah... I understand. Sorry I asked :-)

      That's freaky. I'm glad I majored in software. I've looked at 64HC11 assembly exactly once, helping a left-side-of-the-bell-curve computer engineering student, based on my more recent experience with x86 assembly and a vague memory of 6502 assembly from the C64. I think that was the last time I ever really thought about code at a lower level than C, at least until yesterday :-)

      --
      * And remember, it's spelled N-e-t-s-c-a-p-e, but it's pronounced "Mozilla."
    9. Re:OT: reversing a list by pclminion · · Score: 2
      Actually, the compiler is smart enough to access the array only as many times as is needed. Load list[i] into a register, list[len - i - 1] into another, do the xors, and store at the end. A good compiler on a register-rich machine will only compute the indices once, and you'll end up with the same 4 accesses as before.

      To understand why it works, remember that xor is a bitwise orthogonal operation; that is, it operates on each bit completely independent of every other bit.

  288. huh? by Anonymous Coward · · Score: 0

    How does this comment possibly deserve score:5? His quote was as follows:

    >> Cuz remember programmers: in the real world you are fired if you consult with a co-worker ;)

    He then went on to discuss how in the real world you are fired if you "steal code from someone else without their permission". How is this even remotely similar to "consult with a co-worker"?

    In my life experience, both with 10 years of programming, and years working with creative/future problem solving tasks, adding a member to the group often doesn't just increase output linearly, but exponentially. Bouncing ideas off someone else is a great way to help with your own creative ideas as well. And that's what the poster of this article meant by "consult". He didn't mean "steal".

    Also, on the vein of this cheat detector, compare programming to math. In math, there is one solution. In programming, as long as the requirements are strict enough, there is only one requirement as well, for example, a program accepts user input, parses it, and displays it in a precise manner to STDOUT. There are only so many ways this can be done. Just because two students happened to use the same algorithm doesn't mean they're cheating.

    Unfortunately, a certain degree of trust in the standards of the students is required. I'm not going to say which one I'm from, but there are an awful lot of people who are here because of the fact that their parents had a lot of money and that the only way little johnny was going to get ahead in life is if he goes to university.

    I don't want this "cheat detector", but I'm caught in a Catch-22, because I don't really think most of the people in my class should be trusted..

    So this is why I wouldn't compare structure (ie, what the algorithm is implemented), but I would compare the implementation. Actually, I have a feeling this would have more to do with mathematics (statistical analysis of filesizes or something) than coding.

  289. Microsoft by SevenTowers · · Score: 2

    How do you think bugs spread in m$ programs? Cut and paste and cut and paste...

    --
    Imperium et libertas
    Autocracy and freedom
  290. Old news by Snuffub · · Score: 1

    People ahve been doing this for years. we use MOSS (measurment of software similarity) which was writen by alex aiken at berkeley. As for the editorial comment I think that there's a little difference between asking a coworker (or another student) for help and copying code directly from another source. But everyone's entitled to their opinion.

    --
    --aiee
  291. Mod this up! by Anonymous Coward · · Score: 0

    +1, piss-pants-hillarious-'cause-it's-true! ;)

  292. Conviction != Guilty by Anonymous Coward · · Score: 0

    I went to CMU. I saw a fair number of folks get "convicted" of cheating...

    Take the case of friend of mine, Doug: His program was considered "simiar" to another students. It didn't matter that he hadn't cheated. It didn't matter that he was far, far above the bell curve, even for CMU. It didn't matter that the class was not required for his degree -- He was taking it only because he wanted to learn more.

    His code was sufficiently similar. That was enough. His choices were to accept a forced-failure mark for all his hard work, or fight it at the disciplinary committee -- a well known rubber stamp group -- who would kick him out of the school.

    He opted for keeping his degree.

    Sooner or later, somebody will have the balls to hire a lawyer... I'm hoping it's sooner!

  293. Well, that bites by MoneyT · · Score: 1

    Let's see, so the point of this program is what? To teach every one to write their code in a different manner than everyone else, so only they can read it and understand what's going on?

    My entire CS class would have failed if this had been used. Why? Because we were taught to all use the same indentation system. And how do the semi-colons get put anywhere other than where they're supposed to be? We were all told to use the same basic setup and variable nameing scheme so that any one will be able to read your code and understand it. And I can't tell you how many times we borrowed functions from eachother. Or how many times each person in a group wrote one part of the function and it was all combined to a final program, that each person copied and turned in.

    But ofcourse real programmers never trade ideas or code. And everyone does everything uniquely, so no one should have to worry about this at all.

    Could you imagine running this on something like GNOME and KDE? We would discover that both were written by others.

    --
    T Money
    World Domination with a plastic spoon since 1984
  294. What about the good old hacker ethic? by ebyrob · · Score: 1
    It's talking about straight copying of code (with minor changes to fool a cursory examination).

    If we're talking about code that solves a novel problem and does it in a new way, we're also talking about "minor changes" that MAKE IT WORK! I don't fear the programmers who copy others' work. I fear the ones who think they have to write every piece of code they use themselves. (wheel meet reinvention, maintainer meet torture)

    Now, I expect a professor aught to be able to tell the difference between students doing what was assigned and those not doing it. But I wouldn't expect their code to be able to make such a distinction un-aided. Regardless, homework policing is beyond what a university professor should have to do. Do the work or don't, it should be the tests and unique projects that decide your merit. Perhaps professors should be working on getting to the unique stuff sooner if "weeding" is a problem. Or, perhaps we should have grad students teach smaller CS intro classes, instead of professors teaching huge ones...

  295. There can only be one. by spazzm · · Score: 1

    Cuz remember programmers: in the real world you are fired if you consult with a co-worker ;)
    In the real world at least one programmer has to know the answer.

  296. From the guy who wrote it by Uglor · · Score: 1

    My friend Allen wrote the original cheatbuster in 1993. He described it's workings as

    "My version worked by compiling the students' Pascal source code into assember source, which was then diffed. The compiling process got rid of variable names, function names, and a lot of the little variations, and left mostly structure. We then diff'd everyone against everyone else, and output a list of the smallest diffs. All of those programs were then examined by hand to see which ones had real evidence of cheating."

    As a freshman CS major in 1993 and 94, we heard stories from the TAs about the powers of cheatbuster. They ranged from 'a modified diff' to to something involving blood rituals that let professors see the guilt in your soul. :)

  297. A good cheating policy by Dominic_Mazzoni · · Score: 5, Interesting
    The best formal cheating policy I've seen was from Professor Steven Rudich at CMU:

    CMU 15251 Course Document and Cheating Policy

    His policy encourages collaboration and specifically forbids cheating. It itemizes various types of cheating, for example copying from another student, letting another student copy you, and looking at someone else's files online (even if they forgot to set their file permissions).

    Furthermore, he requires all of the students in his class to sign a statement saying that they have read and understand the cheating policy. Not only does that discourage some students from cheating, but it also makes it much easier for him to get students into serious trouble with the school when they are caught.

    In addition to the course document, here's more or less what he had to say on the first day of class: (I apologize for paraphrasing; this is how I remember it) "Nobody plans to cheat. You all must be very smart, or you wouldn't be here. You think you're going to try hard and do well in this class. But later in the semester you'll get busy with other classes and activities, and all of a sudden an assignment will be due in one day and you haven't started. Or you'll be taking a test and realize that you forgot to study an important equation. Or you'll work hard on an assignment and almost completely get it working, but get stuck on one subroutine. Even though you never planned on cheating, all of a sudden you'll find yourself in a circumstance like that and it will seem tempting."

    (BTW, I shouldn't have to say this, but Prof. Rudich's cheating policy is copyrighted. If you're a teacher or T.A., don't copy his cheating policy without his permission. That would be just as dishonest as cheating!!! If you want to use it, contact him and I'm sure he'd be delighted to let you use it, as long as you give him credit.)

    1. Re:A good cheating policy by Fencepost · · Score: 2
      My initial reaction to the ban on receiving assistance from people who've taken the course in the past was that that was a bad idea, but the reasoning given later for the allowed collaboration (that collaborating with someone helps you formulate your own thoughts into a more organized structure) makes sense. That would be something you could get from assistance with some people who'd taken the course, but for others it wouldn't.

      I think the one thing I'd change is that you could get assistance from "approved" students who'd taken the course in the past. Those who were willing (and deemed suitable) to provide assistance in understanding concepts rather than in coding would have to be approved in advance by the professor.

      --
      fencepost
      just a little off
    2. Re:A good cheating policy by SkipChaser · · Score: 1

      Copying excerts for the purpose of review and criticism is FAIR USE, legal and doesn't require permission. However proper credit must be given for recognition and protection of the author(in case the aledged author did not make the original writing and wants to trace where the slander came from). But it is good manners and ethics to ask first.

      --
      Supra et Ultra
  298. Here's an introductory assignment for you by epepke · · Score: 2

    Total: 10 points

    1. (2 points) Given a cheating detection program with a probability of generating a false positive p for any pairwise match of programs and a class size of n students, compute stochastically the expected number of false positives.
    2. (3 points) Assign values for the probability of false positives and false negatives to the appeals process based on an interview with the Dean. Using these values and records of appeals over the past five years from Georgia Tech, calibrate minimum and maximum values of p to within a 5% confidence level. Note that simple division is not sufficient, as the number of false positives varies nonlinearly with class size. Extra credit: Factor in program size (1 point)
    3. (3 points) Graph the probability that a student will be marked with a false positive as a function of class size.
    4. (2 points) Calculate the probability that this program you wrote is cheating.
  299. Old News by MaverickUW · · Score: 1

    I don't see why such a big deal was made out of this. This is old news really. Most universities use cheating scripts to determine if something is wrong. My CSE 142 class at the University of Washington (that's the lowest CS class there) used one in the automated homework turnin. (Yes, for the first assignment, 90% of the class copied off eachother). It seems like it's only a big deal because it sounds like Georgia Tech is the last school on the planet to develop one or something.

    Hrm, now if their cheating script looks like another schools cheating script, do they get in trouble for cheating?

  300. Parent has goatse in the sig. by Anonymous Coward · · Score: 0

    Just wanted to let you guys know.

    1. Re:Parent has goatse in the sig. by Anonymous Coward · · Score: 0

      Too late. Ugh.

    2. Re:Parent has goatse in the sig. by Anonymous Coward · · Score: 0

      But this one is in glorious black-and-white!

  301. Drexel University by Inferno+Intelligence · · Score: 1

    Drexel University has been using a similar cheating software for about a year now. Drexel's checks for minute similarities between all pieces of code submited and then returns a percentage for the chance that that code was copied. I really don't see what the big deal is.

  302. I've seen(and been a part of) worse... by dkroells · · Score: 2, Insightful
    In my later years at my old college, they started requiring each student to sign the source code stating that: "...the student consulted no one else besides the professor on the creation of this program." I can see the point behind checking for similar code, but requiring no outside help is ridiculous.

    But my biggest worry about programs like this is what would happen if someone's code was stolen? This happened to me in one of my early CS classes and thankfully nothing came of it. (Now where did that disk go?) I found out later that over ten people turned in 'revised' versions of my program. Now how would the real programmer prove that out of all of the 'cheaters', that he/she turned in genuine work?

  303. same exact code from coworker by theAmazingTom · · Score: 1
    Cuz remember programmers: in the real world you are fired if you consult with a co-worker ;)

    So how exactly does consulting with a fellow student (or co-worker) result in both parties having identical code? I have to say that this is the most ignorant comment I've seen attached to a slashdot story ever.



    Hopefully you and your coworkers are working on the same exact code. That's what version control is all about. :)
    1. Re:same exact code from coworker by Ionizor · · Score: 1

      I did mean to put the emphasis on students rather than co-workers since that's what the article is about.

      --

      --
      Todd's Law: All things being equal, you lose!
  304. nice by Anonymous Coward · · Score: 0

    "Cuz remember programmers: in the real world you are fired if you consult with a co-worker ;)"

    since when does education have any connection at all with the real world?

  305. What a crock... by Anonymous Coward · · Score: 1, Interesting

    This just goes to show that Profs are really just too damn lazy to ACTUALLY look at the code they grade...

    Oh many ages ago when I was finishing my CS degree, I had an assembly course - I *KNEW* people were stealing my code from the trash because they were too stupid to write their own...

    So I planted stuff in the trash that would print out "I was stolen from ..." when executed... LOL

    On the lighter side - CS Dept's have been wrestling with this issue forever. They've concocted scripts written in a zillion different languages - but for the same reason that we can't filter out all the spam, they will never be able to detect all the cheaters...

    Once the detection mechanism is known it's trivial to avoid - even if your program is "the same" as someone elses...

    My advice would be for CS depts to actually have people with a brain teaching the courses, and have as many assignments as there are people in the course. That is, if you have 20 students, you have 20 different projects - each project is designed to test the same CS concept, but each requires a different program to be written. This would ENCOURAGE thought on the part of the Prof, and the students... Alas, it's too much to expect...

  306. University Of California Uses one too by Anonymous Coward · · Score: 0

    Except its called MOSS
    Measure Of Software Similarity

  307. Suggestions? by Embedded+Geek · · Score: 2
    I know you posted as AC (can't blame ya', really), but I was wondering if you (or anyone reading this post) might have suggestions on catching this kind of cheating. I'm thinking randomly doing the "explain your code to the class" thing might be enough to intimidate the more timid cheaters.

    And, yes, I know it's against the interest of the AC that posted his account of pay-for-code to help me out here, but I thought I'd give it a shot.

    --

    "Prepare for the worst - hope for the best."

  308. Smart students use Extreme Programming by L1nuxMn · · Score: 1

    Many of the students caught "cheating" may have been applying an Extreme Programming technique called "pair programming".

  309. Cheating teaches nothing by Anonymous Coward · · Score: 0

    I just finished up an intro class in CS, (creativly named "Introduction to Programming"). I had so many oppurtunities to cheat, but wouldn't learning the concept I'm paying $1500 for be more worthwhile? Cheating teaches you nothing. You might pass a test, or an entire class, but if you rely on cheating in college, how will you survive when your job is on the line? Copying someone else's code off the net sounds just like copying an essay off the net and changing the words around and handing that in. If you want to program, then learn to program your own stuff. If you have a hard time programming simple stuff, maybe you shouldn't be in CS. Put the effort of cheating into where it's more acceptable, like political science.

  310. You gotta be fucking kidding me! by smack_attack · · Score: 1

    There are three types of programmers:

    1) collaborative coders
    2) solo coders
    3) adaptive coder
    4) copy coders

    Guess who's getting the most done?

    1. Re:You gotta be fucking kidding me! by smack_attack · · Score: 1

      5) those who can't count, durrrrr

      I can't believe I just did that, ha.

    2. Re:You gotta be fucking kidding me! by 3am · · Score: 2

      First, I totally agree with you (if you're implying #1 like i think you are).

      Second... I agree that collaborative coders are, when all is averaged out, the most productive (and most pleasant to work with). However, at least were I got my BA, there were several large partner/group projects in a semester in addition to the individual assignments. So you did learn how to work with others (and part of the project grade was based on your ability to work with the others).

      If not collaborating is part of the rules for an assignment, you just have to respect that. And since the program only does a syntactical analysis, you can still have discussions about higher level architectural issues (which is more important, anyway).

      --

      A: None. The Universe spins the bulb, and the Zen master merely stays out of the way.
  311. O-O Paradigm Encourages "Cheating" by Anonymous Coward · · Score: 1, Interesting

    Whoa... they use such a "cheat" detector in their O-O course, yet teaching O-O teaches "reuse". Well, I see a dichotomy there, even if others do not. If I am reusing my own objects, fine; but reusing others.... wait, isn't that how the real world works? It does in my organization. For Christ's sake, anything in the world of source code can be construed as "non-original". Only some new algorithm would hold under scrutiny as "original". Don't teach reuse if you are going to scan the student's code for reuse .

  312. Something's not right.. by savage_panda · · Score: 1

    This was used for two undergraduate classes: "Introduction to Computing" (required for any student in the College of Computing) and "Object Oriented Programming" (required for Computer Science majors)." Cuz remember programmers: in the real world you are fired if you consult with a co-worker ;)

    They use it for Object Oriented Programming class, yet the entire concept of OOP is code reuse. That's a contradiction. It would mean If program A is: class foo{ main() { cout "foo" endl; } } Then this program will get you expelled. class bar{ main() { cout "foo" endl; } } And this will give you an A. class bar : public foo;

  313. vt uses MOSS by mickeyreznor · · Score: 1

    our profs at vt use MOSS to figure out if we are cheating or not.

    The only people that i've seen caught with it, though are the really lazy people(those who just copy their program without even attempting to make it look like their own)

  314. Arg by Anonymous Coward · · Score: 0

    First of all, did anyone else actually read past the title of the article? The article is about an astonishing amount of cheating in the classes, not the amazing advance of cheatfinder. Nobody is claiming that cheatfinder is original, they even mention similar things for English papers in the article on Yahoo. However cheatfinder does have some advanced portions to it from what I've heard, however I have not actually seen it run nor the code.

    Cheating is a problem in the two mentioned classes. The point of the programs is to help teach the material for the class. Understanding what an AVL tree is and how to implement it by glancing at lecture slides doesn't work for most people I'm willing to bet. With the programs, the students have some experience in everything taught in the class (or at least the main material, a few offshoots aren't given as assignments). If people are cheating on the programs, they aren't learning the full material they should, and may be able to slide by just by knowing some key words on the test. (Example question: which is a heap and which is a BST...) If you want to work with someone who has a degree in computer science but can't program a binary search tree, then there's something wrong with you, cause your boss isn't going to notice that you have 100% working code and theirs does nothing, instead he's going to notice that the two of you only have 50% working code. Have fun getting yelled at.

    Also, in addition to running cheatfinder and finding similarity, all of the suspected students will go through a formal trial system where they can defend themselves against the charges (no lawyers or anything). I'm not entirely sure how the trial system works, but I know that it is fair to the students and those who are innocent will be able to demonstrate that.

  315. Big Deal! by jarran · · Score: 1

    We've had a similar program here at the University of Bristol for years!

  316. University of Utah by pavera · · Score: 1

    the University of Utah also uses one of these to keep students from "cheating". in fact in my last cs course 5 people were kicked out of the major because their code was "too similar" it wasn't even exactly the same, but they had too many similar styles/variable names. Of course, if anyone was thinking that college actually prepared you for the real world, they were always wrong, but whatever, I didn't go to college expecting that so I'm not suprised that its not preparing me for it.

  317. Cheating. by Anonymous Coward · · Score: 0

    This would be a nonexistant problem if profs would just assign different assignments to everyone in the class. Oh wait they want to have the simplicity of one stlye of project and not have the hassle of checking for cheating.

  318. Stephen Ambrose, watch out! by MattJ · · Score: 4, Interesting

    As you may have read, bestselling historian Stephen Ambrose was recently caught having lifted sentences and even passages from other sources, and passing them off as his own writing in his books. (While he mentioned the source books in footnotes/endnotes, he did not put the cribbed text in quotes.) At least four different Ambrose books have now been shown to have the same pattern of lifted, unattributed passages.

    These instances only came to light because an author of a lifted passage noticed it while reading Ambrose's book. Subsequent episodes came about because other authors started looking, and now some people are checking out new likely sources; this works because Ambrose only lifted passages from books that he admired and heavily footnoted (at least, so far as we know!).

    Perhaps Ambrose was really just lazy, as he was fairly open about crediting others for the ideas (he "just" failed to credit them for the words, too). There are many cases of sneakier plagiarism than that, both in academia and in journalism.

    So, class, the programming problem for today is, given the text of two books, spit out the most likely candidates for lifted passages, based on length and similarity of words. You get a B if you can do this for exact, verbatim matches, an A if you can do it with individual word substitution, and an A+ if you can recognize re-ordered clauses. The end users for this tool would be 1) authors everywhere who want to protect their own writing, and 2) journalists looking for juicy plagiarism scandals.

  319. Been There, Done That by trefoil · · Score: 1

    We (it was a project for the grad students) to write an online project submittal system that included a system to address cheating. We checked for white spaces, variable naming, complexity analysis, etc...

    of course, with simple programs there's the issue with triviality (e.g. "Hello World") and with those types of programs we just flagged them and left them to be dealt with by the discretion of the professor or TA.

    I think that these types of programs are good, but for more complex programs. Honestly enough, there are only so many ways to do a "Hello World" program when you're dictated a structure to use and what features of a programming language to use. (e.g. pointers aren't ususally taught until the later end of first year programming classes)

  320. News?! by Anonymous Coward · · Score: 0
    Here at the University of Nottingham School of CS & IT, automatic assessment is a research area. We are onto the second generation system now -- Ceilidh was used here, and at other institutions, for over 10 years. We now have CourseMaster, a pure Java client-server system.

    So the idea is hardly hot news.

  321. Been done before at Georgia Tech by mencik · · Score: 1

    As a graduate of Georgia Tech's Computer Science program (BSICS 1981), I can tell you this has been done before now. I was an assistant for the Survey of Programming Languages class and as such graded programs for the course. I found several duplicate LISP, PASCAL, and SNOBOL programs, down to the placement of which columns that parens or semi-colons were in, that also had duplicate comments. Those I found simply because of recollection of what they looked like in the prinouts. After that, some simple "diff" runs on the submitted files turned up others that I might have missed had I looked only at the printouts.

    It amazes me that people are dumb enough to think they won't get caught. Some of the folks that submitted copies even forgot to take out the comments that included the name of the person they copied from!

  322. Re:Real-world vs. school - Villanova University by Anonymous Coward · · Score: 0

    You've never been to Villanova University, where collaboration is punished by death at all undergraduate and graduate levels in the Computer Science program.

  323. LAMENESS.COM by zoomshorts · · Score: 1

    Back in school, a cheesy community college, we had one professor who always used a program called SHERLOCK.EXE to compare two files. She thought this was an infallible method to catch cheaters. We, as a class, chose to mess with her mind one day. We all submitted the same program for a weekly project, but we GREPped the hell out of the program, changing variable names willy nilly and rearranging the procedure calls. Then to add some insult to injury, we added superflous comments here and there. Wahoo, the program did not flag a single instance of "cheating". Sure the include files/libraries were the same, what could she expect? I personally had one include file that contained all the required libraries. The layout was identical for all programs, being a requirement. Wubba wubba. Exactly how many ways can you execute the same algorithm? Gazillions, or 34 to be exact. Just to let you know, we told her about her GREAT program and it's limitations. Bummer for the next class, but my group got decent grades. Yes the program worked per specification. Ho hum.

  324. duh by Anonymous Coward · · Score: 0

    So what is this "new technique" that lets them detect cheaters? diff file1 file2? Sheesh.

  325. Can you spell? by Anonymous Coward · · Score: 0

    I mean, it seems you are in college. How did you get admitted without being able to spell? Just wondering.

    1. Re:Can you spell? by Anonymous Coward · · Score: 0

      Speeling ins't evan neccesary just use a spell checker.

  326. Nothing new by Anonymous Coward · · Score: 0

    They've been using something like this at the University of Michigan for years.

    For each class there is a database of every student and teacher solution to the assignment going back several years (maybe all the years they've used electronic submissions). It checks program stucture, etc... so simple changes of variable names will still be caught.

    Thing works pretty well too. (but yes, I have seen ppl beat it.. Most get caught though)

  327. Implemented at Notre Dame?? by tlh1005 · · Score: 1

    Maybe they should focus more on writing code that detects someone cheating the hiring process and/or discrepancies in media guides.

  328. Collaboration, Teamwork are essential skills by billstewart · · Score: 2
    Collaboration/Teamwork/Group Projects are critical for undergrad CS majors and for anybody in other fields who are going to do computer-based projects in their own fields once they're in the real world - and they're especially criticial for "nerds" who may lack effective people skills.


    Sure, CS100 classes and maybe the second or third programming classes a student takes don't need collaboration, though many students will need help (i.e. teaching, even if it's not done by a professor) in understanding what's going on with their programs, why they're not working, learning to use the cardpunch (:-) or editor or whatever local facilities you have. But by the third or fourth programming class you're taking, you should be doing things that are large enough to require group work, whether it's writing a small operating system or writing a simulation of some complex activity, because most real projects are too big for one person to do.

    • How do you develop requirements jointly?
    • How do you define interfaces between modules in a program?
    • How do you make sure the program is modular enough that each person can write their own sections and have the code work together?
    • What parts of the program structure are global or semi-global and what parts are strictly local?
    • How do you resolve conflicts over modularization, or style, or documentation quality, or EGO, or work speeds?
    • How do you make sure some arrogant super-programmer doesn't force the entire team to do things *his* way (not only so other students get to learn something, but also because real projects often do require collaboration, or have parts that you can't change.)
    • How do you adapt to changing requirements?
    • How do team members work together on discovering the real requirements, or when finding out that they're not the original requirements, or that the system doesn't actually work because of hardware limits you hadn't known?
    • How do you split up work when the combined project has a speed/performance constraint?
    • How do you fix it if it's too slow?
    • How do you learn to communicate with other programmers, who may be working with your simultaneously, or may be the person who was working on it before you got here, or who will work on it after you're gone?
    --

    Bill Stewart
    New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
  329. No offense... by Dr+Fro · · Score: 1
    I've seen about 15 "diff" comments... hopefully sarcastic?

    A decent program doesn't just do a String compare, it checks the structure i.e. if you change variable names and minor details it'll still catch the duplication.

    Of course, why this is terribly relevent when the program was written several years ago and plenty of other places have implemented this sort of stuff since... not my place to say :)

    --
    ********************
    I object to Intellect without Discipline.
  330. Bull. (wrt work anyway) by achurch · · Score: 2

    So how exactly does consulting with a fellow student (or co-worker) result in both parties having identical code?

    I have to say that this is the most ignorant ... well, you get the idea:

    John: Hey, Bob, you got a sec? I'm trying to get this stupid utility done and it's not working right ...

    Bob: Yeah, sure ... hmm ... hey, I wrote something just like this a while back. Hang on, lemme go look for it.

    (a few ls's, cp's, and cc's later)

    John: Cool, thanks!

    Granted, school and work have different goals (learning vs. getting things done) and this argument doesn't apply to students, so I agree with the point that students shouldn't be copying without actually thinking about the assignment, but for the same reason it's absurd to say that co-workers shouldn't just copy code either.

  331. I assume you took his money? by billstewart · · Score: 1

    Dumb cheater like that deserves to have you take his money and give him an Obfuscated C Code program that
    prints out "you fool, I AM the TA".

    --

    Bill Stewart
    New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
  332. Nonsense! by jarran · · Score: 1
    Have you ever marked 50 undergrad programs? It can be very hard to spot copied programs. Sure, no two programmers are alike, and if two people submit identical code you may realise that you've seen that style before, but students are seldom THAT dumb.

    Besides which, this a boring repetitive task, exactly the kind of task computers should be used for. Why check for cheating manually which takes hours and is really dull if a computing can do the work for you?

    No-one is suggesting that computers replace marking work, just that they ease the pain a bit.

    1. Re:Nonsense! by Anonymous Coward · · Score: 0

      So figure something out that will help you grade it. Or give assignments that are more amenable to grading.

      Please don't put this in the hands of a TA who can barely wipe his ass with toilet paper.

  333. Ever seen a compiler detect cheating? by brumby · · Score: 4, Funny
    When a friend was taking a prac class a few years ago, he had the following happen.

    A student came up and said "I've written all of the assignment, but the compiler is broken." My friend looked at the error output from the toy teaching language compiler.

    "Unknown keyword 'From:' in line 1 'From: student2@cs.university.edu'"

    "Unknown keyword 'Subject:' in line 2 'Subject: Assignment 2 answers'"

    ...and so on.

    The student tried to insist that it was all his own work.

  334. GUGC had this over 10 years ago by Immn · · Score: 1

    GUGC (Griffith University Gold Coast) had a similar thing in place 10 years ago. It was used for COBOL assignments, but could be adapted to other languages. It compared literal blocks of text, parse trees, variable names etc. I'm pretty sure Colin Thorne wrote it. You could take a program, cut it into sections, remname large chunks, move things around and it would assign a correlation with other works in the class.

    You could then set 'honeypots' up and see if there was a pattern of collusion or plagiarism.

  335. Similar code by Suicyco · · Score: 2


    I was also thinking, for some types of projects wouldn't the code come out quite similar if it was done correctly? If you are teach C++ classes, and were implementing some simple program to test the knowledge of the students, then a correctly written program would be very similar to another correctly written program. Otherwise you are not teaching standard techniques very well, imho. A shell sort is a shell sort, not much difference between properly implemented versions.

    1. Re:Similar code by Legion303 · · Score: 2
      My guess is that it would depend on the size of the program. Since coding is like writing an essay, there are probably as many ways to code a program as there are of writing about, say, European history; two different papers will have many of the same elements, but should differ in style.

      -Legion

  336. what if the students have used c/etags? by Anonymous Coward · · Score: 0

    what if the students have used c/etags? Then there screwed!

  337. This isn't new by MongoMonster · · Score: 1

    The university I go too have been using a system like this in it's introduction to algoritms course for about 2 years. It doesn't just check for exact copies but will detect copying even after minor changes. It also looks at the size off the code, because the probability of similar programs is higher for shorter programs

    1. Re:This isn't new by MongoMonster · · Score: 1

      I might add that the university is the Norwegian University of Technology and Science in Trondheim Norway

    2. Re:This isn't new by given_to_fly · · Score: 1

      Exactly.. old hat..

      When i was going to UC Santa Barbara (1996-2000) they had a bite code checker that compared code from the very beginning there.

      --
      "I'm like an opening band for the sun" -Pearl Jam ; Yield ; Push Me , Pull Me
  338. Re:[edited] what if the students have used c/etags by Anonymous Coward · · Score: 0

    Sorry I meant indent, its been a hard day! :)

  339. Using "indent" or other prettyprinters by billstewart · · Score: 1
    Yeah, we also were strongly pressured into using the One True Indentation/Punctuation Style in the first couple of undergrad courses.


    Sometimes the formats are the same because people use automated tools, like indent. Somebody else mentioned EMACS automatically formatting code.
    And if you develop your code in traditional newbie style - write some code that doesn't work, hack on it for a while until it actually does work, and send it in - then you probably should run it through indent or your favorite language's equivalent reformatter anyway.

    --

    Bill Stewart
    New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
  340. way to get around by jrockway · · Score: 1

    Couldn't you get around this by adding extra functions or something... say your program is this:

    int main(int argc, char **argv){
    printf("Hello, World!\n");
    // do work
    return 0;
    }

    you could change it to:

    int work(int argc, char **argv){
    printf("Hello, World!\n");
    //do work
    return 0;
    }

    long int factorial(short int n){
    // calculate a factorial, recursively :)
    }

    int main(int argc, char **argv){
    int r = 0;
    factorial(16);
    r = work(argc, argv);
    return r;
    }

    --
    Would this get through the cheating detector? With that added factorial and work call, it doesn't look at all the same (and it uses more CPU ;). But the end result is the same; the program prints "Hello, World" and exits with status 0.

    And if your teacher asked "why the extra factorial", you'd say "i just wanted to try recursive functions! The program still works, right? And it completes the assignement."

    And she would say "ah yes! what a wonderful student."

    Heh heh heh.

    --
    My other car is first.
  341. Some irony hear by arkansas · · Score: 1

    So Georgia Tech has an (arguably) sophisticated system for detecting cheating. You'd think what they really need is a decent system for detecting lies on resumes.

    For those who don't follow - the former head coach of their football team (George O'Leary) lied on his resume, including degrees from schools he never attended.

    1. Re:Some irony hear by Anonymous Coward · · Score: 0

      Sorry, try again. He did attend all the schools he said he got degrees from.

  342. I don't ever want to work for you. by BlueFrog · · Score: 1
    There's something strange happening (I call it cheating) when someone can graduate with a CS degree yet never use dynamic memory allocation knowingly...
    There's something strange happening (I call it bullshit) when employers see college Computer Science programs as trade schools for C programmers.
    In the real world, you don't get partial credit for a program that only dumps core or doesn't meet any of the design objectives.
    College is not the real world. That seems obvious, but you don't seem to have thought about it much. Professors, TA's, etc. are trying to teach computer science, not train programmers.
    No wonder the software industry is such a mess. I've seem CS *GRADUATE* students who couldn't use malloc().
    You might be amazed to see what those graduate students have achieved without malloc().

    Lemme tell ya, if you're not going to hire me simply because I don't know what malloc() does, then you can keep your job.

    If you're finding that 95% of the candidates you talk to can't write a sort routine, and that you're having to fire people because they can't "program simple stuff on thier own," then you might want to re-think your hiring process. Sounds like you're getting all the wrong people.

  343. NO THIS IS NOT NEW by sofar · · Score: 2, Interesting


    Dear professor Andrew S. Tanenbaum of the free university of amsterdam and his colleagues already used this kind of program to check the hand-in programs we students wrote in modula-2 back 8 years ago or so, and actually it was kinda a big thing in dutch news back then. Guess these guess just reinvented the wheel.

    so /., this time you've really dug up old news !

  344. You're all missing the point by mumstakovich · · Score: 2, Insightful

    The point of the Yahoo! News article was not that Georgia Tech, like many other universities, is using cheat detectors, but that out of 1700 students last semester, it nailed 187. That's around 11% and seems to be news-worthy to me.

    --
    "Which is more musical: a truck passing by a factory or a truck passing by a music school?" - John Cage
  345. So? by Kupek · · Score: 2

    Virigia Tech has had something similar, and maybe better, for some time. It was written by a graduate student (I believe), and it pays no attention to variable names, it purely focuses on the syntax of a program. Programs with a similar enough syntax are flagged and looked at by TAs.

    I know because I went through the process (long story), and it's mentioned at the beginning of any coding-intensive class at the 1000 or 2000 level.

  346. How is this *new*s? by alexmeaden · · Score: 1

    My college (University of Kent at Canterbury, UK) has been using this kind of software for years for CS code (mainly Java, but also Haskell, C, Occam and a few others. Isn't really news!

  347. The real world by jesser · · Score: 2

    Cuz remember programmers: in the real world you are fired if you consult with a co-worker ;)

    That reminds me of something that happened during a CS lecture last year...

    Prof: All of my tests are open-book, because the real world is open-book.
    Jesse: Can I use Google during a test?
    Prof: No.

    --
    The shareholder is always right.
  348. stdio by Anonymous Coward · · Score: 0

    do u think they all got busted for copying stdio from eachother! :)

  349. Real world by p3d0 · · Score: 3, Funny
    Cuz remember programmers: in the real world you are fired if you consult with a co-worker ;)
    And remember, the primary purpose of school is to simulate the real world.
    --
    Patrick Doyle
    I mod down every jackass who puts his moderation policy in his sig. Oh, wait a sec....
  350. So.. everyone would fail the first assignment... by josquint · · Score: 1

    Our first assignment in BASIC progging in high school consited of..

    print "Hello World"

    I should think there aren't THAT many permutations of that :-)

  351. Variations by James1006 · · Score: 1

    While I can understand that direct copying could be easily caught, does this thing go down to every exact detail?

    Oh my, you used the same variable "name" here and so did Johnny. Thats a bit ridiculous.

    Granted there is more than one way to do everything, but how many are there, especially on the introductory level (ie, basic Hello World applications).

    I'm all for students doing their own work. I just don't think innocents should be persecuted like this.

    --

    - Nothing is true, everything is permitted
  352. Duplications can happen naturally by cybersquid · · Score: 2, Informative

    I remember taking a class (I think in BASIC) at a community college. I already new BASIC, had been programming in it for several years. (I was only taking the class for the easy credits.)

    After a test was turned in, the teacher called me over. He showed me a code fragment submitted by another student. It was practically identical, even to the variable names. (Of course, in this old dialect of BASIC, variables were single letters.)

    How did this happen? Outside this class, the other student and I were collaborating on an astrophysics simulator (also in BASIC) for another class. Today, our style of coding is called Extreme Programming. In the course of this we had tacitly developed common coding conventions and styles.

    Even so, I was surprised how similar our independent output was.

    Fortunately for me, the teacher was a friend of mine and he believed my explanation. Even so, I sensed some doubt on his part. Were he a relative stranger, things might have gotten messy.

  353. Everything I learned... by mjjmoellering · · Score: 2, Funny

    I honed my programming skills in college by writing a 10,000 line perl script which tranforms other students' work in ways not identifieable by automatic cheat detectors.

    -mjjm

    ---

    Nothing is more depressing than the sight of people who believe they are following collective manias of thier own free will.

    --Czeslaw Milosz

    --
    Nothing's more depressing than the sight of people who believe they're following collective manias of thier own free wil
  354. Stupidity detector by Anonymous Coward · · Score: 0

    Any student not smart enough to do a global search & replace on the variable names, function names and comments in the code they have "borrowed" from another student deserves to be flunked! Plus, you can't really flunk a student for using the same logic as another student, can you? The only real defense against cheating is teachers/proctors that know what the hell they are doing. And yes, I was a computer lab assistant in college...

  355. Asymptotic notation abuse nitpick by Kinthelt · · Score: 1

    Big-Oh notation doesn't mean anything in terms of how difficult the problem is. For this, you should be using Big-Omega.

    --

    "Evil will always triumph over good, because good is dumb." - Dark Helmet (Spaceballs)

  356. Two brothers that coded alike.... by zerofoo · · Score: 2, Interesting

    I used to work for two brothers that were coding (seperately) modules for a project. Their code looked almost identical; variable names the same, data structures and algorithms almost identical...

    These two both had the same training, and guess what...their code looked really similar.

    Besides, how many different ways can you code "hello world" without failing for using inefficient/bad programming style?

    -ted

  357. GT CS Cheating Detector Is Actually New by SkullMac · · Score: 1

    Actually, until this past semester, the cheating detector was simply an urban legend here at GA Tech. It didn't exist, or at least not to the extent that the professors described it. Sure, some students were caught cheating in the intro CS class in thr past, but the majority of those cheaters were turned in by a friend, roommate, or even themselves.

    The professors have always described the cheat finder as a white-space-eliminating, pattern-matching, we-will-catch-you-every-time cheat detector. This went on for years, when in fact the real script was quite lame. It is my understanding that the previous script was a simple "catch em if they copy code exactly" script.

    They finally deployed the legendary cheat finder once and for all at the end of last semester, and caught a significant number of students. Why did they catch so many students? An improved cheat finder can't be the only reason, and it isn't.

    - Last semester was also the first time (that I know of) that the same CS course was required by all entering freshman (yes, even management majors and such). What do you expect when you put a bunch of people in a class who don't give a hoot about programming (let alone people who don't know you can actually catch cheaters automatically)?
    - Last semester was the first time an actual executable language was used for intro cs. Prior to that, GT was using pseudo code. I'd think the temptation to cheat is higher when you can readily see if your program works or not before you turn it in.

    1. Re:GT CS Cheating Detector Is Actually New by Serpent+Mage · · Score: 2, Informative

      Actually, until this past semester, the cheating detector was simply an urban legend here at GA Tech.

      That is incorrect. I was an STA (supervisor teacher's assistant) at Tech from 1997 - 2000 and I even modified some of the code for the cheat finder (which is a perl script). It is not an urban legend and has been around since about 1992.

      The professors have always described the cheat finder as a white-space-eliminating, pattern-matching, we-will-catch-you-every-time cheat detector.

      The code does in fact throw away ALL variable names, function names, indentions, white spaces, braces, and other irrelevant items. It then does a comparison and anything below 97.9% similarity is thrown out as a non-cheater. Everything else is FLAGGED and then reviewed by 2 TA's and ALL the professors currently teaching that course.

      They finally deployed the legendary cheat finder once and for all at the end of last semester, and caught a significant number of students.

      As I said I've been an STA for a long time and I personally have sent over 10 students during that time to the dean and every semester we averaged about 20 to 40 cheaters. Of that 3 year period ONLY 2 people were exhonorated and 7 people claimed they did not do it. The rest even admitted to cheating.

      The reason last semester so many were caught is because there were many students who believe that cheat finder is a legend. When you go around telling people that there has been a cheat finder since the early 90's and very few people can actually confirm this people do believe it to be an urban legend to scare kids and people are just wanting to take more chances the more they believe things are just scare tactics and nothing more.

    2. Re:GT CS Cheating Detector Is Actually New by vivianeq · · Score: 1

      I took the 2nd cs class this fall @ GT and I can confirm that no one really thought a (reliable) cheatfinder could exist. It wasn't until a close friend of mine was charged with cheating summer semester that I realized they weren't kidding around. Of course the profs make it very clear the first day to guard your code and never let anyone else see it. I think the biggest reason that people didn't believe in the cheat finder is because accused cheaters are turned in at the end of the semester. Therefore you don't hear about classmates getting caught.

      Also after one of the assignments (project 2 or 3) there was a newsgroup posting from a CoC official announcing that many people were found to be probably cheating. She offered that anyone who was guilty email her and she would give them a zero and spare them. This should have been a wake up call for everyone.

      Personally I realized that the dept was militantly anticheating and that I should make very sure to stay away from anything that could be construed as cheating. Anyone who would actually cheat in CS is pretty stupid.

    3. Re:GT CS Cheating Detector Is Actually New by zorba1 · · Score: 1

      the cheating detector was simply an urban legend here at GA Tech

      - Nope, it was there before I got to Tech, which was back in 1997.

      when in fact the real script was quite lame

      - It got progressively better every time. It was never perfect - I think you heard "perfect" when we the TAs said "good".

      What do you expect when you put a bunch of people in a class who don't give a hoot about programming...

      - Actually, if you take the average cheaters when the class was CS-only, and you take the average # of cheaters now, when the class is required for most everyone, you'll find the average has gone up. There were many privy conversations in my time as an STA as to the phenomenon of rising cheating rates "per-capita".

      Last semester was the first time an actual executable language

      - No, you're just plain wrong here. Scheme was taught a year before as a test run, and before that (wayyy back) we used PASCAL, which, to my knowledge, compilers still exist for.

  358. My experience with "cheating"... by StevenMaurer · · Score: 3, Funny

    Was in a class where the instructor asked us to write a program to perform an ascii sort of a file (kind of like 'sort' actually). I specifically asked if we could use libraries, and he said yes. Of course most of the students were using Pascal...

    You can probably guess what I did. My program featured the prominant use of "qsort()" out of the C library. Even though I had learned about callbacks with the thing, he really didn't like it. Made me go back and reimplement it so that there was an actual "sort" being performed in my code. Ug.

    Now I'm a Principal Engineer.

  359. NIH by Anonymous Coward · · Score: 0
    "wasn't built here"


    That's NIH, or Not Invented Here, syndrome, and yes, it is a major problem in this industry, caused mainly by developers' perception that it's easier to write their own code than to understand somebody else's. In fact, it may be quicker to write your own, however, somebody else's code should already have been debugged, which usually takes longer than writing.

  360. Naive Article by Anonymous Coward · · Score: 1, Interesting

    First of all, this is no innovation, and therefore doesn't qualify as news. I am a University professor, and we had more-sophisticated plagiarism detectors in use as far back as the middle 1980's at SUNY Potsdam, and I'm sure other colleges were doing it earlier.

    Secondly, (as many posters have indicated), there is a difference between consultation and copying. I can't tell you how many CS-1 students I have had over the years who were mentally unable to either read or write code! In many cases, these were hard-working students who, while otherwise highly intelligent, simply did not have the correct wiring in their brains to be programmers. Driven to desperation (these students are entirely un-used to failing courses), they take someone else's code, and, with no understanding of what the code actually does, make cosmetic changes, and submit the program as their own.

    Programs modified in this way can be matched with their original in several ways, most of which require no CPU assistance: 1) The program contains a wierd error or unusual logic. When the grader sees this, a bell goes off in the brain, and then you look for the program where you first saw the same pattern. 2) Identifiers are slightly "off". For example, a variable that should be named "speed" is instead named "how_fast". When many identifiers are slightly misnamed, it is a good sign of use of global-search-and-replace. 3) (Used after plagiarism is suspected) The window test: put one listing on top of the other, looking to see the "envelope" of the text to see if they essentially match. 4) A computer program can match programs using several techniques. It can count tokens, compute a moment of inertia on the text, or do a simple diff, among other techniques. This fourth family of techniques works better than the others when you are mass-producing CS-1 students; the others work better when the professor does the actual grading him(her)self.

    In any case, an accusation of plagiarism should not be made until a human being has personnally inspected both listings. In my case, I don't assert plagiarism. I summon the individuals into my office and state, "These two programs look remarkably alike. Would you care to explain?" Usually, self-incrimination is the result.

    More-sophisticated copying probably cannot be easily caught. However, it is usually easier to write the assignment yourself than to take someone else's assignment and re-write it so that the copying won't be detected. In any event, if a student has the mental wherewithal to edit another program into something that both evades plagiarism-detection and also works, that student probably could successfully write it him(her)self anyway.

    In my courses, I have just introduced a new plagiarism-deterrence policy: on exams, I will give a problem on an exam that is similar to one that had been assigned as a programming project. My syllabus specifies that if the student cannot solve a problem on an exam that (s)he has solved successfully on a project, that project will be assumed to have been plagiarized.

    1. Re:Naive Article by Legion303 · · Score: 2
      My syllabus specifies that if the student cannot solve a problem on an exam that (s)he has solved successfully on a project, that project will be assumed to have been plagiarized.

      Congratulations on nailing a lot of innocent students with that one.

      In my college programming courses I always learned just enough about the commands and functions to get a project done, then promptly forgot what I'd learned, only to relearn it when cramming for exams. The thing about cramming, though, is that you usually can't relearn everything.

      -Legion

  361. Old? by jdevons · · Score: 1

    Wasn't this written yeeears ago?

    ?> diff jims/file1.cpp janes/file1.cpp

    --
    I do everything the voices in my head tell me to...
  362. Definetly not news by fcrick · · Score: 1

    I'm a teaching assistant for Harvard University's intro CS course. We have our own custom made software we've used for many years successfully, comparing every students code to every piece of code ever handed in for that assignment. The program identifies code that is similar so people can look and see if people have cheated.

    Very few people are allowed to use the program (i'm not), but everyone who uses it comes back absolutly astounded at how difficult it is to fool. I guess changing your variable names won't save you here...

    The program run for my class, interestingly enough, apparently gets more people thrown out for cheating every semester than every other class at the college, put together. People, for some reason, don't take its existence seriously...year after year after year...

    --
    Your signatures belong to me.
  363. And in other news... by tswinzig · · Score: 2

    The cheating community dealt universities a harsh blow today when they unveiled a Perl one-liner that thwarts all attempts to catch cheaters with their fancy-schmancy new program.

    --

    "And like that ... he's gone."
  364. UIUC technology by jbischof · · Score: 1
    Sorry to dissapoint, but at the University of Illinois there has been similar technology implemented for at least 4 years (while I was here) but probably longer.


    The technology not only detects exact matches, but it compares memory allocations on two programs so that massive search and replacing, whitespace, and subroutine order does not matter in match detection. The professors frequently threaten students with the cheat detecting program, however in large classes (~60+) it would be quite unreasonable to compare each student to every other student, so they must use some scheme to pick who gets compared. Most recent submissions or random detections are possibilities.

    I really don't see why this is a big deal.

  365. Why intro computer classes? by tcort · · Score: 0

    Why do it to intro classes. All the assignments are so short that most programs will be alike. Why not do it only on longer and more drawn out assignments.

    I bet this program would bring up some flags:

    #include

    int main() {
    printf("Hello World\n");
    return 0;
    }

    -TC

    1. Re:Why intro computer classes? by tcort · · Score: 0

      The stdio.h inside less than and greater than symbols got stripted.

      : (

      -TC

  366. More of Deterrent.. by dwptempacc · · Score: 2, Interesting

    This really isn't that new at all. I did some development on an autograding system at UCSD and incorporated a cheat detector using an age old system developed at Berkeley called MOSS. You simply tar up all your files and send them via mail to moss and they send email back to you with a link to an html page that gives percentages and all. Great system, uses program structure and logic to determine matches not commments and variable names. Give Berkeley the credit. DWP

  367. I beg your pardon by Anonymous Coward · · Score: 0

    Cuz remember programmers: in the real world you are fired if you consult with a co-worker ;)

    The point of not cheating is so that the person learns something. Then when you consult with your coworker they may actually be able to help you.

  368. Berkeley's MOSS by Anonymous Coward · · Score: 1, Informative

    .. has been doing this, and doing it better, for years. I used it as a TA in Brown's CS department, and it helped us track down quite a few cheaters.

  369. GaTech program by foQ · · Score: 2, Informative

    I am in Intro to Computing this semester at GaTech, and we had a 20 minute lecture yesterday about this very topic. They do not automatically kick you out of school if your homework or project gets kicked out by the program. In fact, my professor told us that he got 87 of these papers that he had to hand check over christmas, all of which were found to be cheating. The program checks for similarity where there should be differences, and takes the purpose of the program into account, so that variable names can be changed and you'll still get caught if you are cheating. The program is very sophistocated, it is not merely the 'diff' command.

    The reason that so many different people get caught is that they only review the cheating at the end of the semester, so it gives everybody who wants to cheat the opportunity before they are caught. EVERY student is told all of these details in lecture at the beginning of the semester, so it should not be a shock, but some people don't believe that it actually exists and don't even try to change things. Some people put their CS programs on the network, or leave them on a shared computer and other people steal them without even knowing the other person. The administration is generally pretty good about finding those who are guilty, and those who are merely ignorant. But as the article indicates, most people are just plain cheating.

  370. Tech Sucks a Fat One by Anonymous Coward · · Score: 0

    I will just come out and say it how it is... GT sucks a fat one, all they are out to do is shaft us students

  371. I favor story of cheaters by mpost4 · · Score: 1

    I remeber there were some cheaters who caught and the why they were caught was that both of their assiments did the same thing, to bad for them the assiment did not call for that and I don't know how they got that interpertation.

  372. Not COBOL by Anonymous Coward · · Score: 0

    I wrote the original one in RPG II.

  373. Using a detector which *CHEATS*?! by khym · · Score: 2

    How low will Georgia Tech stoop?!

    --
    Give a man a fire, and he'll be warm for a day, but set him on fire, and he'll be warm for the rest of his life.
  374. Purdue's anti-cheater code, circa 1987 by bee · · Score: 2

    Purdue had a simple but effective cheater-detector back in 1987 or so when I was in grad school there. It ignored variable names and comments, and simply stripped a program down to a list of keywords and tokens (for C, things like if, switch, =, etc; there was a Fortran one too). Then it took the case-insensitive token list, and ran sum on it. Then it took the sums of all the student programs, sorted the list, and ran uniq -d on it. (This was more efficient than just running a massive diff.) Matches were considered potential cheating cases, and were examined by hand. Usually they were, and usually it was fairly obvious that they were. This method didn't care about renaming variables, or comments, or indention, so those common methods of hiding cheating failed. It was effective enough to keep freshmen and sophmores honest, so it did its job.

    --
    At least mafia-owned pizzarias make excellent pizza. Compare to Bill Gates.
  375. Saw this 20 years ago by LazyBoy · · Score: 1

    I saw something like this at my school in the early 80's.

    Not too sophisticated -- eat the whitespace and comments, change the variable names to a1, a2, a3, etc. Change the function names to f1, f2, etc. Diff.

    I don't know if it had a parse tree. (I probably didn't know what that was at the time.) Never heard of anyone being accused because of it.

    --

    If Chaos Theory has taught us anything, it's that we must kill all the butterflies.

  376. Student program to check professors' lectures by Anonymous Coward · · Score: 0

    Do professors get an F or fired for using the author's lectures, in powerpoint format, from the author's or publisher's web site as a crutch?

    SIOT in NJ

  377. So let them cheat. by MikeFM · · Score: 2

    It's their time and money being wasted. let them cheat on homework. i always thought homework should be optional anyway. WE are paying the school. WE should tell them what to do. But then I think testing should be done by independent 3rd parties too.. not the schools themselves. Even within the same school Professor Y can have much easier homework and tests than Professor x.. between schools the difference can be just as huge.. a degree earned by one person isn't equiv to a degree earned by another. I know some CS grads that kick ass and a lot of others who shouldn't be hired to count beans.

    --
    At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
  378. Should have used it on George O'Leary's resume by HomerJ · · Score: 2

    Then they would have known he cheated. Hopefully they used it on Chan Gailey's ;-)

  379. Your sig by Anonymous Coward · · Score: 0

    Pardon me if I'm too drunk to be posting, but...

    That looks like four words to me.

  380. Cheaters cut there own throats come exams by Anonymous Coward · · Score: 0

    As a TA for a similar course, I've been very suspicious of certin assignments. The problem is, its very difficult and time consuming to prove beyond a doubt that a student is cheating. The only time you realy can nail them is if there is the other persons name has been left on the assignment or there exatly identical (its actualy happened). Otherwise they get off scot free, though are usualy more catutious.

    This does bother me, but I can take solace in the fact that those students who cheat usualy end up doing poorly on midterms and finaly and ultimatly flunk the course in any case.

  381. There is one thing this article does not mention.. by Anonymous Coward · · Score: 0

    The majority of people (at least that I have heard of) caught cheating were NOT computer science majors, just computer science students. At Georgia Tech, all students in all majors are required to take intro to CS, and some majors are required to take CS2.

  382. its just not publicized. by rebelcool · · Score: 2
    things like this arent publicized for good reasons. I'm sure Georgia Tech is less than happy this made it on slashdot. Things like this reflect very badly on a university. It makes potential employers think "well if these got caught..who DIDNT get caught?" "that university is full of cheaters who don't know how to do real work and just take advantage of those that do".

    Every university CS department runs these cheat detector programs, and every semester several people get caught and punished. They never publicize it though.

    --

    -

  383. Our sacred honor by werdna · · Score: 2

    Cuz remember programmers: in the real world you are fired if you consult with a co-worker

    This casual quip misses the point. One does not produce identical answers to nontrivial assignments merely by "consulting." The most common cause of identical duplication typically derives from non-collegial efforts, such as "frat house sharing" (not limited to fraternities) and other modes of mass-distribution of a single individual's work.

    This casual quip further misses the point. Each student who cheats in this manner, however collegially, typically has violated an express oath and promise taken at some point. YMMV as to specific honor codes. It is one thing to break the rules because one thinks one knows better -- it is another to lie about it.

    The purpose of these exercises is to train each individual so they can later be part of a team. In my view, pair programming should also be taught as an inherent and principal development skill -- but a particular mode of pedagogy is the discretion of the professor.

    I must confess that one of the most difficult moments of my young adult life was serving as a teaching assistant for an introductory programming course at Cornell (hundreds and hundreds of students). A massive amount of cheating was discovered, and we ultimately sorted and compared all assignments and then called in the groups, one-at-a-time, giving them an opportunity to account for the similiarities. It was horrible, for me, the professor and the students alike.

    People cheating just because they (thought they) could. It was a very sad thing.

  384. Wizards = Compilers by jcast · · Score: 1

    So, most programmers actually use wizards all the time. The key thing is to know when to use them.

    --
    There are reasons why democracy does not work nearly as well as capitalism.
    -- David D. Friedman
  385. Real-World vs Academia by Anonymous Coward · · Score: 0

    You can't compare the real-world with academia. In college, you have to do your own work because that's how you're graded. In the real-world, consulting with a co-worker is acceptable because the job has to get done, and management doesn't give a damn about who gets it done and whether or not that person had help as long as it gets done. It's probably past time that our institutions of higher learning change the way they evaluate student performance so as to take into consideration interpersonal skills. Then again what do I know?

  386. Scheme! by buck-yar · · Score: 1

    This problem just screams Scheme. Throw the code through a parser function that puts the code into syntax tree, call a helper function that counts the number of similar tree segments (using recursion to count from certain subtree segs).

    The parser could store the variables in lexical addressing so as not to get fooled by "Find...Replace-all."

  387. Cheating at UC Berkeley by oomcow · · Score: 1

    The profs have long had a similar cheat detection tool, although I've heard it's somewhat more sophisticated in that it even checks code for being the same with different variable names and that sort of trick. Supposedly it catches code blocks that are arranged in a different order too.

    Then again, I'm not on the inside, so a lot of that could just be the professors trying to scare us students into not cheating.... ;)

    As a side note, though, in the courses there, a lot of the time, sharing code with each other was allowed as long as it was cited.

  388. This stinks by Performer+Guy · · Score: 2

    If work is being copied then there's at least one innocent victim here.

    Plagerism happens all the time in these classes and the hardest working & best student is the one who get's copied the most.

    I know a 1st class honors graduate who got his degree because he used to take the second class of a set of two. At the start of each class he'd pull the old printouts from the waste paper bin and use that as his starting point. He'd have a complete solution at the start of the exercise which he could then refine.

    I'd like to see guys like him get caught, but what about the people he copies from. Unless the professors are going to take the time to investigate this there will be innocent victims. Tenured professors can be heartless and lazy and the administrators in academic beaurocracies would put Rudolf Hess to shame.

    If this continues then we need regulations to protect students.

  389. The naked truth about cheatfinder by Moldinaga · · Score: 1
    I TA'd for Gatech in 94-96, and the cheatfinder program was in use, although not heavily advertised.

    Basically, all these posts about groupthink skills being a necessary component of the CS curriculum are uninformed. As we went from through the curriculum, eventually almost every class at Georgia Tech (at that time) became group oriented.

    The classes where "cheatfinder" was used were frosh classes DESIGNED to measure individual capacity. Anyhow, I was the TA assigned to run the stupid thing week after week on hordes of Pascal programs, and later Java programs. So I want to clear up a thing or two:

    The cheatfinder program only flagged similar programs so that they could be visually inspected by a person (me). Nobody ever got nailed b/c the cheatfinder ratio was 100.00% correlation.

    What I would do was set a ratio (like 99% correlation), run the thing, and if there were no flags, lower the ratio (to 95%), until I got about 15 or so pairs or triplets of programs. Then I dumped those to the printer and looked them over. VERY OFTEN it was just two or three very good programmers who had the same (best) way of solving the problem.

    Then there were the ones who got busted. You know what killed them? The comments! It was hilarious how these guys would go to all kinds of lengths to make the program "look" different: change variable names, move functions around, and so on, (and cheatfinder was never fooled by such tactics), but they would leave the original owner's comments (often with the same spelling errors). To me, it showed that they thought the cheatfinder only cared about code (TRUE) but they forgot that there would be a human being looking at the code.

    There was some sad scenes. One guy was an Industrial Engineering major fulfilling his CS requirement. He had a job with Anderson Consulting lined up, was set to graduate that semester, the whole family including grandma had bought plane tickets to Atlanta to see him graduate, etc. I believed him, but I still nailed him.

    M.

  390. Better solution by Bugmaster · · Score: 1
    The problem is that it is difficult to distinguish cheaters (who copy/paste code) from collaborators (who all work on the same code together, and then copy-paste it). The solution that was implemented in my university was fairly simple. After the project was submitted, the TA would print out the source, gather the project team (where "team" means "any number of individuals greater than 0"), and randomly ask each team member about some part of the code. In order to answer correctly, the team member would have to understand the code. Which is not possible if the team member just pasted the code from somewhere.

    I don't see why every university doesn't just implement this, instead of trying to write elaborate AI anti-cheating scripts....

    --
    >|<*:=
  391. wow, what a brilliant idea. by lovedog · · Score: 1

    a program which compares students' coding assignments to each other and detects exact matches There must be some really sharp coders at GT. Making a marketing major will come up with a clever name for their program (how about diff?)

  392. It wouldn't have caught us by l810c · · Score: 1

    Many years ago I took a Cobol class that I hated. It also coincided with the peak of my slacker years at college. The assignments were put into a manilla envelope and slid under the profs door. One week a friend and I went to turn in a Very incomplete project. And lo and behold a bit of manilla sticking out from under the door. It turned into a game after that, we even got one of those flexible grabby things. How much can we change the code without changing the logic.

  393. You'd have to be stupid to be caught by this. by spike+hay · · Score: 1

    People in my high school c++ class change stuff around like couts and function names when they copy programs.

    --
    If you don't understand any of my sayings, come to me in private and I shall take you in my German mouth.
    1. Re:You'd have to be stupid to be caught by this. by scootr1 · · Score: 0

      Unfortunately, this isn't a "high school" cheat-detector. It'd catch ya.

  394. Some schools don't want to catch cheaters by wagadog · · Score: 1

    When I was a TA at a prestigious private university that had recently decided to change its admissions policy to take into account the parents' ability to pay, we were told that any cases of suspected cheating would need to be referred to the prof. We were told that the incoming class would have certain students that might not be as well prepared as the others--but certainly better connected.

    I suggested in the meeting where I was introduced to this unique view of academic integrity, "So hy don't we just grade on the basis of how much the kids parents make?" I was sooo popular with the faculty after that. Not.

  395. So in one class you're taught code reuse is good.. by Anonymous Coward · · Score: 0
    Two hours later, you're trying to figure out how to say "Do you want fries with that?" in Spanish along with the education majors...

    Sometimes life really sucks.

  396. Tech lies and cheats by Savitska · · Score: 1

    As a University of Georgia grad and a programmer, it doesn't surprise me one bit that students at the North Avenue Trade School would have to cheat.

    --
    "Laugh and the world laughs with you. Cry and I'll give you somethin' to cry about!"
    1. Re:Tech lies and cheats by Ghengis · · Score: 1

      Considering UGA was recently ranked as one of the 15 easiest schools, i wouldn't be talking if I were you.

      --

      "The best laid plans of mice and men gang oft agley..." - ROBERT BURNS

    2. Re:Tech lies and cheats by ShadowDrgn · · Score: 1

      Today in the news: Tech students cheat; UGA athletes rape a woman. Not a great day for the University System of Georgia. Both stories blown out of proportions by the media as usual.

      http://www.accessatlanta.com/news/story3.html

      In the last University survey thing online (lost the url a long time ago), Tech was 3rd in students that studied a lot, whereas UGA was 2nd in the opposite category, total slackers.

    3. Re:Tech lies and cheats by ChiPHeaD23 · · Score: 1

      Sample UGA programmer code
      10 PRINT "HELLO WORLD"
      20 GOTO 10

      To hell with U(sic)GA!

  397. Now, if he had gotten an A in an OO design class.. by Anonymous Coward · · Score: 0

    You'd know all he did was copy buzzwords....

  398. RIT been doing this for years by Pr0xY · · Score: 1

    i go to RIT and they use lexical anylysis programs to anylize work submitted for each student.

    Your work is tokenized, functions are reordered, variable names, reduced to enumerations.. etc, then compared.

    if the code has a high enough similarity to another persons code, it is hand checked..pretyy hard to get away with cheating, unless you are capable of changing it enough (which usually implies you could have done it by yourself anyways)

  399. You Sure you Didn't Cheat? Re:You're caught by Anonymous Coward · · Score: 0

    I don't claim to be a model student by any means, but in this class of 16 I had the highest grade in the class and had done every assignment to the best of my abilities. It came as quite a shock to me when I got my grades and noticed that there was an F for my Programming Languages class.

    I promptly called the professor and he said that this was an issue that was best dealt with in a face to face manner - so I went to his office and he claimed that myself and 3 other students in the class had cheated. He pulled up the source code and showed the very striking similarities. When I explained him that some of the problems that were assigned were out of the scope of this class and that he offered no help, I informed him that I had worked with these students to get a solution to the problem. We did not copy any prior works, and all worked together to complete a tough assignment. I admitted that we shared code, only because we had shared ideas and had all come to the solution together.


    As a professor, this story seems off, maybe the student left out some details. There are two sets of cross allegations, one of the prof's lame teaching bthe other of the student's academic dishonesty. The Prof's lame teaching may have gotten him/her into some trouble, or there may be other unreported circumstances. However, let's consider the academic dishonesty. What if you were beat out of an A by some students who cheated, and wound up getting an inferior grade, is that fair?

    If the story isn't completely bogus (which it might be) the only wrong behaviors of the Professor could be:
    1. The professor had no academic honesty policy or had no penalty for inappropriate collaboration in his syllabus.
    2. Collaboration was permitted and the Prof. forgot come grading time.
    3. Involuntary sharing occurred (his "friends" stole his code)
    4. The Prof. didn't discuss the situation with the student before applying the penalty.

    In any case, if this guy wasn't allowed to collaborate, he shouldn't have done it. Most faculty will sometimes give a hard problem and NO student can solve it, mainly to see just how good the best students are. The direction of copying does NOT matter and it is not the faculty's responsibility to figure it out. If there is a ring of many cheaters, they could all get off the hook by claiming to be the originator if that were allowed.

    However, I hope that I'm never in a position where if I catch a bunch of student's in this situation (and I have a record of applying the F penalty) that some coweed administrator doesn't reinstate a grade of a student who cheated (or try to force me to do it). Cheating sucks the life out of good students and drags everything to the lowest common denominator.
    1. Re:You Sure you Didn't Cheat? Re:You're caught by Anonymous Coward · · Score: 0

      What if you were beat out of an A by some students who cheated, and wound up getting an inferior grade, is that fair?

      I'm sorry, perhaps this is an American thing, but - who the fuck cares? Like it's gonna matter in 10 years if you got a B or an A for some stupid class.

      Plus, why is somebody's performance in a class worth an A only if there are no other good performances (if those are due to cheating is irrelevant)? That is how morons interpret Gauss law. You can have a class with 10 geniuses one year, all worthy of A's, and a class of morons the next, none of which deserve an A. Gauss law just states that IF you grade objectively, over a long period of time the curve of numbers of people in different brackets will come to look like a bell. Leave it to stupid professors to think this means that there must be two A's and F's in every class and C's should be the most prevalent.

    2. Re:You Sure you Didn't Cheat? Re:You're caught by Anonymous Coward · · Score: 0

      "What if you were beat out of an A by some students who cheated, and wound up getting an inferior grade, is that fair? "

      I don't know...do you got to college for grades or to get an education.

      Once you answer that question, then I'll answer yours.

      Let me ask you this though. If a guy writes an interesting story on slashdot, and a moron like you misses the point, is it fair that you expect him to reply?

    3. Re:You Sure you Didn't Cheat? Re:You're caught by Anonymous Coward · · Score: 0

      "and I have a record of applying the F penalty"

      I find it hard to believe that you teach anything more difficult than "how to wipe your ass with charmin"

      "Cheating sucks the life out of good students and drags everything to the lowest common denominator."

      Pretty funny coming from some kid who has never seen the fluffy life outside the hallowed walls of academia. Go matriculate somewhere else.

    4. Re:You Sure you Didn't Cheat? Re:You're caught by Anonymous Coward · · Score: 0

      I'm sorry, perhaps this is an American thing, but - who the fuck cares? Like it's gonna matter in 10 years if you got a B or an A for some stupid class.


      The most important thing is that the student knows something good and can do a good job. The grades are supposed to reflect the instructor's measure of the student's performance during the semester. Sometimes good people have a weak academic performance, but sometimes bad people can do well in school.

      So, you are right, to some extent, in the long term it does not matter, provided the student generates a good track record over time after graduation.

      However, many students want short term results (some companies have grade point average cutoffs for interviews, grad school admission, etc.). From the employer's point of view it is critical that they can evaluate the quality of a student based on their records. If school X generates bad students with good grades, then employers will shun that school. As an ex tech manager now Prof. I'm not going to let that happen to my good students.

      Regarding grading according to distribution, there are both absolute and relative standards that come into play. Typically I assume some absolute lower bound on competence, but give much harder assignments than that bound. It is surprisingly hard to make novel assignments and examinations with equivalent levels of difficulty each year, and so sometimes students find the difficulty level of a problem much easier/harder than I expect. I also adjust the difficulty level to the perceived skill of the class (I teach to the good students level, when possible, as that is where I can make the most impact). I do give fewer or no A's some years, but if some handful of students performs exceptionally well through cheating, they can skew the distribution and give me a false level of expectation of the class skill and background.

      I've not had any semester where no student was awarded an A (althought there have been one or two bad classes where the number of A's was very low), and I've had exceptionally good classes where the majority of the students did A level work. However, where I will move the cutoff if the best performing students are doing well. Within a particular class, there tend to be multiple clusters, frequently the distribution is actually bimodal with a cluster of weak students. In this case, it is possible for the cluster of weak students to dominate the overall grades. It is very seldom that no student in the class has any intellectual capacity (but I teach grad students, undergrads may be different).
    5. Re:You Sure you Didn't Cheat? Re:You're caught by CmdrPinkTaco · · Score: 2, Insightful
      Ok, I guess that I will go into more detail on this matter so as to clarify my position. And to further clarify my position, this is a very gray issue - and took over three months to resolve, involved a session of the academic standards committee and had some students threatening lawsuits over the matter.

      I had become the ring leader of what was initially viewed as a group of "rouge" students (the professors word of choice) - how I became this "ring leader" Im not exactly certain, the only thing that I can point to was the fact that I had the highest grade amongst those involved. The professor failed all of the students involved without any prior indication. Seeing as how the professor had no idea where anyone in the class stood grade wise at any point in the semester this lead me to the conclusion that he sat on all of our assignments until the 11th hour. Had he looked at them when they were turned in (about a third of the way through the semester) he would have noticed this earlier.

      The professor was also aware that all of the students and myself were all working together. We would often all go into his office together with questions, we would all be in the study lounges together before exams sharing notes and thoughts on the upcoming exam and we all took similarly scheduled classes. It was no secret that we all worked together.

      In regard to your bullet points:

      1. The professor did have an academic dishonesty policy, as well as the university's blanket policy on dishonesty. 2. Collaboration was permitted, but was not detailed as to the extent of collaboration. We would often grab 2 computers between the 5 of us so that we all could solve the problems together. Having much "real world" experience I found "extreme programming" to be effective in solving small, yet difficult problems. I suggested this approach to the group that I worked with. 3. There was no involuntary sharing. All was known to be amongst the same group and stayed within that group 4. There was no discussion or mention prior to the assigning of grades of plagarism.
      It was known that I was the originator of forming the group, however from there the group became it's own entity - we all used it to solve the problems that we were given (and lets face it - a 200 level course that is expected to write a compiler is a daunting task, especially considering that compilers is the class that typically follows programming languages - one is the theory, the other is the application. This prof seemd to forget about teaching theory and threw us the application).

      I am all for academic honesty and making students prove that they can handle the work load, however when the work load is unreasonable or expectations are outlandish, I don't think that it is unfair to seek out answers from your peers who are in the same boat when your professor refuses to acknowledge that his work load is unfair and his methods are poor.

      It is definately an ugly situation - and the resolution came by all of the students involved having to retake the class and their grades were withdrawn. *sigh* I think that covers it.
      --
      Please give your mod points to others, Im at the cap. They will appreciate it more
    6. Re:You Sure you Didn't Cheat? Re:You're caught by Anonymous Coward · · Score: 0

      I don't know...do you got to college for grades or to get an education.

      Actually I go to for education (both mine and my students).

      However, if grades aren't important why not give everyone A's or F's for that matter? That is because one of the duties of a University is to evaluate the relative skill level exhibited by a student in mastering a subject. Feel free to choose the physician who came in at the bottom of his/her class for your next medical procedure if you feel differently.


      Once you answer that question, then I'll answer yours.

      Let me ask you this though. If a guy writes an interesting story on slashdot, and a moron like you misses the point, is it fair that you expect him to reply?


      What point did I miss? He claimed the instructor was not dilligent, and used situational ethics to justify a collaboration with other students. That collaboration might have been academically dishonest (unless the faculty authorized it, which although possible is doubtful from the tone of the article). Most people define integrity as having a firm set of guiding principles and not using ethics on convenience.

      You would be well advised to use analysis over name calling in professional and academic settings.
    7. Re:You Sure you Didn't Cheat? Re:You're caught by Anonymous Coward · · Score: 0

      Thanks for the details, some of the stuff you cite is mitigating circumstances, in particular the wording of the syllabus and the Prof's failure to discuss the situation before awarding the penalty are both troublesome. In the Prof's defense the TA's typically handle project grading in courses of this size, so the faculty might have access to score information until the end. The TA might not have sat on a cheating allegation or the Prof. might have not checked until after the end of the semester. Still, it is best to go over such situations early if they are discovered.

      As a faculty, I don't apply the F penalty without consulting with students. I generally don't permit collaboration on solution, but permit collaboration on tool use (compiler/debugger/etc).
      In the Prof's defense, your class was 161 students, most prof's use graders, and sometimes graders don't catch stuff like this. He should have talked to you before enforcing the penalty. If the faculty has a policy of dropping the low score in grade tabulation, they could discount the assignment and you would still have had a fair grading situation.

      I'm sorry that you have to retake the class, it is a bit of a gray area. Perhaps it is best to ask the TA or Prof. directly about what is an appropriate level of collaboration before things get out of hand.

    8. Re:You Sure you Didn't Cheat? Re:You're caught by CmdrPinkTaco · · Score: 1

      correction - it was 16 students and didn't warrant a TA. And it happened almost 3 years ago, so it is over and done with. I have since moved on to greener pastures. I just wanted to share my story with the /. crowd as an example that even with "cheat detection software" there are still gray areas. I also appreciate your feedback and wish that I had you as the prof and not the one that I had, you seem much more reasonable than he.

      --
      Please give your mod points to others, Im at the cap. They will appreciate it more
    9. Re:You Sure you Didn't Cheat? Re:You're caught by thomas.galvin · · Score: 1

      I don't know...do you got to college for grades or to get an education. The grades I recieve are supposed to reflect my ability with a given subject matter. This is why I do not like grading on a curve; if I do high quality work, I expect high quality grades. If you put one exceptional programmer in a class with beginning students, he will naturally recieve high grades, curve or no curve, but if you put him in a class with other exceptional programmers, he may not. This is not fair, nor is it logical. Good work does not become less so because others have shown the ability to also do good work.

    10. Re:You Sure you Didn't Cheat? Re:You're caught by thomas.galvin · · Score: 1

      /*Bob Jones, Tom Smith, and Sally Struthers helped me with this section of code*/ I post most of my school code on the web, and GPL it. If people can learn from it, bully for them. All my professor asks is the above coment, so he knows what came from where. There is a balance between teaching codeing skill and problem solving skill...it's a question that I can't easily answer other than to say "in this situation, I would..." There is a marked difference between looking at someone's source code and using it to help sooth your algorithmic or syntax woes, and copying and pasting.

    11. Re:You Sure you Didn't Cheat? Re:You're caught by Latent+IT · · Score: 1

      "You would be well advised to use analysis over name calling in professional and academic settings."

      Phew! Good thing this is neither. ;)

  400. Mod Up The Parent by Anonymous Coward · · Score: 0

    As a professor, my best students need to benefit from a good recommendation. Cheating degrades this by attempting to subvert the measurement processs. And the measures may not be completely fair, but they must be consistent .

  401. Almost right by Anonymous Coward · · Score: 0
    You're fired for copying someone else's work and passing it off as your own, particularly if it's a competing product.


    Worse still, your compnay could be forced out of business by litigation and not only you but ALL YOUR COWORKERS could be found on PUD's hall of shame . Just look at what happened at Enron and Arthur Andersen, not every employee in the company needs to be a wrong doer to be taken down by a serious ethics violation, hell at your next job you might not just work for the dept. of corrections (as prison labor) you might be a client.
  402. Purdue Checks For Cheaters Too by AIndividual · · Score: 1

    I'm a CS student at Purdue University, and they put all of our source code into their security software to check for those naughty cheaters. They caught ten people who had "colluded" on the same project last semester. The final project for a graduate level course is to defeat that software.

    --
    Electron Pulse...indie rock/jazz/blues
  403. Probably Accurate Detection by Anonymous Coward · · Score: 0

    When I took this course at Ga Tech back in 1995, the intro to computing course was taugh in a psuedo langauage simaliar to Pascal. Since "code" submitted never had to compile it was very unlikely two students would have the exact same code without cut and paste copying. They also told us the cheat program would be used to analize our assigments.

  404. Personal experience with Kurt Eislet by Anonymous Coward · · Score: 0

    Years ago, I was accused of cheating in one of these classes and I must say that it was an extremely traumatic experience. My only intention was to learn and to help others to learn. Eventually the charges were dropped, but for the rest of my career at Ga Tech, I was reluctant to work with others. On the surface, this seems like an admirable effort to weed out academic dishonesty, but for me at least, Kurt's holy crusade resulted in destroying any sense of community i felt at the school.

    I'd just like to say to any Ga Tech students who will be taking these classes... If you want to teach others, wait untill after the class is over and become a TA. As a student, you'll be far better off working alone, otherwise you may go do wn the same path I did. You don't want to deal with Kurt. He is as Unfeeling and sarcastic as they come. He will have no sympathy for you, no matter what your intentions.

  405. Heh, try sucks. by Anonymous Coward · · Score: 0

    ..Unless they've fixed it since the last time I've used it (Circa two years ago).

    After hearing the big bad 'we know if you copy each other's code or not!' talk, a friend and I submitted the exact same code to it. Nothing. Not even a glare from our professor.

    I miss the coffee machines in the CS building.

  406. Not cheating if you can explain your code by Anonymous Coward · · Score: 0

    As a student at tech I've known many friends over the years that have gotten I's (incompletes) for coming up on cheatfinder. They have told me that they were just required to explain their code and what it does. Like if you can explain the code and understand it then they can't prove that you cheated, however if you can't then how can you explain yourself writing the code in the first place. The problem with this is when they quiz you on a program that you wrote months ago of which you have already forgotten the concepts used.

  407. "approved" students Re:A good cheating policy by kbs · · Score: 1

    These are called "Undergraduate TAs" these days ;)

    --
    yours,
    kbs
  408. What Concerns Me by FrankDrebin · · Score: 1

    I don't think cheaters should be caught and here's why. Cheaters won't learn and in the real world will not succeed as developers. So who cares if they pass a few courses along the way. I knew a cheater in school who later cheated at work and was fired.

    But instituting a cheat-detector, especially as lamely as some have indicated, will force students to find "creative" ways to make their code different from their classmates. Not better, but different. These people will be educated enough to be successfully employed. But their code will be fraught with illogic and inelegance because of the ingrained "must be different" attitude. Coding standards will be ignored completely. People will begin to submit production code to the IOCCC. And software quality as a discipline will take a huge step backwards.

    --
    Anybody want a peanut?
  409. Yes it is old news by Anonymous Coward · · Score: 0

    The Unviersity of Washington's had this kind of software for about 5-6 years for their intro C/C++ courses. The programs they use check for cheating in all sections of the class by checking for similar design flaws, variable names, formatting, etc. Of course, its all been setup so using 'i' as an index doesn't set off an alarm. It detects things like a group of studdents all using a variable called DataSetArrayofIntsOrWhatever. Even when students know about cheating 2-3 people are typically caught cheating every other quarter. The penalty varies depending upon the professor. University policy say's you're expelled, though some professors will deal with it personally and depending on the nature give you an F for the assignment or a F for the course.

  410. DETAILS! by d2htornado · · Score: 1

    DETAILS MAN, DETAILS! You left them out, I love this kind of story, so fill in the details. I, for one, would like to read them.

    --

    Linux is so bad it's free and most people don't use it. But you have the source code, so it's your fault.
  411. Plagerism by Anonymous Coward · · Score: 0

    I had a friend in college that got charged with Plagerism for turning in the same term paper in two different classes. It was relivant to both assignments and fufilled each but the professors saw it the other way. dumb. self-plagerism.

  412. It's almost an industry. by Anonymous Coward · · Score: 1, Funny

    Back in school I was so poor I would write other people's coding assignments for money. I made what's equivalent to a few thousand dollars doing this. The trick, of course, was to do things differently for every single person. This meant coding it in different ways which couldn't be caught.

    Needless to say I was in "high demand" by several groups. Advertising was purely through word of mouth, and I never got caught.

    Do I regret it? Absolutely not. Those same students now can't code their way out of a paperbag, and I got to put myself through school.

  413. freshmen do the stupidest things by Anonymous Coward · · Score: 0

    well when you look at it it's only 187 students out of about 1600 that were taking the classes during the semester and it's mostly freshmen plus there is a project due almost everyday in those classes and just the work load that's assigned in the classes makes them to be 2 of the hardest classes on campus. hell when i took it we had projects due on the weekends. talk about being a waste of a friday night. well all that's left to say is that freshmen do the stupidest things. including not renaming the variables or constants. but not to worry about the stuipd freshmen since GT suspends on the first honor code violation so that the cheaters can learn how to cheat AND not get caught
    .j.

  414. Not in college yet, but... by cl0secall · · Score: 1

    ...this wouldn't bother me anyways. Even if I *did* copy some other person's code, I'm *really* anal about having my code look like I want it to. I'll even make sure that it's tabs instead of spaces.

    As for the cheating part, when I took a CS class in high school I had an algebra major for a teacher. The guy knew nothing about network administration, yet ran the computer lab. We had lots of fun playing jokes on him, and the final exam was a total fiasco.

    He gave us worksheets which detailed the project. I was at the time, under his orders to use my laptop for all projects. I typed up all 3 versions of the final exam, using three different programming 'styles'. I printed them out, and put them on disk, and handed them out to half of the class. I typed up mine not using any of my previous notes, because it was such a simple program anyways. The guy never figured it out.

    --
    Model 551, Chambered in 6mm
  415. Not needed by Raving · · Score: 1

    I am a CS teacher (hum, preparing a PhD actually), and let me tell you that this kind of tool isn't necessary (-:

    When you read/correct code, cheaters are usually the cluess, panicked students ; hence, they copy whatever they can, included the stupidest mistakes. Tracking them is rather easy, really.

    But this is for "paper work" ; note that we never ask students to perform computer assignments alone, we just want to know who they worked with.

    --
    Singularity stupid: stupid gotten so dense that no intellect can escape
  416. The solution is obvious: it's time for escalation by Anonymous Coward · · Score: 0

    It is time for some really smart young student who is obviously wasting his time in one of these required intro classes to write a pair of programs: one program takes a program as input and attempts to perform as many permutations a possible which change the source code to be unique without affecting its function. Ie rename variables, change white space at random, change formatting and layout. Add comments at random. etc.

    The second program again takes a program as input, but this program attempts to transform its input such that all input that perform the same function will look the same in source also.

    ie strip all comments, use a mechanical formatting system, break all compound statmenets into their most simple forms. Introduce temporaries, do dependency analysis to reorder statements in a mechanical order. etc.

    Its time to fight back!

    I never cheated in my CS classes. In fact when I took N602 Pascal at Drexel U in the late 80s I used to sleep in the front row of the lectures except for the ones where they handed out assignments. On these days I would pick up the assignment at the beginning of class and go back to the dorm and code up a solution. I usually had it done by the time the other kids came back from class, at which point I destributed it to anyone who asked and explained it to anyone who asked.

  417. This is old surely??? by prefect42 · · Score: 1

    While I was working at Leeds University we had similar programs, but it wasn't exact matches we were searching for. It's far harder to detect plagiarism than that. You have to tokenize the work to get rid of variable names (although you can take that into account later) get rid of all the formatting, try shuffling it all round a bit, and then seeing if it matches.

    Most of the people we caught cheating had at least made a cheap attempt to hide their wrongdoing.

    How does this make a story?

    jh

    --

    jh

  418. You call that cheating? by Anonymous Coward · · Score: 0
    Copying code or assignment answers? Trivial!

    <InMyDay>

    I think that I can now safely admit that I did cheat once at U, in a hellishly tricky lab assignment that took several days work stretched out over a couple of weeks. Even students who did everything right tended to end up short of time to do all the data reduction and write it up (this was at a time when programmable calculators were still in the luxury goods bracket as far as the average student was concerned). Anyway, two of us on that assignment didn't do everything right, and ended up the day before the result was due with abysmal data.

    So we used the data we had as a guide, and "adjusted" it - aka invented readings out of thin air. It took until the early hours of the morning to get it all done, so we were pretty whacked out when the time arrived to go over our report with the supervisor. To cut a long story short, we got away with it and even got a reasonable grade. We'd taken care that the invented data was still bad, but that it was consistent with a plausible reason - in fact, the reason that the data we'd actually measured was so bad in the first place.

    Would've been easier to just take the bad grade, in retrospect, but a lot of marks were hanging on that assignment.

    </InMyDay>

  419. why did this guy get 'troll' by Anonymous Coward · · Score: 0

    his post was funnier than the other guys post.

  420. Been there, done that by Curtis+F.+Smith · · Score: 1

    This isn't new stuff. I wrote this code in 1983. Students taking Purdue's EE 263 class wrote programs in Pascal and Fortran. My program made a pattern of their programs then compared for a percentage. The pattern method would instantly find two programs that were no different except for recommented or variable names changed. Seem to remember catching quite a few cheaters.

  421. old news by keno1929 · · Score: 1

    This isn't very new news; RIT has had this plan for years now. My friends at other schools also have similar programs. What is really interesting is that our school supposedly keeps a database of all programs ever written, so not only does it compare the current class, but all past classes to.

  422. Re:Still happening by Fuzzumd · · Score: 1

    I go to the University of Maryland now and for 3 years now they have been warning us that they use a program like this to check our code. It has even caught some people. I only know of one person who has been falsely caught by this and that was because the code it matched was stolen from him by his roommate and handed out to others. He eventually got it overturned and stayed in school.

  423. MS GUI division got fired...... by hanakj · · Score: 1

    ......right after Apple's GUI division got fired(remember Xerox PARC?)

  424. A version of this at Berkeley, too by Khelder · · Score: 1
    They've been using a cheating detector for CS classes at Berkeley for over 10 years now. It builds an abstract syntax tree of programs and compares them. Its use was common knowledge. I think it caught some people every term.

    I'm not positive, but I think the usual penalty for cheating was a zero on the assignment/exam or an F in the course.

  425. An instructor's perspective by cau · · Score: 1

    I taught a junior level CS course in the past, and used Alex Aiken's MOSS (developed in the mid 90s - this is a new version of an old story) to detect cheaters. Found quite a few. Every accusation was based on my inspection of the similarities; I treated MOSS as an aid in helping me spot those similarities but not as proof that the students were cheating.

    Tools like MOSS will help you find a certain type of cheater (those who neither grasp the problem nor have the ability to code the solution) but not others (those who can code, but do not understand the problem to be solved). The latter group can look at working code (eureka!) and then code their own solution. The amount of work required to take existing code and make it appear different to MOSS was non-trivial; renaming variables, reordering code, moving code from one function to another - these were all things that were caught. My belief is that for someone to fool MOSS, he would have to be well versed in the language, and would have been able to finish the assignment without resorting to cheating.

    As for making the accusations - I consulted with other instructors and faculty and found varying opinions. Some felt it was their duty to report all cheaters; others felt it was too much work and that nothing would happen. There was some consensus, though. I had to be absolutely certain that the students cheated; if I had any doubt I should not make an accusation. Furthermore, I had to be able to prove to others that the student cheated. "Others" refers to a college or university level committee that handles appeals; this group would have members who would not have CS backgrounds. Since my only proof consisted of the similarities in the students' programs, it had to be good enough to convince such a committee.

    Even so, I heard of appeals being successful. A student had clearly cheated, and was given an F for that course. This would have dropped the student's GPA below a certain average, which would have meant he lost his scholarship, which in turn would mean he'd have to drop out of school. The committee weighed this heavily and overturned the instructor's ruling.

    If you ever wondered why those guys who cheated got a better grade than you did - well, maybe there were other things going on that you were not aware of.

  426. What? by Anonymous Coward · · Score: 0
    Being held to standards you agree to too touch for you, whiner-boy?

    What are you going to do, run to you Mommy?

    Fucking candy-ass baby.

  427. Let me know by Anonymous Coward · · Score: 0
    When you move into your seven-figure home like I'm about to next month....

    You don't think the really good ones can spot the fakes quick?

  428. Moss : A better option by djp3 · · Score: 1

    Berkeley has a much more sophisticated project that does far more than find exact matches. Most Computer Science departments know about it, and many classes use it to detect cheaters:
    http://www.cs.berkeley.edu/~aiken/moss.html

  429. The problem is there definition of cheating. by jtshaw · · Score: 1

    I am a junior/3rd year student at Georgia Tech. I took both of those classes back in my freshmen year. Cheat finder exsisted back in those days as well, but it seams they have changed there algorithms because a lot less people were labeled cheaters in the past.

    One problem I have is there definition of cheating not only includes copying the work of others but mearly discussing the projects in any way, shape, or form with a fellow student. At least that is what I was told specifically by a TA back when I took the class. Copying work is most certainly cheating. However, in college other students are great tools to learn from and there is no reason why discussing strategies for solving a problem shouldn't be allowed. I believe we like to call that cooperative learning? I remember reading some studies about how well that worked in a psych class I took at Tech....

    The other problem is the simple nature of the problems could cause many students to use similar methods that could be picked up by cheat finder. I happen to know a freshmen who struggled greatly in the class and came to me for help on many occassions. This particular student never discussed the projects with any other people in the class, and never shared code, but was picked up for cheating because there were trends in his code that matched other students. I realize that by the strict and stupid nature of there defition of cheating he couldn't even ask me about solving some of his problems (I didn't write any code for him, just gave him so ideas how do to certain things since he had never coded before) but the fact is he now knows the material and deserves to get the B his grades earned him and not an F for all the time in effort he put into learning it.

    The CS department needs to focus more on teaching there students rather then catching them for cheating. Maybe if they focused there effort on creating a class that better taught the material less students wouldn't feel the need to use the students which already know the material as a crutch to make it through. Especially in a class required by all majors.

  430. It's BS by BusterD · · Score: 1

    I'm a freshman student here at Georgia Tech and I took the 1321 computer science class in which about 150 students were caught for cheating. Some of my friends were "caught" and are now having to face appeal courts. The last week of school, right before finals, is called dead week. It's called that for a reason, no projects or tests are to be given out to students because they are supposed to be studying for their tests. Well our soul-less profs decided to give us the largest homework assignment of the year in that week. This was the first semester that our professors used the book we had and also it was the first semester that gatech used the program, Dr Scheme, for its course. So naturally the professors hadn't taught all the material to us in time and they crammed the rest of it in the last two weeks. And so our last hw assignment was HUGE. People were stressing out over finals and also over this assignment and so the majority of the 150 people that were caught for cheating, were caught on this assignment. And for the most part, it was for sharing code on the hardest problem. I guess people wanted to help their friends when it got down to crunch time and they are paying the consequences for sharing their code with a friend who was too stupid to re-arrange and rename some of the code.

  431. UOW Had Already Done This by Anonymous Coward · · Score: 0

    The University of Wollogong in Australia had similar software based on analysis of the solution.

    But their favourite method was to scale your assignment marks if you failed the exam. Since most exams had to be more than 60 of you're marks if you failed you were in deep water.

  432. Haaaaahahahaahaha by Uttles · · Score: 1

    That's a good one, wish I had some mod points!

    --

    ~ now you know
  433. You're exactly right by Uttles · · Score: 2

    It makes you wonder what educators are thinking. That's just a plain ignorant way of looking at things. A year ago I was working on a project using C to make a real time video game based on physical movement measured through digital cameras. If you told me to reproduce it right now, there's no way in hell I could. Professors are so quick to lose sight of the fact that people who haven't been doing the same thing for 30 years have a hard time remembering every little detail of it on the tests.

    --

    ~ now you know
  434. It could be worse... by deepvoid · · Score: 1

    I once worked for a company which makes computers named after fruit, and a "well respected" engineer on staff, took all of our design and test plans and wrote a book, for which this company paid him handsomly. He took credit for every line of it, but me and a freind counted only 15 lines of origonal text in a book of 280 pages.

    The only good thing about it was the fact that one of the engineers was about to get fired so he wrote a bunch of bogus stuff, which was published right along with the rest...

    --
    Fast machines, powerfull AI, impulsive invention,... All I lack is a good espresso machine!
  435. Here's a funny story about cheating by battlinbill · · Score: 1

    Back when I was a student, I took a Data Structures course where the professor would do automatic grading. We'd simply email the code files to his account before a certain time and the program would run and generate output. There would be 9 tests that the program would run to make sure it was getting the correct output. You would always get 10 points for handing in something so if you even bothered to send an email you got a 10. Now if your program passed a test, another 10 points, all 9 tests and 100%. When the assignment was given out, we'd be given 6 of the 9 tests that were going to be run. During the semester I was also taking other time intensive courses so I did not have time to sit down and code some of the projects correctly so I would analyze the inputs, find the differences and have my program act as a parser finding simularities and printing out prefabricated output files for the 6 tests we had. This would ensure me a 70%, and a B+ for the class (I also scored very highly on all the exams so I had a A in the course). The instructor leading my course was an assistant professor who was looking to make a name for himself. Turns out there were quite a few people doing this as well. So he made an example out of me saying how I was cheating and instructed other students to do so. Instead of accusing me for whatever cheating scheme I described above, he accused me of plagarism. This turned into my savior since I could easily claim that my code was unique from all others. Hell, some of the other scams would find the output files the professor was comparing to and copy them as their own output files so the program would always pass the test. Now I work for Microsoft ;)

  436. Cheating and cooperating by SkipChaser · · Score: 1

    I recently took a quiz in a Digital Logic class of about 15 students. We all made exactly the same mistake. Turns out that the prof didn't fully explain the methodology for finding the solution and we all went down the wrong path. Guess we all should be brought up on cheating charges.
    I also took celestial mechanics as an undergrad. We had 4 students. 1 A and 3 C's. You think the prof thought we were cheating? No, there was one smart person and the rest of us were average. The prof was not interested in raising us to the smart person's level. If we had studied together and cooperated we probably would have done better.
    This originality thing can go tooo far. It results in committees with no subject matter experts on them. "The experts have screwed this up so why get them involved."
    OK. For all problems that have a discrete set of answers there is one solution or group of solutions that is/are the best solution(s). Why not learn the best solution. If a group of students turn in the best solution then their programs will look very similar. You can't assume they were cheating unless you have corroborating evidence. Well maybe the academics are afraid we'll stiffle the next Einstein (who by the way probably got alot of good ideas for things needing improvement from working in the patent office. Did he cheat then?)
    If the prof is bad, and the book is hopeless you have to look elsewhere for help. First I look for another book. Is it cheating if I find a way to solve the problem in another book? Second I check on-line. Third I'll ask the TA. So if the TA tells everyone the same way to solve the problem we all get hauled in for cheating. Real learning is about methodologies and learning which to apply to the problem. I wish the teachers and books would outline the method prior to solving the problem.

    --
    Supra et Ultra