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)
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.
Half of the story. (Score:3, Insightful)
Cheating is laziness... (Score:2, Insightful)
Cheating is laziness by the student but also the teacher who allowed it to take place. Cheating is very easy to avoid but it does require educators to be willing to create assignments that they themselves didn't download or buy from a teaching website. The fact is that when you use the same exact assignment year after year you're going to make cheating both accessible and profitable.
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.
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?
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.
Dumb cheats are easy to catch (Score:1, Insightful)
You can obfuscate someone else's code such that the prof won't notice. OTOH, if you don't know what you are doing, you will make some dumb mistake that will lead to your detection. My favorite was the student who left in all the inline comments (probably because he didn't recognize them for what they were).
Students who can successfully disguise someone else's code could probably write their own code and are just being lazy. As such, it isn't a complete disaster if they pass the course somewhat undeservedly.
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:Who cheats who (Score:3, Insightful)
I don't know... there seems to be a lot of perks for Goldman Sachs employees
So funny.. (Score:2, Insightful)
Why people would even try cheating in a CS class at a decent university is a mystery to me. At my school in Cambridge, Mass. (not MIT, the other one), every line of code turned in for intro CS classes was run through a code analysis and similarity detection system. The system was very good, I am not aware of any false positives, and it would be more work to re-engineer somebody else's code to avoid detection than to just write it from scratch.
This system was in place somewhere in the early to mid 1990s (I was a freshman in 1996, and it had been used for at least a year). This was explained to everybody the first day of each of the 2 intro CS classes. There were several people in my freshman class in '96 who were expelled as a result of being caught cheating in CS 50. Oops. Anyway, this is now old technology - if you don't know it exists or don't believe it's so easy to fingerprint code, you are an idiot.
Furthermore, if you were the "cheatee" and there was reason to suspect you willingly provided the cheater with your code to copy, you would both be subject to expulsion. Ouch.
If you are too stupid to realize that when you hand in plagiarized code, you aren't taking a *risk* that you will be caught, you are engaging in the certainty that you will be caught, then you don't deserve to be at a university of this caliber.
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: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:Of course it is easy! (Score:3, Insightful)
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.
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.
Re:On The Other Hand (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 members. Even a technically weak team can do quite well on many classes of projects if well led. CS courses have gotten better at teaching team building but still overemphasize coding. One wonders if some of the 'cheaters' might not actually be on the right track...
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.
Re:On The Other Hand (Score:2, Insightful)
...OK, OK, maybe it's simpler to just not cheat.
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: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:On The Other Hand (Score:2, Insightful)
Re:No outside help ? (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 latter.
Or perhaps the clause is temporally dependent: maybe they really mean the code to say "will not plagiarize ever, will not copy work ever, and will not get outside help during an exam or quiz unless it has been explicitly permitted by my instructor." (I'm thinking of one of my profs who holds "open-notes / open-laptop / closed-neighbor" exams.)
Re:Half of the story. (Score:3, Insightful)
Comment removed (Score:4, Insightful)
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:On The Other Hand (Score:1, Insightful)
Re:Cheating is laziness... (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 taught, dropped the class.
You're merely applying the same thought toward removing rigor from the computer science curriculum. Most of the tasks you mentioned should have separate programs. Are you seriously suggesting that someone who can't code be able to graduate from a CS program because he's good at accepting user feedback?
It was 2010, and everyone was finally lol im bored can I haz degree nao?
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:Cheating is laziness... (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 you're suggesting that somehow tests produced by teachers are easier to cheat on, because the teachers ask the same questions on every exam. Well, only lazy (or stupid) teachers do that; a good teacher will subtly vary the questions each time a test is given; a teacher can do this as effectively (and often moreso) than a huge testing organization. And a good teacher will be familiar enough with his or her students to know when a low performer starts scoring well.
In short, lazy, badly motivated, and dumb teachers promote cheating. Adding bureaucracy won't help.
Re:I caught several cheaters (Score:5, Insightful)
Re:Cheating is laziness... (Score:3, Insightful)
Re:On The Other Hand (Score:1, Insightful)
One more chime here for you not being able to read. Do you think you're friend could do this if he had never written a program himself in school or on his own?
Re:On The Other Hand (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 allow code repository maintenance. Modules need to be reviewed regularly and resources spent to update them. Most companies dont... that code from 1972? USE IT!
Re:On The Other Hand (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 is their money, that is their choice to make.
Don't like be a code-modder, find a job somewhere else.
Honestly, I think the wrong moral battle is being fought here. The world needs both kinds of programmers.
Re:On The Other Hand (Score:1, Insightful)
This still requires understanding what the code is doing rather than finding a student who completed the assignment the year before.
Re:Who cheats who (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 teacher.
Someone who studied and worked on the assignments would be just fine.
Re:Expelled (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:Expelled (Score:3, Insightful)
What if someone steals your work and turns it in first?
Then YOU get nailed for cheating...
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.
Re:Half of the story. (Score:2, Insightful)
Re:No outside help ? (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.
Re:A ramble from the TAs view (Score:2, Insightful)
These students aren't cheating because of pressure, or because they don't get support. They are cheating because they want a degree to get a job to get paid, without actually doing real work.
In my last programming class, which was a simple structure and algorithm introduction, there were groups of students that shared code on every assignment. Was there not enough support? The only time I'd emailed the professor, he spent fifteen minutes helping me at two in the morning, far beyond what anyone would expect. Was there too much pressure? The computer science requirements here meant they were taking maybe five courses per semester, which were largely just "fluff" sorts of general education requirement courses. A lot of courses didn't even have homework, or an exam tougher than a few multiple choice questions. Most people that showed up to class didn't do anything more than fill the chairs.
Not to seem like a pessimist, but students now are lazy, not strained. I know so many students that will gladly beg the instructor for extensions and extra credit at any opportunity, because they spent the weekend playing Call of Duty instead of doing the homework.
Re:On The Other Hand (Score:2, Insightful)
This isn't about code only. THis is about all knowledge. At school you learn to protect your work. In an office you will have to learn to reverse a lot of that. If you do not share your knowlege you will be doing the same trick still in 20 years. Ever heard about problems in a organisation because of "lack of communication?". Could this be that all those people who were in shigher education for many years never learned to communicate, but only learned to protect their own work. why do you think all kind of towers/islands exist in your coorperation? because people want to protect their work.
If you want to extend this, look at the direction copyright is going into. This is because some industies are mover involved to protect their won work, even enough to sue their own customers.
On the other hand look at the success of wiki's where it is all bout sharing.
Re:Expelled (Score:3, Insightful)
Re:Who cheats who (Score:3, Insightful)
Re:I caught several cheaters (Score:3, Insightful)
Why would you care whether fellow students are cheating? That isn't stopping you from learning.
It's not just learning, but also getting that diploma. It devalues the accomplishment of getting a college degree.
Re:You think that's bad? (Score:3, Insightful)
Re:Who cheats who (Score:3, Insightful)
Maybe a CS degree means something if a potential employee went to MIT, but if your job posting says you require a CS major, but you'll accept one from any school, you're an idiot.
Or maybe you're talking out of your ass and don't have any idea WTF a CS degree entails. Your examples seem to support that assumption.
CS is to programming what automotive engineering is to auto mechanics.