How Easy Is It To Cheat In CS? 684
Pinky3 writes "The New York Times has an article on cheating in CS at Stanford. Here is a classic quote from one student: 'I wasn't even thinking of how it [sic] easy it would for me to be caught,' he said. One interesting strategy discussed is for the professor to make the final count for more of the final grade each time cheating is discovered. Share your experiences as a student and/or as an instructor."
Who cheats who (Score:5, Insightful)
Re:Who cheats who (Score:5, Interesting)
Absolutely. I've actually had to work with someone I knew was cheating in school and they couldn't code their way out of a pile of leaves, let alone a wet paper sack.
They got the grades because they cheated. They got the job because they got the grades. Eventually, they were among the first to get the layoff because B and C students like me just plain outperformed them day in and day out on the job.
Re:Who cheats who (Score:5, Interesting)
Years ago I worked as a developer for a subsidiary of Fujitsu. One day a colleague asked for my help.
The crux of the problem was that he was unfamiliar with the concept of a 'while' loop. Not the specific implementation in the language he was using, but the actual concept itself. He had some kind of computer science degree and he'd been working in the same team as me, as a developer, for at least two years.
It took me a while to realise what the problem was, as it never occurred to me that he might be unfamiliar with basic control flow. He sheepishly explained that the bulk of his degree was coursework (presumably he got some 'help') and that he'd been hammering square blocks into round holes for the last couple of years. From what I recall, whenever a while loop was appropriate he'd instead use a for loop with an extremely high upper limit and a break condition.
Re:Who cheats who (Score:4, Funny)
Re:Who cheats who (Score:5, Funny)
Re:Who cheats who (Score:4, Funny)
Re:Who cheats who (Score:5, Funny)
Journalism (Score:5, Funny)
Usually makes sense to establish what CS is in any article headline to establish defined context.
So it used to be a lot easier to cheat in CS. I used to use an old wallhack that I hex edited and was able to use for years without detection. When they switched from WON to Steam, it all became harder.
You meant computer science?
Re:Journalism (Score:4, Funny)
I thought the same thing and I never even played CS.
professors cheat unqualified/non-talented students (Score:3, Interesting)
Years ago I worked as a developer for a subsidiary of Fujitsu. One day a colleague asked for my help.
The crux of the problem was that he was unfamiliar with the concept of a 'while' loop. Not the specific implementation in the language he was using, but the actual concept itself. He had some kind of computer science degree and he'd been working in the same team as me, as a developer, for at least two years.
It took me a while to realise what the problem was, as it never occurred to me that he might be unfamiliar with basic control flow. He sheepishly explained that the bulk of his degree was coursework (presumably he got some 'help') and that he'd been hammering square blocks into round holes for the last couple of years. From what I recall, whenever a while loop was appropriate he'd instead use a for loop with an extremely high upper limit and a break condition.
I'm sad to say that I've encountered the same situation several times where someone that is supposed to be a CS grad (or what should be a junior/senior CS student) is lacking in something fundamental. Sometimes it is in things that are not so obvious (but should be) such as not knowing what an interface or abstract class is for or thinking that procedural programming means "programming with GOTO statements", or simply not knowing what structured programming really is.
In other cases, the deficiency is gra
Re: (Score:3, Interesting)
I actually used to do in something similar in an interpreted language (I won't name names).
This:
For i=32767, i=i+1, i 32767
{statements}
EndFor
would run much faster than this:
While True
{statements}
EndWhile
The token check to evaluate True took the interpreter longer than adding 1 to i which would overflow each time i reached 32767 and checking it was less than 32767.
Re: (Score:3, Insightful)
Re: (Score:3, Interesting)
You must be talking about the guy who wrote this code:
http://thedailywtf.com/Articles/Break-Out.aspx [thedailywtf.com]
Re: (Score:3, Interesting)
I had a similar experience with a co-worker who had an MSc in CS (from U. of Windsor, Ontario).
"Stack, stack! What's all this about stack?" he impatiently groused to me one day during a work conversation.
I pulled him into a back room (because I was embarassed for him) and explained to him what a stack was.
Re:Who cheats who (Score:5, Informative)
Those people will eventually be discovered, but I every time that happens it weakens the value of the diploma from that school. That's bad for the graduates who actually worked. The schools need to stop this kind of thing from happening - that diploma certifies that the person earned it. Not that they cheated their way through a program. If it happens enough, they should lose their accreditation.
Re: (Score:3, Interesting)
Absolutely. I've actually had to work with someone I knew was cheating in school and they couldn't code their way out of a pile of leaves, let alone a wet paper sack.
They got the grades because they cheated. They got the job because they got the grades. Eventually, they were among the first to get the layoff because B and C students like me just plain outperformed them day in and day out on the job.
I hated coding in higher level languages, but I loved doing it for microcontrollers in Assembly. Combined wit
You think that's bad? (Score:4, Interesting)
On The Other Hand (Score:5, Insightful)
When you get into a corporate environment, "cheating" is actually preferred. No reason to re-invent the wheel when there is existing code that gets the job done.
Need a report that's "like this one except for..."? Take the code for that report and add some mods and there ya go. Your manager would consider you an idiot if you started each project from scratch, re-writing all the functions and methods that already exist in other applications and have perhaps already gone through rigorous QA.
Besides, how many ways can you write a QuickSort?
Re:On The Other Hand (Score:5, Insightful)
But, to be successful over the long haul you have to be capable of producing the report from scratch in the first place. Cheating your way through school does not promote that skill set. Sure, you know how to copy and paste the right code but... can you tell why it's the right code in the first place? Can you optimize a/o improve the copied code?
So, I agree on your point re: reuseable code in the workplace but, you still need to do the work up front.
Re:On The Other Hand (Score:5, Insightful)
Re:On The Other Hand (Score:5, Interesting)
How is a person able to "add some mods" if he's spent four years cribbing everything and never coded anything himself?
You've never worked with COBOL in a mainframe environment, have you? At Cincinnati Bell Information Systems, there are billions of lines of COBOL, APL, PL1, Assembler, Forth, FORTRAN and God knows what else. You didn't write any NEW apps from scratch. You took what was written, modified to do "the new thing" and you were done.
And people were paid big money back in the 1990's for this. A buddy of mine still codes in Assembler for 5/3rd on their mainframe, because the speed of the code is so much faster, by several orders of magnitude. He occasionally gets to write a new program, but rarely. The majority of his job is modifying 40 years of accumulated code.
Re: (Score:3, Funny)
Re: (Score:3, Insightful)
You've never worked with COBOL in a mainframe environment, have you? At Cincinnati Bell Information Systems, there are billions of lines of COBOL, APL, PL1, Assembler, Forth, FORTRAN and God knows what else. You didn't write any NEW apps from scratch. You took what was written, modified to do "the new thing" and you were done.
and this lazy approach is why Y2K scared the shit out of all the banking companies. They have been reusing old broken code everywhere.
Why? because the managers were too stupid to al
Re: (Score:3, Insightful)
What you call lazy, the company calls good business. They want to pay for all-new code.
So, learning the mindset of a "code modder" instead of "code originator" is a survival skill. This is about putting food on the table and shoes on the kids. You do what the companies are willing to pay to be done.
You and I, we know this is the wrong way to do it for the long run. Businesses of that size have done their math and simply think it is cheaper to mod the existing code, than write all new code. And since it
Re:On The Other Hand (Score:5, Funny)
In university my friend and I worked together on the same assignment. We were in different tutor groups so we believed it wouldn't be detectable. Indeed it wasn't but he got 80/100 and I got 40/100! Mother f$@%^&. It's not like I could complain about it but my friend thoroughly enjoyed it.
Re:On The Other Hand (Score:5, Interesting)
In university my friend and I worked together on the same assignment. We were in different tutor groups so we believed it wouldn't be detectable. Indeed it wasn't but he got 80/100 and I got 40/100!
Actually, it sounds to me like you were caught. Giving different grades to people who "worked together" is a way for the teacher to punish people for cheating, if he or she doesn't want to go through all the bureaucracy involved with making a formal accusation.
Re: (Score:3, Interesting)
I have two anecdotes from my years of teaching low-level courses in CS:
1) An introductory Java course had about 5 TAs that took care of programming labs, helped grade assignments and tests. One TA received an assignment for a student, but comments in the code mentioned that the author of the code was another student who was under a different TA. Both TAs spoke to these student separately, and it was pretty simple to determine which one had the student that was copying code from the other. When *that* studen
Re: (Score:3, Interesting)
Ya I had the same thing happen to me.
I had some fiends take CS 101 late in their education. They had the same assignments. Two of them were in a bind, so I dug out my old assignment and gave it to them and said "go nuts". I did pretty well on it with a 80%, which I cobbled together the night before in about 2 hours before going to the University pub.
Anyway one come up to me all excited, they got a 90%. I was about to say "Son of a..." when the other showed me theirs, and the got 100%. W.T.F. I was pissed.
I
Re:On The Other Hand (Score:5, Interesting)
Re:On The Other Hand (Score:5, Insightful)
But that's not cheating. Academic cheating is a breach of ethics: you're told your work must be original but you re-use some else's anyway, without permission from your instructor.
The professional analogue of academic cheating is copyright and patent infringement: using third-party code without consulting your supervisor, the legal department, and so on. That is definitely not encouraged in any corporate setting I know of; the threat of an IP lawsuit is so great that it could drive a small or mid-sized company out of business.
Sharing code between two projects at the same company may or may not be allowed depending on the business use of the respective code bases. For example, the company may not want the latest fancy libraries from R&D being imported into their internal business apps. Again, if you went and did that without approval, I doubt your boss would be happy.
Re: (Score:3, Insightful)
Yeah, as a few others have said, I agree with you and I was going to post something similar. At least up to a point. Most software development projects are highly cooperative affairs and its rarely a matter of success hinging on one's brilliance as a coder. Still, you have to be able to contribute and at least some members of the team need good design skills of various types.
The reality is that successful projects mostly succeed because someone in charge is good at utilizing the strengths of the other team
Re:On The Other Hand (Score:4, Insightful)
Need a report that's "like this one except for..."? Take the code for that report and add some mods and there ya go.
Dear god, anything but a copy and paste programmer. We had one here and the results and the results are devastating. Giant swaths of repetitive code pasted in large blocks, all mangled (I mean 'modified') in their own way. It's obvious the guy had no clue what he was doing and it's even harder to understand what his code is doing because so much of it is completely unnecessary.
Your manager would consider you an idiot if you started each project from scratch, re-writing all the functions and methods that already exist in other applications and have perhaps already gone through rigorous QA.
Sure, but building a reusable code base is something I would hardly consider cheating. Building proper and efficient classes and then leveraging them to handle 80% of your work takes experience that you cannot obtain by cheating.
Re: (Score:3, Funny)
We had one here and the results and the results are devastating.
Good example! :)
Re: (Score:3, Interesting)
I was lucky enough to take a class in college where the prof understood and embraced this idea. After all, he was teaching us to be engineers rather than coders. On the first day of class he told us in no uncertain terms that, if we found some code that would be useful in our projects, we were free to use it as-is provided we clearly noted where it came from.
He even told us a story where, in a previous year, he (inadvertantly) gave out an assignment that was almost identical to an assignment given at anot
Re:On The Other Hand (Score:5, Interesting)
Besides, how many ways can you write a QuickSort?
When I was grading programming homework a decade or two ago (theoretical physics, oddly enough) it was obvious when people shared their code. The use of spaces, indentation, variable names, curly braces etc. really made each assignment unique, and the people who resorted in copying someone's code almost never bothered to make any changes at all. My solution was to give the first assignment turned in whatever grade it deserved, and each subsequent copy a 0, and that seemed to make short work of the practice. At my current university the response would be significantly harsher.
Re:On The Other Hand (Score:4, Interesting)
My solution was to give the first assignment turned in whatever grade it deserved, and each subsequent copy a 0, and that seemed to make short work of the practice. At my current university the response would be significantly harsher.
My father once taught computer science to high school students. His approach was to grade the assignment, and divide the points equally among all the students who handed in substantially identical work. (One good assignment, total grade 90%. Handed in by three people -- everyone gets 30%.) The problem didn't usually recur.
Re: (Score:3, Funny)
My father once taught computer science to high school students. His approach was to grade the assignment, and divide the points equally among all the students who handed in substantially identical work. (One good assignment, total grade 90%. Handed in by three people -- everyone gets 30%.) The problem didn't usually recur.
Slight permutations of the assignment also provide interesting results, as each student hands in identical answers to different questions.
My friend had an interesting tale when a student c
Re: (Score:3, Insightful)
I don't know... there seems to be a lot of perks for Goldman Sachs employees
Re:which snappy comback to choose? (Score:3, Funny)
A - You're talking about CS students here. No need to include the possibility of "she."
B - Is that you, Tiger?
Re:Who cheats who (Score:5, Funny)
Some times not even later.
As a CS student my buddy and I (we were working as teams) were tired of people copying our stuff. We shared with anyone who wanted to, and had full read access for anyone to our code, so we didn't make it hard for them to copy. Still, it was annoying to do the work and then have others just copy and hand in.
Our assignments required print-outs delivered with the software (yes, this is before there was even an internet) and we suspected people just copied our software, compiled it (which incidentally at the time could take hours) and ran it without even looking at it. So, just for fun, we inserted into our own code the equivalent of a system call to "rm -rf $HOME/*" (yes, this is before we got our Pyramid Unix boxes, so it was not exactly that). We did this two days before the assignment was to be delivered. It took less then an hour before we heard the first "WHAT THE F#CK HAPPENED???". Five teams were unable to deliver their assignments.
Interestingly two of the teams complained about our behavior to the professor. His only reaction was to ask if they had some serious mental problems (or the polite equivalent). I am sure today we would have been sued and the morons would have won since we "hacked" their accounts.
Re:Who cheats who (Score:5, Interesting)
I am sure today we would have been sued and the morons would have won since we "hacked" their accounts.
That's funny you actually mention that!
approx 8 years ago, I was at university. We did have internet and decent computers. I did the same kind of trick as you did.
My trick wasn't as bad, I only made my program modify their login scripts so that they wouldn't be able to login anymore (it would ask the password in loop via a fake login program, always denying them access). No data deleted.
One single guy got caught, it was funny, except that everyone knew if someone was able to do this at the time, it was me. Thus they inspected my code, and my account, and shortly I had to see the director of the university. I was asked to leave the university for "hacking" and that there would be no repercusions on my scholarity. If I had chosen to ignore and try to stay, I would have to deal with a trial instead.
I left this university and went into a smaller school instead. yep it kinda sucks i suppose. Nevertheless.. the guy never got punished for cheating. Best part of the story I guess.
I'll mention this university was in the French riviera.
Re: (Score:3, Informative)
I forgot probably a small bit of the story:
it took a week for the admins of the university to figure out the trick (tells a lot about their abilities or the lack thereof - i bet they were cheaters too lol), thus they lost a week of time, claiming it to be the reason why I had to leave or face trial.
Re:Who cheats who (Score:5, Funny)
When I took CS101 I was well beyond the level of the class, so, in order to make the programming assignments interesting, I added extra functionality on top of what was requested. Little stupid stuff mostly, but I tried to make it clever, and since the testing was automated, it didn't matter as long as it was to spec.
The last project was to write a program to simulate one of those stupid "digital pets"; it had to have a pet object, and various, feed, cuddle, punish, methods, etc.
One of the boundary conditions was that the pet had to starve if you didn't feed it, but the program was set so that you could have as many pets as you wanted at the same time...Well, I decided to put a little rock 'n roll in there, and if one pet hadn't been fed for a certain amount of time, he had a chance to start a "pet deathmatch", and try to eat another pet.
The code for the combat and the actual fight was massive. Most peoples code was a couple of pages...mine was closer to 50.
I printed it out at one point, so I could take it to dinner and work on some bug, and someone swiped it off the printer, and subsequently copied the WHOLE THING and turned it in for the assignment.
Re:Who cheats who (Score:4, Funny)
When I took CS101 I was well beyond the level of the class, so, in order to make the programming assignments interesting, I added extra functionality on top of what was requested. Little stupid stuff mostly, but I tried to make it clever, and since the testing was automated, it didn't matter as long as it was to spec.
The last project was to write a program to simulate one of those stupid "digital pets"; it had to have a pet object, and various, feed, cuddle, punish, methods, etc.
One of the boundary conditions was that the pet had to starve if you didn't feed it, but the program was set so that you could have as many pets as you wanted at the same time...Well, I decided to put a little rock 'n roll in there, and if one pet hadn't been fed for a certain amount of time, he had a chance to start a "pet deathmatch", and try to eat another pet.
The code for the combat and the actual fight was massive. Most peoples code was a couple of pages...mine was closer to 30.
I printed it out at one point, so I could take it to dinner and work on some bug, and someone swiped it off the printer, and subsequently copied the WHOLE THING and turned it in for the assignment.
Re: (Score:3, Funny)
That was what was so funny.
Anyway it wasn't obsession. I had time on my hands, and I'd never worked with Java before (this was a long time ago), so I was teaching myself stuff, and having fun, meeting people..."Hey does your program work?" "Sure" "Run it and let me see...Okay, Okay, O...What...The...Fuck?"
Re: (Score:3, Interesting)
True. True. True!
I had a fellow student during my university years who cut corners where he could. Which wasn't too hard, considering our profs didn't really care whether you cheated (well, most of them). And often I wondered why I didn't try it as well. Ok, I did. In electrical engineering and hardware design. But I knew I'd not end up in hardware (now it bites me in the behind when I try to toy with atmels, the code is fine but I usually need helpl with the soldering, but ... ohwell).
He on the other hand
Re: (Score:3, Insightful)
When I was in college, we had lots of practical group assignments for which we had to deliver reports. In the end of the semester the teacher for each discipline would sit with every group and discuss the reports.
This was great, since the teacher could tell very quickly (with sophisticated interrogation techniques) who did the assignments and who slacked. And then the slackers would go on a round of technical questions. They could cheat on the exams, but they couldn't get through the discussion with the
first post (Score:5, Funny)
I cheated and copied this post from another article.
Re:first post (Score:5, Funny)
He has a great career in front of him (Score:5, Funny)
From TFA: Mr. de la Torre was taking the computer science class for a second time in his junior year when he cheated. After he was disciplined, he resigned from his position as student body vice president in November
He shouldn't have resigned, I think he has the makings of a great politician...
CSIt's easy... (Score:5, Funny)
Re: (Score:3, Interesting)
Re: (Score:3, Funny)
But when I googled 'define:CS' I found the most appropriate definition: 'Caugt Stealing'
Expelled (Score:3, Insightful)
Just make the punishment for cheating sufficiently harsh. You cheat.. you get kicked out. Simple.
I dunno about Stanford but when I went to school my CS classes (especially the earlier ones) were huge. I never met most of my classmates. I would be *extremely* pissed off to have my academic standing affected by someone else's cheating.
Re: (Score:3, Informative)
Just make the punishment for cheating sufficiently harsh. You cheat.. you get kicked out. Simple.
Many years ago, the University of Virginia had a policy where students caught cheating were kicked out, and then their records were burned publicly. Don't know if they do this anymore.
Re: (Score:3, Insightful)
What if someone steals your work and turns it in first?
Then YOU get nailed for cheating...
Re:Expelled (Score:5, Insightful)
Harsh punishments don't work. Because the punishments are so drastic, instructors become reluctant to give them out to "good kids" who made "one mistake." Lax punishment becomes to de facto standard, and of a rogue instructor tries to apply the penalties as written, his students and his peers look at him as a monster and exert considerable pressure to loosen up.
Re: (Score:3, Insightful)
The difficulty is that stronger punishments require stronger proof. You must be be 100% sure that you have the right person. It would suck if you tossed-out the best and brightest because people were copying their work.
Re: (Score:3, Insightful)
Cheating in CS? (Score:5, Funny)
Wall hacks and aim bots, that's how...
Maybe cheating in CS is easy... (Score:4, Funny)
... but also cheating in CS:S is not that difficult.
Valve should really stop those nasty cheaters.
Now that I've posted a reply, I'm going to RTFA.
Re:Maybe cheating in CS is easy... (Score:5, Funny)
reading the article is definitely cheating. If you cant divine the information from the summary , at least try to infer it. The low uid guys only read the first three letters of the headline.
Half of the story. (Score:3, Insightful)
Re: (Score:3, Insightful)
No outside help ? (Score:5, Insightful)
I am wondering what exactly they are calling cheating here, since the code says they "will not plagiarize, copy work or get outside help."
Plagiarize and copy are obvious, but I never heard of asking for help on homework being cheating. How else does one learn ?
If you didn't get the concept in class, you are out of luck, that's it ?
I was in an Engineering program (Stevens Institute in Hoboken), and I would venture that at least half of homework was done in study groups, sometimes just to bounce idea off each other, sometimes as a collaborative group effort. This was part of the learning process.
Re: (Score:3, Insightful)
Agreed. Learning to ask for help, getting outside help, and incorporating that advice into your work is a huge part of learning.
There's definitely a sliding scale between: "will you help me to understand X?" and "will you do X for me?" And it's more than just a line between those two points, because there are other ways to get help, such as group projects, or working side-by-side with an expert. It seems obvious to me that the intent of the code is to stop students before they get all the way to the lat
Re:No outside help ? (Score:5, Interesting)
Re: (Score:3, Insightful)
And are you willing to answer your cell at 2 AM on the morning a big project is due?
I didn’t think so.
I’ve had one prof. who would. He was, quite probably, the best prof. I ever had.
Cheaters (Score:3, Funny)
How can I reach theeese keeeeeeeds???
I caught several cheaters (Score:5, Interesting)
I did many years in grad school and discovered several cheaters. The lack of punishment for such was part of what caused me to abandon a career in academics. Part of the discovery that academics is a very very political space. A system that tolerates cheating perpetuates cheating and rots itself from within.
1) Crowded class writing mid-terms. There are 2 copies of the exam with minor but significant variances handed out in a checkerboard pattern. Am proctoring and see a student looking at another paper get another to proctor to witness it. Make a note on the exam when collecting it. Sure enough they guy has the right answers to the wrong questions. No way that would happen without copying. Have to write a formal description of what happened, it goes up the chain. Nothing but a "formal reprimand" on the record and zero for that exam.
2) Programming lab is scheduled 1/2 the class every other week. They are supposed to write code during the lab and have the help of the tutor to explain things. On second week I have people handing me a program "how does this work". I reply "didn't you just write this?" It takes me a couple of minutes to get them to admit they did not write it.
This is university, they are paying to learn. Yet they are unwilling to work at it. I wonder what they are looking at getting out it?
The number of taxi cab drivers with university degrees does not surprise me.
Re: (Score:3, Interesting)
Re:I caught several cheaters (Score:4, Interesting)
I attended a school where cheating was also grossly ignored. The most flagrant example I can think of was in an intro to software engineering course where about 70% of our final grade was based on a semester-long project. Of course, the semester-long project does not change from semester to semester, so last semester's (and the one before that, and the one before that) projects were readily available. On the final day of class, each group (maybe 10 groups of 3 or 4) presented their projects. More than half of the class turned in the same project from the previous semester. Some of them actually took the time to at least change the colors on the GUI, but two or three did not. I talked to some of the students that turned in the same project the next semester and asked if anybody had called them out on it, and they all said that they got their A and nothing happened. The professor did not care at all.
Re:I caught several cheaters (Score:5, Insightful)
Re:I caught several cheaters (Score:5, Funny)
Regarding your first scenario: My favorite story on that front was from my dad, who teaches math at a private high school. He handed out a midterm with multiple versions, and within a few minutes had a student raising his hand to tell him "Mike's test is different than mine!"
Re:I caught several cheaters (Score:4, Insightful)
This is university, they are paying to learn.
That's a misconception on your part. The vast majority of kids at university are there to do whatever it takes to get that piece of paper. The goal isn't to get educated; the goal is higher earning potential by virtue of a better job.
A ramble from the TAs view (Score:5, Interesting)
Cheating in CS is terribly easy to detect. We had programs we could use to pick up anything suspect, but I never actually used them - at the entry-level I was teaching at, it was pretty easy to catch someone out. In fact, often you can complete the assignment in the time it would take you to modify your stolen/plagiarized code so as to be undetectable. Half the time you just need to google the code they submitted before you find a forum/Yahoo Answers post from the student in question, and once you've been coding a student for a while you get a good feel for what exactly is and isn't their style and their code.
As to preventing it: there was a very simple policy at my university. You cheat, you fail. In most cases, it was rarely followed. We tended to be far more strict at the Summer School sessions, but then again, we also tended to get considerably more problems, mainly because the high school students and foreign exchange students attending didn't know better. The university also didn't really have a problem showing them the door.
Undergraduates were more of an issue. A lot of the time, we would let them know we'd discovered it, and let it slide. Repeat offenders were usually dealt with by using some kind of grade penalty. Very rarely did students get referred for academic discipline (although this is partly due to the entry-level nature of the courses I taught. Something high-level, or with a substantial amount of original research required, would be another story).
Finally, and perhaps most importantly - why were these students cheating? Well, honestly, I suspect because of the academic pressures placed upon them. I'd be extremely interested to compare the rates of detected cheating at somewhere like MIT, where grades are rounded up/down for GPA (ie, get a B+ and it's recorded as a B in your GPA, get an A- and it becomes an A) and at my university. Given the vast number of emails I used to get at the end of each semester from students desperate for a grade boost to help their GPA, I can see how some might have convinced themselves it was 'ok' to cheat. And maybe....just maybe...people are cheating because they're not getting the support they need. The article says the guy was taking the class for the second time. Sounds like maybe he wasn't getting the one-on-one help and extra support teaching staff should be giving him. Just a thought.
CS doesn't require cheating (Score:3, Interesting)
It requires a personality trait. If you don't have it, then you shouldn't be taking that course. The last thing the workforce needs is another cert chaser who has no talent and no skill in that line of work.
And frankly, if you have that personality trait, then cheating is far from necessary. CS isn't so much about memorizing as it is about understanding the material. There are often many correct answers in CS.
Very easy, and very easy to get caught (Score:3, Insightful)
I've been TAing every semester since I got to college, and every semester we tell people that we run their submissions through MOSS [stanford.edu] (the canonical code plagiarism detector, hosted at [and perhaps developed at?] Stanford). We exhort that it's really not worth their trouble to try to get their code past it, and that they really ought to just contact the course staff if they're in a bind, as there's really nothing worse for them than getting caught cheating. And every semester, we find several pairs of students who have copied each others' code. Sometimes it's a literal, word-for-word copy (comments too) with the name changed (or occasionally without!); sometimes it's the same structure with different comments, suggesting they just sat side by side and wrote the lab together.
I'd really like to see the penalty for cheating to be an immediate failure in the course, if not expulsion. The idea that honest students spend hours working on an assignment, and then someone who didn't plan their time well, or doesn't get things as well, or is too lazy to ask for help thinks they can just not do the work and get the same grade is offensive, and cheaters should be punished accordingly.
Algo (Score:4, Insightful)
There are only so many ways to write a Las Vegas Algorithm when the teacher counts off for not following the algorithm as stated in pseudo code in the book.
Then he wants you to structure it a specific way. Then he wants a certain input. Then he wants a certain out put.
By them time your done, the only part of your program you get to "write" is the gui to display the output.
Oh and it has to be in the prof's preferred language, java.
So you end up with alot of remarkably similar programs, especially when the teacher has all these style demands and the same prof teaches students 2 or 3 classes in and everyone starts naming classes and methods the way he does.
Cheating - remove the incentive to cheat instead (Score:3, Interesting)
Comment removed (Score:4, Insightful)
I can has degree nao? (Score:3, Interesting)
I apologize for the long post. The issue of cheating is very dear to me. It was the single most frustrating part of my education, and I often felt as if I were the only honest student in my undergraduate program.
As another poster mentioned, blame can be pinned on both instructors and students. But "blame" is only useful when it can be used to fix the original problem, and this problem is too big to fix by pointing fingers and admonishing each other. It's a cultural shift toward the worst, and we're powerless to stop it.
You can only deal with cheaters when cheating is uncommon and has an attached stigma. We've come to the point where cheating is so common that accusations of plagiarism are just met with "so, lol?".
Really, what we have here is a failure to take life seriously. In school, everything is a joke, a show. Nobody earnestly attends class, or does homework. People who ask questions in class are either trying to delay the lesson or merely stroke their ego by one-upping the professor. (I've been accused of both.)
At least in my experience, the typical student doesn't even seem to consider the idea that someone might want to actually learn. Learning is a chore, class an ordeal, and the professor the enemy. As a result, shameless, rampant cheating is rampant in the "I can haz degree nao?" generation.
My favorite example involves a project to build a userspace filesystem "driver". It was simple enough, and the professor even gave us interface specifications.
The reaction was catastrophic. Students complained that the assignment was too hard, that they didn't know the algorithms, and that half a semester was too little time. They talked in the hallway in hushed tones of outrage and asked whether they could appeal to the dean.
The real issue behind the complains is that the assignment would make them think, and most of them had no idea how to do anything beyond compile code fed to them with a spoon. The assignment involved analytic thought, which my fellow students appeared to consider Herculean.
"Poor students whine about having to do real work for once," you might say.
Except that the TAs for the class shared this adversarial, anti-intellectual mentality. In recitations, the TAs provided "sample code" sufficient for the whole project. Crisis averted, right? A grades were handed out to people I personally knew had no idea of when to use a loop instead of a function call.
These people graduated with degrees in CS, but they're completely unable to develop original software. Tasked with an assignment, they'll just copy code from the internet or ask on IRC, laughing about it the whole time. They'll choose systems based not on their technical merits, but on "documentation" --- meaning they'll choose the system that has the easiest-looking introductory tutorial. Their code will have bugs because they have no idea how to code, and their programs are chimeras of copy-and-pasted examples.
We're all worse off for these imbeciles running around, and those of us who consider this profession a craft, and who take pride in our work, and impoverished by having to share a degree with people who want to avoid thinking at any cost, and who laugh at the idea of serious work. The laughter is what bothers me most. It's how I know we're doomed.
*Never mind that the "operating systems" class never involved leaving ring 3.
Be honest (Score:3, Interesting)
I RTFA and I agree that a big incentive to cheat is when your project doesn't work. When you still can't find that nagging bug at 3 AM, cheating seems like a good option. But I think honesty is the better way. Once, I turned in a project that didn't work ; I had an oral exam a few days later to defend my code, and one the professor actually congratulated me on the code. Turns out he had just read the code and liked it, because I followed his specs to the letter and used all the OOP patterns that he taught in his course. The one bug that made it crash was a missing call to an ancestor's constructor, undetected by the compiler (this was in Turbo Pascal)
My own Turbo Pascal story (Score:3, Interesting)
I would offer help to other students at this one college I would visit, and this one guy had a problem with his Turbo Pascal program (version 3) that it wouldn't compile and he couldn't figure out why. This was a fairly long program, say on the order of 20 screens (about 1,000 lines) so it wasn't clearly obvious. So I ask him if I can make a few changes. I go in and I find a point where the code should be complete, e.g. no pending procedures, and I insert a 'BEGIN END.' I exit and compile and the compil
Malicious Cheating (Score:3, Interesting)
My junior year there was a CS lab that was particularly tough at the end of the semester. I turned it in (a few days late) but managed to complete it (first true all-nighter I pulled in school). I was taking the final in the CS labs (they put 6 bugs into your program and you had to find and fix them) and a student next to me was escorted out into the hallway where the dean, a sysadmin, and another student were waiting for him.
Apparently, he couldn't pass the course unless he turned in that lab on time. So, when a student next to him got up to get a course TA to verify his program (without locking his screen), this student scp'ed a copy of the student's program over to his account. But he didn't stop there, he then deleted this students program and replaced it with a copy of his incomplete program.
The student whose program was stolen met up with the sysadmins and they were able to determine what happened by looking at logs.
Needless to say, the student cheating was expelled.
No two programs are alike? (Score:3, Interesting)
From the article: "Programs are idiosyncratic as sentences and no two are alike," he said. "They are not even comparable if they are independently generated. It's particularly easy to detect if they've been copied."
While it is extremely hard to independently produce duplicate programs at the 3GL level, it isn't impossible. The problem space will have only one optimal solution. The semantics of the problem space could easily lead to a common choice of classifications. The higher you go in abstraction, the more likely it is to produce identical programs.
I did a couple of times (Score:3, Interesting)
I won't say where, but a couple of times I did someone else's college computer programming assignment for them, making sure I 'dumbed down' the quality of the work so that it wouldn't be too obvious that someone who has a considerable amount of experience (over 5 years, then) did it, as opposed to a new student. What can I say other than I was broke and needed eating money, and as with today, it was just as hard then to get a job programming without a degree as it is now. At least it's over 20 years ago so the statute of limitations applies, presuming I did anything illegal. I can admit, however, I think I actually learned a few things from having to do the assignment.
"About the things I've done in the past, I hope either they've been forgotten, or if not forgotten, covered by the Statute of Limitations."
— Robert A. Heinlein
Sometimes you don't have to cheat to get caught (Score:3, Informative)
The professor who teaches operating systems at my university runs people's code through an automated cheating detector. The first operating systems project ends up being around 8 lines of code to complete a stub he provided. In a class of 30 people, there will inevitably be a couple of people who produced similar enough code that they get a zero on the assignment even if they may not even have talked to the person who had similar code. After the first project everyone gets scared and writes the most obscure code they can to avoid being accused of cheating.
On another note, I was a teaching assistant for a lab last semester, and caught a few students cheating. Most often I could hold the two assignments up to the light and see that each line lined up exactly. I had a couple of students who would hand in the same assignment in different fonts, but I nailed them for having the exact same typos.
There were some other people I suspect might have been cheating, but they changed variable names and switched around lines if the order didn't matter to the point where I wasn't confident that the similarities weren't just because they were solving the same problems.
Re:Cheating is laziness... (Score:5, Insightful)
...huh?! If we're talking about university classes, the idea that anything other than perhaps the intro courses would use materials provided by some company (say, the textbook publisher) is absurd. Also, what kind of a professor would outsource their tests to an independent organization? How can they possibly know the course material well enough, and adjust for what's been covered during the semester, and such?
Re: (Score:3, Insightful)
Re: (Score:3, Insightful)
I would also like to add, that cheating is far worse in the US since the teachers grade the students instead of third party independent testing organisations who are contracted to create unique material for each test.
Umm, citation needed?
Are you accusing the teachers of helping the students to cheat? If so, outside tests don't help. Thanks to the All Children Kept Behind act, every public school has been using third-party independent testing. Since the teachers and districts are evaluated based on their students' performance, the teachers and administrators themselves have been caught helping students cheat (either by giving away answers during tests, or by editing students' responses before submitting them.)
Or perhaps
Re:Cheating is laziness... (Score:5, Insightful)
Yup, good programmers are lazy. Good programmers will write the smallest amount of code to solve the problem at hand, because the more code you have, the more potential for bugs. In general, 50-90% of development time is debugging, so a lazy developer will write code that is easy to debug (short, simple, well-structured). If this cuts debugging time in half, it can double or triple productivity.
Unfortunately, students seem to not be learning how to be lazy very well. One course I taught had a URL at the end of the coursework sheet which pointed to a site that had code that did around 90% of what you needed for a passing grade. A lazy student would have copied this, changed a few things, and then spent some effort on the things needed to get from a pass to a first class grade. Only two of my students actually did this. In another course I taught, the back page of my hand-out notes had the complete solution to one of the questions in the assignment that I set. Only 10% of my students even attempted that question, and of those less than half got it right.
I think I blame schools giving grades for effort. It reinforces the idea that putting in a lot of effort is laudable, even if you don't achieve anything.
Re: (Score:3, Insightful)
Your mentality is the reason schools no longer teach grammar. Some students are bad at it and complain: they're "bad test takers", or "the class doesn't reflect real-world tasks", or they're "bored".
That's bullshit. Educators knew it and students knew it. (And laughed to their friends about "getting out" of things with excuses like that.) But I imagine educators tired of an endless cavalcade of students try to wiggle out of actually learning, and realizing that students who don't want to be taught can't be
Re: (Score:3, Interesting)
No certainly, but what if there isn't a program for them and comp. sci. is the closest there is? I'm not saying they should necessarily get a comp. sci. degree, but that perhaps, a better solution would be to grade students in a range of ways- give them a rating on their communication abilities, their implementation abilities, their knowledge and so on. As I say, I really don't know what the solution is and it's not something that can be solved in a Slashdot thread.
I suppose really to put what I'm saying a
Re: (Score:3, Insightful)
Re:Cheating (Score:5, Insightful)
My ego is small enough that I can accept that I'll never be able to match their talents, nor do I want to work that hard to be that successful.
Talent PLUS luck (Score:5, Insightful)
There's many talented and hard working people (much more talented and much harder working than myself), but only some of them are gazillionaires; the external environment (that I summarize as luck) counts a lot; both who are your parents (which heavily influences how you develop your talents, which schools you go to etc) and being at the right place at the right time.
If you think about it, Bill Gates was probably going to be a millionaire (his parents were very well off, he was (is?) driven, very smart and an SOB :), however, if IBM hadn't messed up, the timing hadn't been right etc he'd probably just be one more millionaire.
Re: (Score:3, Interesting)
I stole bad code once. True story.
Senior year, tons of hellish classes, and two huge project-driven coding classes. Now, one class was group projects, and the other class was solo. And it turned out that 3 of the 4 people in my group were in both classes.
So due date is coming around for both projects and they were due 8 hours apart (midnight thursday and 8am friday) and the two other guys in the group stop working on the group project and start working on their solo class project...Together. I say, "Fine, I
Re: (Score:3, Informative)
Nope; Obfuscation isn't enough. Specialized parsers measuring similarity exist:
http://www.wired.com/science/discoveries/news/1998/02/10464 [wired.com]
While you can't catch everyone, disguise is not enough. (And not a measure of skill either).
Re: (Score:3, Interesting)
During my time at CMU, I saw very little of this going on. The female students in my admission class were just as good as the guys and didn't need a lick of help (with the exception of one who got a -lot- of tutoring to make it through anything, but she got that through official department channels, not through flirting). The only time I saw it happen at all was non-majors taking CS-127, the Introduction to Programming Course in Java. Unfortunately, introductory programming is a hard course to teach well