Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Education

Cheating Detector from Georgia Tech 941

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 ;)
This discussion has been archived. No new comments can be posted.

Cheating Detector from Georgia Tech

Comments Filter:
  • by Anonymous Coward on Wednesday January 16, 2002 @03:40PM (#2849771)
    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.
  • by sben ( 71467 ) on Wednesday January 16, 2002 @03:41PM (#2849786)
    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?
  • by SnowDog_2112 ( 23900 ) on Wednesday January 16, 2002 @03:42PM (#2849796) Homepage
    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 :).
  • by TJPile ( 220972 ) on Wednesday January 16, 2002 @03:43PM (#2849805)
    The Rochester Institute of Technology [rit.edu] (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.
  • by Ian_Bailey ( 469273 ) on Wednesday January 16, 2002 @03:43PM (#2849810) Homepage Journal
    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....
  • by Meech ( 166762 ) on Wednesday January 16, 2002 @03:45PM (#2849835)

    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.

  • the real world (Score:5, Insightful)

    by bcrowell ( 177657 ) on Wednesday January 16, 2002 @03:46PM (#2849844) Homepage
    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.

  • by Ionizor ( 175949 ) on Wednesday January 16, 2002 @03:47PM (#2849853) Homepage
    • 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.

  • by rblancarte ( 213492 ) on Wednesday January 16, 2002 @03:52PM (#2849922) Homepage
    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
  • by SirSlud ( 67381 ) on Wednesday January 16, 2002 @04:00PM (#2849995) Homepage
    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.
  • by feed_me_cereal ( 452042 ) on Wednesday January 16, 2002 @04:06PM (#2850043)
    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.
  • Re:You're caught (Score:5, Insightful)

    by invenustus ( 56481 ) on Wednesday January 16, 2002 @04:08PM (#2850063)
    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.
  • by DahGhostfacedFiddlah ( 470393 ) on Wednesday January 16, 2002 @04:08PM (#2850065)
    Wouldn't the easiest way of detecting variable-names/whitespace/etc be to simply compile&strip the program, *then* run diff?
  • by Chris Y Taylor ( 455585 ) on Wednesday January 16, 2002 @04:13PM (#2850093) Homepage
    "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.
  • by Tyrall ( 191862 ) on Wednesday January 16, 2002 @04:21PM (#2850155) Homepage
    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.
  • by PhuCknuT ( 1703 ) on Wednesday January 16, 2002 @04:21PM (#2850156) Homepage
    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.
  • by rkischuk ( 463111 ) on Wednesday January 16, 2002 @04:30PM (#2850234)
    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.
  • TOO MUCH Cheating (Score:5, Insightful)

    by Anonymous Coward on Wednesday January 16, 2002 @04:35PM (#2850263)
    Pardon me for posting anonymously [slashdot.org], 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.
  • by cfulmer ( 3166 ) on Wednesday January 16, 2002 @04:41PM (#2850308) Journal
    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
  • by Courageous ( 228506 ) on Wednesday January 16, 2002 @04:43PM (#2850319)

    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//
  • by stupidNewbie ( 537989 ) on Wednesday January 16, 2002 @04:45PM (#2850337)
    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....

  • by Nonesuch ( 90847 ) on Wednesday January 16, 2002 @04:52PM (#2850391) Homepage Journal
    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...

  • by Pinball Wizard ( 161942 ) on Wednesday January 16, 2002 @04:59PM (#2850438) Homepage Journal
    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.

  • by Caractacus Potts ( 74726 ) on Wednesday January 16, 2002 @05:14PM (#2850558)
    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.
  • by Rupert ( 28001 ) on Wednesday January 16, 2002 @05:15PM (#2850565) Homepage Journal
    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.
  • by trenton ( 53581 ) <trentonl@NOSPAm.gmail.com> on Wednesday January 16, 2002 @05:22PM (#2850612) Homepage
    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).

  • Re:You're caught (Score:3, Insightful)

    by Alpha State ( 89105 ) on Wednesday January 16, 2002 @05:32PM (#2850680) Homepage

    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?

  • by dkroells ( 68413 ) on Wednesday January 16, 2002 @06:15PM (#2851004) Homepage
    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?

  • Re:You're caught (Score:2, Insightful)

    by PK_ERTW ( 538588 ) on Wednesday January 16, 2002 @06:23PM (#2851082)
    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?

  • Re:You're caught (Score:5, Insightful)

    by CmdrPinkTaco ( 63423 ) <emericle AT chubberware DOT com> on Wednesday January 16, 2002 @06:31PM (#2851145) Homepage
    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.
  • by mumstakovich ( 521605 ) <andrew@@@cc...gatech...edu> on Wednesday January 16, 2002 @07:38PM (#2851488) Homepage
    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.
  • 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.

The Tao is like a glob pattern: used but never used up. It is like the extern void: filled with infinite possibilities.

Working...