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 ;)
In the real world... (Score:2, Insightful)
If your employer has any integrity at all, that is.
Real-world vs. school (Score:4, Insightful)
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?
Flame-bait in comment aside: (Score:5, Insightful)
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
I don't think it's the first... (Score:1, Insightful)
Not really news.... (Score:2, Insightful)
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....
the real world is the same as school (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.
the real world (Score:5, Insightful)
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.
Ignorance on the part of the poster... (Score:5, Insightful)
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.
This isn't a case of colaboration is bad (Score:5, Insightful)
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
Re:Real-world vs. school (Score:3, Insightful)
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
Re:Real-world vs. school (Score:5, Insightful)
Re:You're caught (Score:5, Insightful)
Students shouldn't cheat, but professors shouldn't toss around those accusations lightly either.
Re:Not really news.... (Score:4, Insightful)
Vanderbilt's Honor Code (Score:5, Insightful)
- Madison Sarratt (1891-1978), dean, Vanderbilt University.
Re:A better approach (Score:5, Insightful)
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.
Re:Real-world vs. school (Score:2, Insightful)
A little insight from the inside (Score:5, Insightful)
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)
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.
Wrote similar code & why (Score:3, Insightful)
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
Consulting a coworker? (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//
this is all bass ackwards! (Score:1, Insightful)
but in these places of higher learning they teach trivial stuff like "write a for loop that counts 1 to 100"...
... and since when do employers make a bunch of codemonkeys to the same thing?
no good debugging skillz.... no design skillz...
no clue how to work on a large software project with a team....
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....
Re:Cheating Is Harder Than Actually Doing The Work (Score:3, Insightful)
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...
Re:Slashdot Boggles Me Again... (Score:2, Insightful)
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.
Lawyers use these tools too (Score:2, Insightful)
Re:Slashdot Boggles Me Again... (Score:3, Insightful)
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.
"Real world" argument is such BS (Score:3, Insightful)
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)
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?
I've seen(and been a part of) worse... (Score:2, Insightful)
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)
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)
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.
You're all missing the point (Score:2, Insightful)
Re:You Sure you Didn't Cheat? Re:You're caught (Score:2, Insightful)
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:
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.