How Easy Is It To Cheat In CS?
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."
He/she who cheats discovers later why this is a bad idea.
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.
It's much easier for people to cheat in group projects than on any particular assignment. Nearing the end of my undergrad I specifically choose courses that didn't involve group projects because I got tired of doing other people's work (while they went to class).
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.
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?
When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
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.
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.
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.
I think I disagree - the beauty of programming is everyone codes in a different way. I taught entry-level CS. A simple java 'print "hello world" 10 times using a for loop' question may only have one solution, but dozens of stylistic variations. Square braces on the same line? Spaces between your commas? System.out.println() or System.out.print? Cheating in CS is generally pretty easy to catch when somebody is just copying code, because it will be totally out of style with their usual work. The problem comes when someone is cheating to such an extent that *none* of their code is original!
I've been TAing every semester since I got to college, and every semester we tell people that we run their submissions through MOSS (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.
ttuttle is a rankmaniac
It's so much easier to believe successful people must cheat then to accept the truth that there are people out there that are actually smarter, more motivated, and more clever. I've known a few people who are multi-millionaire's ... and they are all far more talented in those categories than I am.
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.
I rarely read replies, it's my opinion and if you thought about your opinion a little more, I'm OK with that.
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.
You mad
FTFA, I understand the argument of, "Your friends want to cheat, great. Good luck on my uber-weighted final worth, now, 102% of your final grade", and I am personally not a fan of it. I've seen that type of methodology applied at the 101-level and gen-ed classes but I just don't like it at any level as it applies to college. IMHO, I paid for my schooling with the G.I. bill and the rest of it in loans and of course it would piss me off when I'm putting in hard, valid work in a class and not cheating to be punished for what others are doing. If people cheat and don't take the class seriously, the Mr/Mrs Professor should deal with that student accordingly and make sure it qualifies for an automatic failure of the class. I had professors in college that has a very low threshold for that type of behavior and the student would learn (or mom and dad fronting the college bill every semester would learn) that taking classes over and over will only make you either a 7 year senior or a drop out. Furthermore, I don't like how the professor gives up his authority and puts a layer of discipline on the students by punishing them. Is he looking for a militaristic approach? Does he think all the kids in the dorm are going to gang up on "the cheater" and give him/her a blanket party? Absolutely not.
However, when I started working in the real world in the Information Technology field, I never knew that this "group-punish" methodology would apply at most of the jobs I've been at with substantial perks (e.g. Work-from-home a good portion of the week, very flexible and accommodating work schedules with the option to make up time whenever).
To me, it just reminds me of being treated as less as an adult and more like a 2nd grader having to lay their head down on their desk for someone talking in the back of the classroom during teacher instruction time.
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.
They are unwilling to learn because University wasn't really their choice. Students are told, in no uncertain terms, that they will be miserable failures if they don't seek higher education. Since society feels justified in propagating this stupidity, millions of students each year head to universities and colleges in order to grasp that golden vine, and they'll do whatever it takes to grasp it with as little work as possible. Only the students who actually want to be there know that the golden vine doesn't really exist. And they are the ones who suffer.
I have nothing to say.
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.
We all know what to do, but we don't know how to get re-elected once we have done it
And a related ramble from a current CS student's point of view...
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.
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.
Oh I think everybody has done this and had their "Duh" moment when they figure out the problem.(Well ok, those of us that do C++ coding. I know I've done it and palm to my forehead when I figured out the problem.) Also I'd tended to only update function locally and if I had to update function definitions or class definitions use the build system so it could worry about that stuff. But like I wrote earlier the guy never figured it out even while I was talking to him about it. (It took me half way through the conversation to realize he didn't get it at all and was literally that clueless. It was mind blowing anybody could work as a SE that long and not known about it.) Anyway I hope I never get like that especially the whole thing about not listening to anybody.
Did you know 80 to 90% of the moderators on slashdot wouldn't recognize a troll even if one dragged them under a bridge.