PDA

View Full Version : Code Plagiarism




Hemingray
Jun 16, 2008, 02:34 PM
Hey guys,

I'm taking Java classes towards earning my B.S. in I.T., and I just completed a programming assignment.

We have 3 different "teams" that we post our assignments to individually and then the team tests it out. A couple of days after finishing my program, I decided to look in another team's folder just to see how they had accomplished theirs. To my astonishment, one of the other students directly ripped off my entire program - VERBATIM! Right down to the comment lines. :eek: <-- that was me. I was amazed. Needless to say, I called him on it and informed the teacher. It will be interesting to see what comes of this.

Now, I don't mind people taking suggestions from my ideas, but directly ripping off all 250+ lines of code I typed by hand? Not cool.

Sorry if this isn't entirely on-topic, I just needed to vent! Has anyone else out there experienced this in software programming, either in the classroom or out in the workforce?



Cromulent
Jun 16, 2008, 02:52 PM
Sorry if this isn't entirely on-topic, I just needed to vent! Has anyone else out there experienced this in software programming, either in the classroom or out in the workforce?

Happens in all walks of life I'm afraid, whether that is writing or anything else. Only thing to do is confront them about it and as you did inform the teacher. If you don't you run the risk of being the one accused of plagiarism.

laprej
Jun 16, 2008, 03:01 PM
Your professor should run *all* the code through MOSS (http://theory.stanford.edu/~aiken/moss/). It detects plagiarism in software and has a very nice web interface to show explicit segments of code which were copied.

iSee
Jun 16, 2008, 03:36 PM
I wonder how the other student expected to get away with it? Surely the professor would have noticed the copied code, even without a tool like MOSS, considering there are only three teams in your class.

Even if the other student planned to claim that you copied his/her code, it would be so easy for the professor to determine who really wrote the code with a few questions to each of you about what the code does.

Hmmm, if the student hadn't yet submitted the code, they could claim they only made a copy of it so they tinker with it to understand how it works. Is it possible that's what was actually happening? It's not plagiarism unless they try to pass off the work as their own.

Hemingray
Jun 16, 2008, 04:23 PM
Not sure... maybe he thought the teacher wouldn't look at the code that carefully? Here's the post he made to his team this morning:

Hi Guys,

Here is mine. I did have help on it, but I think it will work fine.

"Mine"... ohh, you mean MINE! Yeah, he definitely tried to pass it off as his own. Looking back on his assignment for last week, it appears he copied portions from his own team, and probably got away with this, which emboldened him to attempt wholesale plagiarism this week.

laprej, thanks for letting me know about MOSS, that definitely looks like a useful tool!

wordmunger
Jun 16, 2008, 04:25 PM
Make sure you've got yourself covered -- he could turn the tables and accuse you of plagiarizing him. Keep early versions of your work to show that you created it.

lee1210
Jun 16, 2008, 04:50 PM
Hemingray, it might help us advise you if you gave us a bit more information about what it is that you are required to share with others. It sounds like there is some sort of testing/peer review required. If you have to share your code with others, it's going to be very difficult to prevent dishonest individuals from stealing your code as well as that of other students.

If they just have to be able to test it, but not review it, you should be able to distribute your class file(s) and they can test it that way. You did the right thing telling the professor in advance, as things like MOSS aren't going to tell the professor who copied, just that copying went on. In a situation where you are not supposed to share your work, then that's fine, the professor can fail both students as you should not have given someone your code anyway. In a situation where students are supposed to share code, it becomes much more difficult to assign blame.

-Lee

Hemingray
Jun 16, 2008, 04:51 PM
Make sure you've got yourself covered -- he could turn the tables and accuse you of plagiarizing him. Keep early versions of your work to show that you created it.

Fortunately, in this case I think it's pretty cut and dry. I posted mine two days ago, he posted "his" this morning. Plus, mine is consistent with my previous weekly builds, whereas his drastically changed from last week to this week.

It's sad really, he didn't even change the variable names or comments or even TRY to make it look original...

robbieduncan
Jun 16, 2008, 04:52 PM
Now, I don't mind people taking suggestions from my ideas, but directly ripping off all 250+ lines of code I typed by hand? Not cool.

I've nothing constructive to add to to this, but I love the fact that you think that 250 lines of code is a lot! And how else would you type it if not by hand :p

Hemingray
Jun 16, 2008, 05:03 PM
Hemingray, it might help us advise you if you gave us a bit more information about what it is that you are required to share with others. It sounds like there is some sort of testing/peer review required. If you have to share your code with others, it's going to be very difficult to prevent dishonest individuals from stealing your code as well as that of other students.

If they just have to be able to test it, but not review it, you should be able to distribute your class file(s) and they can test it that way. You did the right thing telling the professor in advance, as things like MOSS aren't going to tell the professor who copied, just that copying went on. In a situation where you are not supposed to share your work, then that's fine, the professor can fail both students as you should not have given someone your code anyway. In a situation where students are supposed to share code, it becomes much more difficult to assign blame.

-Lee

Hi Lee,

Okay, I'll explain the purpose of the teams... each individual is to complete their own version of the assignment separately. Then, they post their completed assignment to their respective team folder. The other teammates test the program out, try to crash it, make observations, etc.

In this case, someone from Team B copied my program I had posted two days earlier in my team folder (Team A). The only thing he changed was his name, the name of the Java file name, and the wording in a couple of comment lines at the top. Everything else, right down to the variable names are unchanged. I did a comparison between the two files in TextWrangler, and 284 out of 291 lines were identical, so that gives you a pretty good idea!

Hemingray
Jun 16, 2008, 05:07 PM
I've nothing constructive to add to to this, but I love the fact that you think that 250 lines of code is a lot! And how else would you type it if not by hand :p

Hey now, you're talking to a guy who only has 8 weeks of Java experience! 250 lines may be nothing, but to a guy who's just learning, that's a lot! :o

How? You could use something like Eclipse or NetBeans to do a lot of the work for you... I'm just creating mine in a VATE.

gnasher729
Jun 16, 2008, 06:01 PM
Make sure you've got yourself covered -- he could turn the tables and accuse you of plagiarizing him. Keep early versions of your work to show that you created it.

In this particular case, it would be obvious to the teacher that one of them got their honest work stolen and the other is the thief - question is: Which one? A decent teacher would invite each one separately and ask them a few questions, what they were thinking when they wrote the code, why they did things the way the did, and I would expect that one would be able to give good answers and one wouldn't.

Hemingray
Jun 16, 2008, 06:06 PM
So, I get an email from one of this guy's teammates, and apparently the guy completely copied HIS project from last week!

He also brought to my attention that someone ELSE in their team just copy & pasted a program they found in a Java help forum... from a student who had this same assignment two years ago:

http://forum.java.sun.com/thread.jspa?threadID=720832

What a corrupt bunch of *$@#&... I'm totally blowing the whistle on this. This teacher is not on the ball.

ChrisA
Jun 16, 2008, 07:31 PM
Has anyone else out there experienced this in software programming, either in the classroom or out in the workforce?

Copying is only a bad thing in the classroom. At work I use other people's work all the time. We call this "Open Source".

Apple built most of Mac OS X using source code they did not write. All of BSD Unix is Open Source.


What a corrupt bunch of *$@#&... I'm totally blowing the whistle on this. This teacher is not on the ball.

All a teacher needs to do is put a code excerpt in quotes then past that into the google search box. He can find out quickly. Lazy teacher to give the same asignment over and oover to each class. Why are they teaching programming at a Unversity anyways? When I was there that was something you just had to figure out. They' give an asignment and you'd find a computer and pick a language.

One of the better instructors in a compiler class made up a language and the task was to write a compiler for that language in that language. We couldn't test our work.

Sayer
Jun 16, 2008, 07:35 PM
So, I get an email from one of this guy's teammates, and apparently the guy completely copied HIS project from last week!

He also brought to my attention that someone ELSE in their team just copy & pasted a program they found in a Java help forum... from a student who had this same assignment two years ago:

http://forum.java.sun.com/thread.jspa?threadID=720832

What a corrupt bunch of *$@#&... I'm totally blowing the whistle on this. This teacher is not on the ball.

Funny thing is they will prolly end up being product managers or something equivalent.

lee1210
Jun 16, 2008, 07:40 PM
Hi Lee,

Okay, I'll explain the purpose of the teams... each individual is to complete their own version of the assignment separately. Then, they post their completed assignment to their respective team folder. The other teammates test the program out, try to crash it, make observations, etc.

In this case, someone from Team B copied my program I had posted two days earlier in my team folder (Team A). The only thing he changed was his name, the name of the Java file name, and the wording in a couple of comment lines at the top. Everything else, right down to the variable names are unchanged. I did a comparison between the two files in TextWrangler, and 284 out of 291 lines were identical, so that gives you a pretty good idea!

Well, it's pretty tough, then. As long as you use something like Turn-in or some other facility that timestamps your submissions, this is going to be your best defense. Just always ensure that you've submitted your work before others see it. While code of this length is easy to review, the plagiarist seems to be pretty sloppy. I would put your name backwards in a few comments or as a few variable names. Put your mother's maiden name or a pet's name in some comments. If he's really sloppy, those should remain there, and you should have an explanation of what they are, and they probably won't.

-Lee

kalimba
Jun 16, 2008, 07:56 PM
Call me a snitch if you like, but I would also blow the whistle on this guy. Even if the creep manages to slip by and actually get his degree, rest assured that he will fail miserably in the real world.

HiRez
Jun 16, 2008, 09:39 PM
Call me a snitch if you like, but I would also blow the whistle on this guy. Even if the creep manages to slip by and actually get his degree, rest assured that he will fail miserably in the real world.I don't know, I think Sayer is right, he'll probably get a nice job as a product manager. I see so many incompetent people at work. I don't even have a CS degree and I know more about programming than many of them who have jobs as programmers/engineers.

bobber205
Jun 16, 2008, 10:37 PM
All a teacher needs to do is put a code excerpt in quotes then past that into the google search box. He can find out quickly. Lazy teacher to give the same asignment over and oover to each class. Why are they teaching programming at a Unversity anyways? When I was there that was something you just had to figure out. They' give an asignment and you'd find a computer and pick a language.

One of the better instructors in a compiler class made up a language and the task was to write a compiler for that language in that language. We couldn't test our work.

Yeah. It's totally ridiculous to teach a programming language!

What would that want to do that?

:rolleyes:

Sbrocket
Jun 17, 2008, 01:20 AM
Yeah. It's totally ridiculous to teach a programming language!

What would that want to do that?

:rolleyes:

Because the better classes and universities don't teach languages, they teach principles. A CS education should be language and platform neutral.

laprej
Jun 17, 2008, 01:42 AM
Because the better classes and universities don't teach languages, they teach principles. A CS education should be language and platform neutral.

I agree with the idea, but I do have a little difficulty believing in the end-product. I'm in a Ph.D. program and it's very clear to me the students who have only had the theoretical non-language/platform-specific education. Personally I think that they are at a disadvantage. Unless all you want to do is come up with algorithms (and only a very select few individuals are good enough to actually get by with only theoretical knowledge) then you'd better be able to implement your ideas at the end of the day.

Sbrocket
Jun 17, 2008, 02:00 AM
I agree with the idea, but I do have a little difficulty believing in the end-product. I'm in a Ph.D. program and it's very clear to me the students who have only had the theoretical non-language/platform-specific education. Personally I think that they are at a disadvantage. Unless all you want to do is come up with algorithms (and only a very select few individuals are good enough to actually get by with only theoretical knowledge) then you'd better be able to implement your ideas at the end of the day.

That's exactly what I was saying - of course you should be able to implement what you're taught, you just shouldn't have to be required to implement it in such-and-such language on such-and-such platform ONLY. That only serves to limit the breadth of student's knowledge and how well they can apply what they learn to their future work.

neonblue2
Jun 17, 2008, 03:53 AM
Copying is only a bad thing in the classroom. At work I use other people's work all the time. We call this "Open Source".

Apple built most of Mac OS X using source code they did not write. All of BSD Unix is Open Source.

But Apple aren't in a classroom going for a degree to ultimately get a job, are they? The code Apple uses is open source and they are allowed to use it but this student isn't.

By your reasoning this student should be allowed to pass off something like LimeWire or Azureus because the code is open and they're written in Java!

white89gt
Jun 17, 2008, 09:11 AM
To the original poster:

I too have been in several programming classes while working on my computer science degree. What you're describing is pretty rampant everywhere. Unfortunately, professors don't have the time to look through everyone's code to see if there are similarities between two different individual's assignments. Out of all the classes that I've taken, I've only had one professor that would actually look at the code. The rest would just compile and run it once. When they're grading several hundred of these types of assignments, it would be easy for them to overlook things like what has happened to you. I'm not saying it's right, and I'm not condoning the action in any way....it's just what happens.

Kudos on blowing the whistle on them, though. Hopefully the professor will take the opportunity to actually do something about it in order to discourage the practice in the future. Let us know what happens.

lee1210
Jun 17, 2008, 10:03 AM
I think this has been covered pretty thoroughly, and I'm not sure if you would really want to do this or not, but if the university has an academic integrity policy of some kind (most do) and the professor will not act on the information you have given, I might think about reporting it at a higher level.

I know there are negative ideas about those who snitch, narc, whatever, but this student is jeopardizing your success as well, as you are at risk of failing if you are blamed or implicated in cheating. It may be too much trouble to take this higher, but I would see how you are supposed to make reports about academic integrity. You probably have to go to a dean or ombudsman to report it, and you may or may not be able to do so anonymously.

-Lee

Krevnik
Jun 17, 2008, 11:43 AM
To the original poster:

I too have been in several programming classes while working on my computer science degree. What you're describing is pretty rampant everywhere. Unfortunately, professors don't have the time to look through everyone's code to see if there are similarities between two different individual's assignments. Out of all the classes that I've taken, I've only had one professor that would actually look at the code. The rest would just compile and run it once. When they're grading several hundred of these types of assignments, it would be easy for them to overlook things like what has happened to you. I'm not saying it's right, and I'm not condoning the action in any way....it's just what happens.

Kudos on blowing the whistle on them, though. Hopefully the professor will take the opportunity to actually do something about it in order to discourage the practice in the future. Let us know what happens.

Don't tell me this is why we are having such a hard time finding programmers in our area to hire. Sure, we get plenty of resumes, but when we screen them with an ad hoc 'exam' consisting of 5 undergrad-level questions... a good 90% of them show they lack the skills to understand what they are putting on paper. Ouch.

gnasher729
Jun 17, 2008, 11:45 AM
Out of all the classes that I've taken, I've only had one professor that would actually look at the code. The rest would just compile and run it once.

I once had the joy of grading student exercises in a programming course. And I got printouts (it's a while ago). There was one student in that course where I put my finger at the top of the paper, moved it down at about one inch per second, and I knew that her code would run and work fine. There was another guy whose code also worked. It usually took me half an hour to check his work.

If it takes me 30 seconds to read one students homework and see that it works, and 30 minute to read another students homework, they will get different marks. Correctness is not everything. Now the "compile and run once" approach, that is truly disgusting. Especially in a scientific environment, you might have to write code that cannot be checked (except by having someone else write another program independently, and comparing the output, and then you still don't know whose program is right).

Hemingray
Jun 17, 2008, 12:41 PM
Why are they teaching programming at a Unversity anyways? When I was there that was something you just had to figure out. They' give an asignment and you'd find a computer and pick a language.

That was for a Bachelor's program? That almost sounds more like a Masters level to me... wasn't there any class that at least gave the basics of software programming? If not, in my opinion it sounds like they skipped the shallow end and threw you straight into the deep end.

Kudos on blowing the whistle on them, though. Hopefully the professor will take the opportunity to actually do something about it in order to discourage the practice in the future. Let us know what happens.

Thanks. I don't like being a snitch, but when I'm the one paying good money to get a B.S., and I see a guy hitching a ride without doing the work, that's just not acceptable.

I did receive a reply from the professor, he is looking into the issue. I'll keep you updated. I also received a reply from the guy. He basically said "sorry, I'm having a hard time in this class".

And how.

iSee
Jun 17, 2008, 12:47 PM
So, I get an email from one of this guy's teammates, and apparently the guy completely copied HIS project from last week!

He also brought to my attention that someone ELSE in their team just copy & pasted a program they found in a Java help forum... from a student who had this same assignment two years ago:

http://forum.java.sun.com/thread.jspa?threadID=720832

What a corrupt bunch of *$@#&... I'm totally blowing the whistle on this. This teacher is not on the ball.

Ouch. The professor should come down on these guys like a ton of bricks. Since it's more than one student, the professor should consider taking it to the department head, too. If it's a wider problem, they need to stamp it out before it affects the reputation of the whole department.

You should just go to the professor, though (don't go over his/her head).

Does your school have an honor code or integrity policy or whatever?

robbieduncan
Jun 17, 2008, 01:47 PM
That was for a Bachelor's program? That almost sounds more like a Masters level to me... wasn't there any class that at least gave the basics of software programming? If not, in my opinion it sounds like they skipped the shallow end and threw you straight into the deep end.

Really? BSc at Edinburgh. Object-Oriented programming class. To that point we'd not been taught any OO languages (we had been taught C and ML though). 1st assignment: do some OO programming, use any OO language you like as long as it will compile and run on Solaris. We were not taught any particular language, it was expected that we'd be able to pick on up and apply the concepts. Which we all did. It's really not rocket science.

bobber205
Jun 17, 2008, 08:07 PM
That's exactly what I was saying - of course you should be able to implement what you're taught, you just shouldn't have to be required to implement it in such-and-such language on such-and-such platform ONLY. That only serves to limit the breadth of student's knowledge and how well they can apply what they learn to their future work.

My school does almost the opposite. We learn the "theotrical" stuff while we're DOING something. Theory for the most part is crap as far as I'm concerned. Practical experience is what counts. This isn't astrophysics.

Industry people can't hardly wait to hire anyone from my school because of the way it does things. We learn a wide variety of languages and have some even purely theotrical classes.

Next year I am taking Grammers, but it doesn't end there. The next term we write a full compiler on our own. How many CS students do that?

The head of our department got his masters from simply making minor modifications to one of his school projects!


:)

lee1210
Jun 17, 2008, 08:23 PM
<snip>

Next year I am taking Grammers, but it doesn't end there. The next term we write a full compiler on our own. How many CS students do that?
<snip>
I certainly did, as I'm sure most people who took a compilers course do. The question isn't about programming, it's whether programming is taught as a trade or a means of expression in the scope of an education in a science.

Your post was deeply depressing, and you made it sound like a trade school education rather than a university degree program. In my opinion university is there to teach you to think, to reason, and hopefully to be a well-rounded person. I think the dishonesty discussed in this thread is an assualt on those goals.

I hope you have a professor in the next few terms that changes your mind regarding theory being crap.

-Lee

bobber205
Jun 17, 2008, 08:30 PM
I guess I mistyped.

At my school we're not all about "no theory". But it's not emphasized more than practical experience. We have a very rigorous layout of courses.

But to say a university shouldn't focus and teach you a language in some depth is wrong. We're taught mostly C++ as they believe a mastery of that language leads to easy mastery in others.

We must be doing something right. Our graduates have an incredible reputation on the West Coast in general. As long as you're not a complete a$$hole in interviews, you're virtually guaranteed a job.

JML42691
Jun 17, 2008, 09:05 PM
I know that my story has absolutely nothing to do with code at all, but I love it when people plagiarize or copy work, and end up hurting themselves. We had a final review for a first year chemistry class in high school and we were given a packet of everything we had covered in the 2nd half of the year. The review sheet was to be graded and would make up 10% of our grade for the semester. It was a 50 point packet, and 15 of those points concerned two redox reactions which we hadn't covered much. We were given the packet at the beginning of one class, and were to hand it in at the end of the next class. I did most of the packet including the redox reactions at home. I knew that I did them wrong, and would work with them in class the next day. I walked into the class the next day, placed my books down in the room and went to the restroom before class started. When I came back, by notebooks were open and my packet was opened to the redox page. I knew perfectly what had happened, as a group of kids in the class scattered away from my stuff as I walked in. I spent the class fixing all my work and corrected the reactions. The look on the kid's faces the next day when we were handed the papers back was priceless. Boy they were pissed, I scored nearly a perfect score, while their scores were in the teens, with a big X on their redox pages. You have to love karma.

I hope that your scenario works out, and that the other kids in the group get the book thrown at them.

Watabou
Jun 17, 2008, 09:31 PM
I know how you feel. 250 lines of code is not a lot but it's still plagiarism.

I took java classes in high school this year and people plagiarised off of each other all the time. But it was usually limited because we didn't upload our codes and the teac her usually catches anyone he suspects of plagiarizing.

But it makes me so angry when someone does though. It is my code and copying it is not cool at all.

I had this one guy come up to me and say that he wanted help. I did my sincere best to help him about arrays and java.util.Arraylist but then he asked for the whole entire code so he can "take some hints from it". Yeah right.

pilotError
Jun 18, 2008, 08:00 AM
To the OP, I would say get over it and move on. Your reputation is more valuable than the small satisfaction of turning someone in.

You'll never know where you end up in your future. This guy could end up being your boss in the future.

Trust me, people know when your not doing the work. Everyone has a style, and that style permeates through everything you do. When someone like him comes forward and the code is so different from week to week, its a matter of time before he gets busted.

But to say a university shouldn't focus and teach you a language in some depth is wrong. We're taught mostly C++ as they believe a mastery of that language leads to easy mastery in others.


The only language they taught in my school was Assembler, mainly because its architecture dependent, and there was no other good way to teach it.

We were taught theory and concepts. You chose the language (within reason) and handed in your assignments.

I have to say it really helped me get over the language bias. I pretty much bounce back and forth between many languages (both scripting and compiled) and really don't have an issue with it. It doesn't bother me in the least when I have to write something complex in language I don't use all that often (or never before). It's all the same crap after a while.

Don't get hung up on being the best C++ coder evar because there will always be someone better than you.