Slashdot Mirror


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."

126 of 684 comments (clear)

  1. Who cheats who by menegator · · Score: 5, Insightful

    He/she who cheats discovers later why this is a bad idea.

    1. Re:Who cheats who by dkh2 · · 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.

      --
      My office has been taken over by iPod people.
    2. Re:Who cheats who by Average_Joe_Sixpack · · Score: 2, Insightful

      I don't know... there seems to be a lot of perks for Goldman Sachs employees

    3. Re:Who cheats who by terjeber · · 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.

    4. Re:Who cheats who by WombatDeath · · 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.

    5. Re:Who cheats who by Low+Ranked+Craig · · Score: 3, Funny

      If you want to see his head explode try to explain for each.

      --
      I still cannot find the droids I am looking for...
    6. Re:Who cheats who by SatanicPuppy · · 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.

      --
      ad logicam Claiming a proposition is false because it was presented as the conclusion of a fallacious argument.
    7. Re:Who cheats who by Opportunist · · Score: 2, 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 made it his point how our old profs are all too dumb to catch him cheating. He literally had all his code written for him and during tests, he had nothing short of a library of crib sheets.

      Fast forward, 15 years later. I'm now in a thrilling job where I get to toy with the latest and greatest in malware, get to hack and crack apart software, break into servers (of clients), generally do fun stuff others get arrested for, and make way more money than I could spend. He's a codemonkey at some huge corporation. Or was, 'til he was laid off last fall.

      I guess our profs knew something we didn't: That degrees only matter for your first job. Nobody since asked me for it. They only wanted to know where I worked before and what I did there, and how satisfied my employee was.

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    8. Re:Who cheats who by kangsterizer · · 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.

    9. Re:Who cheats who by kangsterizer · · 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.

    10. Re:Who cheats who by MobyDisk · · Score: 4, 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.

    11. Re:Who cheats who by daem0n1x · · Score: 2, 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.

    12. Re:Who cheats who by Anonymous Coward · · Score: 2, Funny

      Great job, there!

      My CS roommate was taking a (non-CS) test, one in which you use a pencil and fill in the dot of the correct answer, i.e.,

      A( ) B( ) C( ) D( ) E( )

      He was annoyed that someone was looking at his answer sheet, so he "rotated right 3" all his answers.

      When my roommmate finished, he just sat there until five minutes before the end of the test, then corrected all his answers.

      The cheater had left as soon as his answer sheet was completely filled out...

      Cheater got what he deserved.

    13. Re:Who cheats who by SatanicPuppy · · Score: 2, 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?"

      --
      ad logicam Claiming a proposition is false because it was presented as the conclusion of a fallacious argument.
    14. Re:Who cheats who by DarkOx · · Score: 2, 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.

      --
      Repeal the 17th Amendment TODAY! Also Please Read http://www.gnu.org/philosophy/right-to-read.html
    15. Re:Who cheats who by IndustrialComplex · · Score: 2, 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 with my logic courses and some of the more theoretically courses I thought it combined to make me a solid engineer. (At least my company thought so and paid me a hell of a lot to stay when I asked to leave)

      Yet I had a HELL of a time with my early programming courses because the exams were so poorly designed that I ended up failing a course because I just couldn't do the exams well. My projects typically netted me a 100% in the courses, but I bombed the exams because I just sucked at picking out typos, or misreading what the question was asking.

      True and False questions did me in something terribly, as they were worded very poorly and I often caught myself overthinking the problem: "Well, it might be true, but if you look at the statement from this angle then it is actually false." I actually understood the subject matter too well for those kinds of questions and ended up having to say to myself "What did they think a student who has a basic knowledge of this question answer."

      The exams were 90 questions long and the exam was 90 minutes. So it caused me a great deal of grief when I simply needed more information on the question to give it a proper answer. Combined with exams which were 35-50% of your final grade, it was very easy to screw up your grades. (Still doesn't beat the SINGLE question probability exam I had that was 35% of my grade, you either got a 100% on the final or a 0% since the professor lost the exam the night before and had to come up with a question on the fly)

      I did poorly on that class, but convinced the professor of the next level course that even though I bombed the pre-req, I knew what I was doing but just didn't do well with those sorts of exams. I took the higher level course and finished with a 97% (It was project, not exam based) Then I went back and slugged through the preliminary course and you can be damned sure that I used every advantage I could for the exams.

      I've never taken exams well, especially exams that try to put complex issues into true/false questions.

      So on this point, I'm not sure I would be happy with a CS program that tries to place greater emphasis on exams than actual work.

      --
      Out of modpoints but really liked a post? 1BDkF6TtmmeZ3yqXbz9yhdYVqRYnwFoXDj
    16. Re:Who cheats who by CecilPL · · Score: 2, Interesting

      You must be talking about the guy who wrote this code:

      http://thedailywtf.com/Articles/Break-Out.aspx

    17. Re:Who cheats who by delinear · · Score: 2, Insightful

      There's making a conscious choice to do that because it's more efficient and then there's just being completely ignorant of the alternatives, though.

    18. Re:Who cheats who by SombreReptile · · 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.

    19. Re:Who cheats who by orgelspieler · · Score: 4, Funny
    20. Re:Who cheats who by IndustrialComplex · · Score: 2, Interesting

      I ran into similar problems on several tests during my academic tenure. I eventually decided that, in the case of those questions, unless it specifically says something like "always" or "every time", then whichever case that is most likely to happen is the one the examiner is thinking about. That, and what would a reasonable student with the expected knowledge at this level be expected to think

      I learned that lesson VERY quickly. Unfortunately I learned it from the result of my first freshman exam in a CS course. And that exam was 40% of my grade.

      Hmm looking up the professor... it appears there is no more record of her, anywhere. I'm hoping they dumped her because even for a freshman course I learned very little from her.

      --
      Out of modpoints but really liked a post? 1BDkF6TtmmeZ3yqXbz9yhdYVqRYnwFoXDj
    21. Re:Who cheats who by Bobb+Sledd · · Score: 3, 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.

      --
      "They said I probly shouldn't fly with just one eye," "I am Bender. Please insert girder."
    22. Re:Who cheats who by frosty_tsm · · Score: 3, Funny
    23. Re:Who cheats who by Chysn · · Score: 4, Funny
      --
      --I'm so big, my sig has its own sig.
      -- See?
    24. Re:Who cheats who by geminidomino · · Score: 2, 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.

  2. first post by Anonymous Coward · · Score: 5, Funny

    I cheated and copied this post from another article.

    1. Re:first post by zeromorph · · Score: 4, Funny

      And you failed. QED

      --
      "Hannibal's plans never work right. They just work." Amy/A-Team
  3. He has a great career in front of him by Rosco+P.+Coltrane · · 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...

    --
    "A door is what a dog is perpetually on the wrong side of" - Ogden Nash
  4. CSIt's easy... by Nomaxxx · · Score: 5, Funny

    yep... easy to cheat in Counter Strike.

    1. Re:CSIt's easy... by 228e2 · · Score: 3, Interesting

      CounterStrike was the first thing that came to me when I saw the title :/ (is this bad?)

      --
      Since when does being a Socialist mean 'someone who has a different opinion than me'?
    2. Re:CSIt's easy... by thijsh · · Score: 2, Funny

      My first thought also was: 'Cool, they have a Counter-Strike class and the professor got fragged and flunks the campers for cheating'.
      But when I googled 'define:CS' I found the most appropriate definition: 'Caugt Stealing' :)

    3. Re:CSIt's easy... by Custard+Horse · · Score: 2, Funny

      Bizarrely I was in the same CS class as a chap called Bott and he was indeed stupid. The significance has only just struck me.

  5. Expelled by berj · · Score: 2, 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.

    1. Re:Expelled by Anonymusing · · Score: 2, 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.

      --
      Liberal? Conservative? Compare perspectives at Left-Right
    2. Re:Expelled by QuoteMstr · · Score: 4, 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.

    3. Re:Expelled by MobyDisk · · Score: 2, 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.

    4. Re:Expelled by shentino · · Score: 2, Insightful

      What if someone steals your work and turns it in first?

      Then YOU get nailed for cheating...

    5. Re:Expelled by maiden_taiwan · · Score: 2, Insightful

      It's not quite that easy (speaking as a long time CS teacher). For example, once I found that two of my students had turned in the identical assignment. They did not know each other, so one clearly swiped the other's work. Neither would admit wrongdoing, they both understood the code, and there were no timestamps to check. With an expulsion policy, what do you do? Either expel them both (not fair, you're punishing an innocent person) or break your own policy (looking inconsistent, which weakens the policy). The hard part about dealing with cheating is the borderline cases.

  6. Cheating in CS? by Lord+Lode · · Score: 4, Funny

    Wall hacks and aim bots, that's how...

  7. Maybe cheating in CS is easy... by GhigoRenzulli · · 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.

    1. Re:Maybe cheating in CS is easy... by berashith · · Score: 4, 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.

  8. Half of the story. by llvllatrix · · Score: 3, Insightful

    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).

    1. Re:Half of the story. by llvllatrix · · Score: 3, Insightful

      Tried that and was hit wit the whole "you should have managed your group better". Unfortunately firing my team members for gross incompetence wasn't an option :(

    2. Re:Half of the story. by Rhacman · · Score: 2, Insightful

      It would be stupid to fail someone for completing a team assignement just because they couldn't get the other group members to participate. The key is making the effort to include them and letting the instructor know early on that there are difficulties. You can lead a horse to water but nobody should expect you to make him drink. You may still end up doing all the work yourself, and this does happen in real life, but you are expected to let your superiors know that someone or something is negatively impacting the project. The instructor will make the call on if they get credit or not, and you should still expect to be penalized if the project was not completed just as in the real world team-members may get fired and you may lose a sale / contract if you fail to delilver.

      --
      Account -> Discussions -> Disable Sigs
  9. Cheating is laziness... by Manip · · 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.

    1. Re:Cheating is laziness... by ThinkingInBinary · · Score: 5, Insightful

      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.

      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.

      ...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?

    2. Re:Cheating is laziness... by TheRaven64 · · Score: 4, 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.

      --
      I am TheRaven on Soylent News
    3. Re:Cheating is laziness... by QuoteMstr · · Score: 2, 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?

    4. Re:Cheating is laziness... by destroyer661 · · Score: 2, Interesting

      I wish I had mod points for you. This is EXACTLY what I'm seeing in my cs program right now. Everyone getting marks for effort, half their code works, the other half doesn't. Handing out ridiculously high marks for writing down psuedo-code is what bugs me the most. Our profs will give you marks if you can write down what you need to do, in some improper syntax but still achieve the 'right idea'. I'm apparently mistaken that learning syntax is important. I've been helping people in second year write stuff and they get hung up on writing proper if statements and implementing while loops properly. It baffles me how they got to second year without being able to pop off a for statement without even exchanging neurons. I also know a lot of people who've gotten through with friends writing a lot of their programs because they simply can't do it themselves. The lack of integrity makes me rage haha.

      I guess on the flip side, these people who mess around like that are almost a necessity. A friend and I at work had this conversation the other day, how you get management who might have gotten a CS degree but can't code to save their lives. But they're pretty good at managing because they at least have some understanding of what your job actually is. Rather than having some BA/MBA boss who just 'wants things done, now.'

      --
      #define true false // Have fun debugging!
    5. Re:Cheating is laziness... by ThrowAwaySociety · · Score: 2, 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.

    6. Re:Cheating is laziness... by cervo · · Score: 2, Insightful

      Evidently a rather large amount of professors would. Some even use slightly modified powerpoint slides from the textbook publisher to present the class. Guys with PhDs are just like the rest of us, there are some good ones, many average ones, and a bunch who totally suck. Some cannot even be bothered to read their own class textbook..... Some steal tests from other places and then invent their own "interpretations" of a problem. And when their own "interpretation" is totally wrong or based on false assumptions from 10 or 20 years ago, it's a major headache to correct them....

    7. Re:Cheating is laziness... by Xest · · Score: 2, 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 another way, does it matter if a cheat slips through the net when there's so many other people the current system does a hopeless job of fairly grading on their real worth anyway? The current system gives an often effectively meaningless metric either way.

  10. On The Other Hand by sycodon · · 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?

    --
    When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
    1. Re:On The Other Hand by dkh2 · · 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.

      --
      My office has been taken over by iPod people.
    2. Re:On The Other Hand by edittard · · Score: 5, Insightful

      How is a person able to "add some mods" if he's spent four years cribbing everything and never coded anything himself?

      --
      At the bottom of the /. main page it says 'Yesterday's News'. Well they got that right.
    3. Re:On The Other Hand by dintech · · Score: 4, 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.

    4. Re:On The Other Hand by Ngarrang · · 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.

      --
      Bearded Dragon
    5. Re:On The Other Hand by TheRaven64 · · Score: 5, Interesting

      Depends on the cheating. If, for example, you decide to cheat by taking some code from outside and incorporating it in your product, I doubt that your manager will be happy when your company is later sued for copyright infringement.

      --
      I am TheRaven on Soylent News
    6. Re:On The Other Hand by SirGarlon · · Score: 4, 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.

      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.

      --
      [Sir Garlon] is the marvellest knight that is now living, for he destroyeth many good knights, for he goeth invisible.
    7. Re:On The Other Hand by Giant+Electronic+Bra · · Score: 2, 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...

      --
      "Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
    8. Re:On The Other Hand by TheNinjaroach · · Score: 3, 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.

      --
      I went to eat some animal crackers and the box said, "Do not eat if seal is broken." I opened the box and sure enough..
    9. Re:On The Other Hand by zill · · Score: 2, Insightful

      Didn't catch the subtle hint from the TA, did ya?

    10. Re:On The Other Hand by TrebleMaker · · Score: 2, Funny

      Dear god, anything but a copy and paste programmer. We had one here and the results and the results are devastating

      So, did they let you keep working there, anyway?

      --
      In Soviet Russia a beowulf cluster of these things imagines you welcoming your new, neural-network overlords.
    11. Re:On The Other Hand by ZeldorBlat · · 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 another university. Many students took posted solutions from that other class, cited the source, and turned it in. Given the prof's policy, he had no choice but to accept the programs as valid and correct. As he was quick to point out, it puts a much larger burden on him to come up with more creative assignments -- which isn't a bad thing.

    12. Re:On The Other Hand by silent_artichoke · · Score: 2, Funny

      We had one here and the results and the results are devastating.

      Good example! :)

    13. Re:On The Other Hand by Kizeh · · Score: 4, 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.

    14. Re:On The Other Hand by edittard · · Score: 2, Funny

      A perfect rebuttal. Or it would be if was in reply to a post saying, "You need to write programs yourself in college, from scratch for this sole reason: that it's exactly what programmers do at work". Did you cheat on your English comprehension assignments, perchance?

      --
      At the bottom of the /. main page it says 'Yesterday's News'. Well they got that right.
    15. Re:On The Other Hand by steltho · · 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.

    16. Re:On The Other Hand by Lumpy · · Score: 2, 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!

      --
      Do not look at laser with remaining good eye.
    17. Re:On The Other Hand by Ngarrang · · Score: 2, 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.

      --
      Bearded Dragon
    18. Re:On The Other Hand by Idarubicin · · Score: 3, 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.

      --
      ~Idarubicin
    19. Re:On The Other Hand by Taser · · 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* student was confronted with the damning evidence, he retorted "What do you want me to do, change the variable names?"

      2) I received assignments from my students, both electronically and in printed form. When going through the code, it was obvious that three students had colluded and made token changes to the code; functions were in the same order on each of these printouts, to the point that laying them out on a table side by side and flipping the pages one by one for all three printouts had the exact same spacing from the left margin, the same spacing between functions, indentation, etc. Since the program worked as intended, they got a score of 100. . . split into three grades of 33 each.

    20. Re:On The Other Hand by IndustrialComplex · · Score: 2, 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 came up to him (He is an English teacher) and complained that she got a 0% (everything wrong) even though her friend had the exact same answers.

      His response:
      Did she have the exact same questions?

      She had copied her friends answers verbatim without checking that they had the same exam. It was multiple choice, so the beauty was that she scored even lower than if she had just picked all off column 'B'.

      --
      Out of modpoints but really liked a post? 1BDkF6TtmmeZ3yqXbz9yhdYVqRYnwFoXDj
    21. Re:On The Other Hand by leuk_he · · 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.

    22. Re:On The Other Hand by DarthVain · · Score: 2, 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 did something myself years later (not CS), where I did the exact same paper, for two different 3rd year courses with different professors. Exact same topic, same everything. I think I changed the font of one just to be not so blatant, though I think the actual title was the same, so likely moot. I got a 60% on one and 80% on another.

      I had one CS prof deduct points one time for not using a recursive algorithm and another the same year deduct points for using one, even thought the purpose was pretty much the same (different languages however, one was COBAL the other was C+ I think).

      I came to the conclusion through University, that unless you really screw it up (aka you have no idea what you are doing or talking about), professors have a large latitude in which to determine grades, and much of that does not seem to be based in any sort of technical rigor but rather personal preference. So A) Figure out what they like to see, and B) try to have them like you a bit.

    23. Re:On The Other Hand by Schadrach · · Score: 2, Interesting

      There is a place for the "delegate everything"-type manager though. It's just only in a moderate to large department and one who knows how to "delegate everything" **properly**. At that point, said manager is more or less a "workflow router" distributing tasks preferentially to those who are best capable, with an eye for load balancing. It requires a fine hand and close understanding of each employees capabilities, speed, and accuracy. Hell, where I work (and we have a very *weird* organizational structure) there's a guy in shipping that has as a side duty "determine what ideas are worth bringing to me in my programmer capacity (as opposed to my other 4 hats)" for whenever the owner or operations manager have a "neat idea". He doesn't know enough to actually build onto our intranet app in any significant way, but he knows enough to be able to eyeball an idea and know if it's reasonable to do in the first place, and accordingly acts as a "gateway", saving me from having to explain *why* some things are unreasonable as opposed to getting something done in one of my other assorted roles with that time (we actually jokingly refer to my job title as "wearer of hats" sometimes...the phrase came up at my last review).

  11. No outside help ? by ccandreva · · 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.

    1. Re:No outside help ? by gatzby3jr · · Score: 2, Interesting

      I think this more has to do with contracting a 3rd party to do the project for you. While you might say this is redundant, as that is plagiarizing, there's a subtle difference. I would take it to mean plagiarizing to be taking code off the net and passing it as your own, copying to be copying your work from another classmate, and outside help by just asking another programmer to specifically do your project.

      When I was in my senior year of CS study, our OS teacher made us do code walk-thru's with the TA's to demonstrate how our code worked on our last project. I didn't think much of it other than a time waster. My opinion changed drastically when I arrived at my appointment.

      The student in front of me was still in his appointment, and was being questioned by the TA. After listening in for a few seconds, I learned that the student could not tell the TA where the entry point to the program was. He didn't know where the main() method was in the program. Nevermind the complexity of the whole program (that worked), but he had no idea where it started. He kept INSISTING that the work was his, but couldn't tell the TA how it began.

      It was pretty clear he had someone else do the program for him, whether he contracted or copied it from a friend as the project was pretty specific in nature, don't think you could have downloaded it from the web.

      I soon had a whole new outlook on code walk-thru's in an academic environment.

    2. Re:No outside help ? by plover · · Score: 2, 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.)

      --
      John
    3. Re:No outside help ? by AlexCorn · · Score: 2, Interesting

      That is the policy at Carnegie Mellon. The first time a student is caught cheating, they lose their financial aid. The second time, they get expelled. Discussing homework counts as cheating and because of the consequences, everybody is too paranoid to even discuss class material that might be related to homework. Everyone hates it but the administration doesn't care because the incidences of cheating have gone way down since introducing the policy.

      Infuriating.

    4. Re:No outside help ? by TheRaven64 · · Score: 4, Interesting

      Why bother with university then? Do a distance-learning course and hang out in coffee shops near a university and you'll get the same experience at a fraction of the cost (as I recall, CMU charges something around $40K/year). One of the greatest benefits of university is that you are surrounded by other intelligent people and can exchange ideas and teach each other.

      --
      I am TheRaven on Soylent News
    5. Re:No outside help ? by clone53421 · · Score: 2, 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.

      --
      Alexander Peter Kristopeit bought his basement from his mommy for one dollar.
  12. Cheaters by Anonymous Coward · · Score: 3, Funny

    How can I reach theeese keeeeeeeds???

  13. So funny.. by Anonymous Coward · · 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.

  14. I caught several cheaters by RichMan · · 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.

    1. Re:I caught several cheaters by raddan · · Score: 2, Interesting

      That's strange. At my current university, getting caught cheating is grounds for immediate expulsion. At that school, in my experience, the problem is more with the teachers inflating grades. This happened in a math course I took, and because the teacher essentially gave everyone A's, the grade's use as a measure of understanding was completely eliminated. In my mind, our grades were meaningless. Fortunately, in my other classes, I'd had to work my ass of for those A's (or that B in physics-- whoa!).

      At my last uni, I TA'ed a course where the honors students substituted a written paper for a produced radio program, that aired on the campus radio station. For most students, this really lit a fire under their asses, and most of the finished products were outstanding. But one student, who almost never came to the radio production lab (which was required), or met deadlines, handed in a piece of work that was terrible, and about a week late. I had explained our late policy to the class beforehand, so she knew the rules-- she got an F in the honors section. After receiving her grade, she came to me, begging me to change it, saying that if she had anything less than a C average, she would lose her scholarship. I told her that I could not, in good conscience, give her a better grade. It would be dishonest and unfair to other students.

      Well, she took it straight to the academic dean for the college. Fortunately, my school had some integrity (and, I suppose it also helps that the dean was actually my academic advisor when I was an undergrad, so she knew me well). The department asked me for my rubric, asked for a quick explanation of my evaluation, and then, that was it. The grade stood. That's the way it's supposed to work, but I have to admit, it put a fear of vindictive students in me.

    2. Re:I caught several cheaters by neurovish · · Score: 3, 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.

    3. Re:I caught several cheaters by TheDreadSlashdotterD · · Score: 5, Insightful

      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.
    4. Re:I caught several cheaters by dkleinsc · · Score: 4, 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!"

      --
      I am officially gone from /. Long live http://www.soylentnews.com/
    5. Re:I caught several cheaters by quanticle · · Score: 3, 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.

      --
      We all know what to do, but we don't know how to get re-elected once we have done it
    6. Re:I caught several cheaters by khallow · · Score: 2, 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.

  15. A ramble from the TAs view by lxt · · Score: 4, Interesting
    I used to head TF CS classes at an Ivy League school (you can probably guess which one from my job title alone). I worked both in session with undergraduates, and in the summer for the high-school/further learning program.

    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.

    1. Re:A ramble from the TAs view by Nov+Voc · · Score: 2, Insightful

      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.

  16. CS doesn't require cheating by erroneus · · Score: 2, 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.

  17. Re:Of course it is easy! by lxt · · Score: 2, Insightful

    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!

  18. Very easy, and very easy to get caught by ThinkingInBinary · · Score: 2, 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 (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.

  19. Re:Cheating by johnlcallaway · · Score: 4, Insightful

    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.
  20. Algo by Broken+scope · · Score: 3, 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.

    --
    You mad
  21. Cheating - remove the incentive to cheat instead by janoc · · Score: 2, Interesting

    I have taught several introductory CS courses and to be honest, I was not interested in playing policeman and checking whether students are cheating or not. Instead, I have established a two tier system: - For homeworks that had to be turned in, these were corrected by the students themselves. I did some spot checks to warn those who were cheating and to ensure that the corrections are up to par, but didn't really put much effort into chasing cheaters. The homeworks were primarily a feedback for the students and an opportunity to learn. However, to give them an incentive to actually do them, they could pass the exam orally in advance instead of a practical programming exam if they had 80% of homeworks right. That was strong motivation for many of them, because they perceived the oral exam as easier (even though in reality they had to do much more work over the semester for it). Now, the purpose of the oral examination was simple - to establish whether the homeworks were actually done by that student or not. In my experience, if someone was cheating, he didn't have a clue whatsoever what the code he has handed in does. At best, he could memorize some superficial stuff and do some hand-waving over it. One or two targeted questions over the details of the assignment has always uncovered this. No need for any computerized code comparison tool (which would be always gamed) or tiresome reviews of the homeworks. - For the regular exam which was always written, practical programming assignment on a computer in the lab (CS exam on paper?? WTF?), I have allowed the students to bring their own code snippets (e.g. from homeworks), use their books, even internet. This essentially makes all what would usually be considered cheating allowed, lessening the burden on me - I did not have to spy on them whether or not they are cheating. My reasoning was that the students should demonstrate practical knowledge how to solve problems, not whether or not they have memorized stuff (which is what the exam would be about if the books were forbidden). Now, of course, if the student didn't learn anything, the books will not help - they would spend most of their time searching for information and run out of time. One disadvantage of this approach is obvious - it puts a bigger onus on the examiner to prepare meaningful exams. Assignments like "Implement quicksort" are useless, because the students can find them ready made online or in the book. On the other hand, I do not think it makes much sense to examine whether or not a person can implement quicksort - it is not a real-world problem. Better give them an assignment where the quicksort needs to be used - the clueless one will not find it online so he cannot readily cheat and the smarter one will see the similarity and solve the assignment without problem. To conclude, I do not believe in the various software to catch cheaters. Especially not in CS - the students are very smart and will be always able to game it. If the teacher is doing their job, this is not needed.

  22. Re:which snappy comback to choose? by BForrester · · Score: 2, Funny

    A - You're talking about CS students here. No need to include the possibility of "she."
    B - Is that you, Tiger?

  23. Punish-the-group theory... not so good by adosch · · Score: 3, Insightful

    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.

  24. Reuse != Cheating by curri · · Score: 2, Informative

    The problem with cheating is NOT reuse, but dishonesty; the right analogy is not to reuse *your company's* code or report, but *somebody else's* report or code, which leads to lawsuits against your company and firing. In many (most?) programming assignments in school, you are given starting code (like this one except for ....)

  25. Talent PLUS luck by curri · · 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.

  26. I can has degree nao? by QuoteMstr · · Score: 2, 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.

  27. Journalism by Anonymous Coward · · 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?

    1. Re:Journalism by LBt1st · · Score: 3, Funny

      I thought the same thing and I never even played CS.

  28. Be honest by frenchbedroom · · Score: 2, 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)

  29. Re:When stealing code... by SatanicPuppy · · Score: 2, 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'll do your share of the group project, but I want a copy of the solo thing."

    So they give me a copy, and I take it home and try to make it work. Can't make it work. Can't even figure out how it's supposed to work. Ended up giving up and going to bed. Got up, did the solo project from scratch and turned it in 2 days late for a 40% reduction in the grade. Fine.

    So I get my grade, 58, missed some little stupid 2 point thing somewhere, woulda been a goddamn 98 grumble grumble. One of the guys from my group came up to me and said, "Hey, what did you get?"

    I say "58," and I kinda snarled it because I was pissed.

    He says, without missing a beat, "58? I got a 5! Why didn't you give me your code?!"

    Turns out the class average for that project was a 7. Heh. Those two jokers never managed to contribute anything to our group project either. We got the highest grade in the class on the group project for that turn in...Not because we were the best, but because the group who was the best let people copy off of them, and they both got 0's.

    --
    ad logicam Claiming a proposition is false because it was presented as the conclusion of a fallacious argument.
  30. Re:Dumb cheats are easy to catch by Tragek · · Score: 2, Informative

    Nope; Obfuscation isn't enough. Specialized parsers measuring similarity exist:

    http://www.wired.com/science/discoveries/news/1998/02/10464

    While you can't catch everyone, disguise is not enough. (And not a measure of skill either).

  31. Caught "Cheating" Freshman Year by geoffrobinson · · Score: 2, Interesting

    One of my best friends form high school and I went to the same college. We had the same Comp Sci teacher all throughout high school and we had the same class our first semester.

    Well, we had a simple little assignment in class and our code looked exactly the same. We had to explain to the teacher our background and how our identical training produced the same exact code given his requirements.

    --
    Except for ending slavery, the Nazis, communism, & securing American independence, war has never solved anything.
  32. Preventing cheating is easy by MacAnkka · · Score: 2, Interesting

    In the university of applied sciences that I study at, it would be very hard to cheat during most programming courses.

    I especially liked the first two Java courses that I took. They consisted of weekly coding assignments and two exams.

    You had to show the finished assignments personally and the teacher would usually ask questions about the code. Why did you do it like this? What does this do? etc. It would become obvious if you didn't understand your own code

    Then there were the two exams, one in the middle of the course, one in the end. They were done on paper. They included around five partially done programs that you had to finish. For example, in a course teaching object-oriented programming, there might be a small card game that you had to finish. The game logic would be there, but you'd have to write all the object-oriented code and a main function where you make it all work. The exam would also include printouts of the relevant API documentation.

    Cheating would have been hard. Not everyone passed the course, but those that passed, with good grades, really did know how to program.

    This all requires a very good teacher who actually cares how his students are doing, though.

  33. professors cheat unqualified/non-talented students by elnyka · · Score: 2, 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 graver, like, as you pointed out, not knowing basic control flow structures, not knowing what the structured program theorem really means (or even heard of), or not knowing how to decompose problems. I recently had an e-mail exchange (trying to help) with someone who supposedly passed a data structures course (a mid/upper level 300x level course) but didn't know he could call the "pop" method of a stack in a loop n times after having called "push" on it an equal n amount of times.

    And now, and just to picture this, it's not just that this poor guy didn't know that he could call "pop" n times after having called "push" n times as well. He didn't know he could call pop inside a loop even though he knew he could call push (or any method for that matter) on a loop. How the hell can confusion possibly occur!!!??!! This was a guy who supposedly passed data structures and algorithms with a B.

    All I can think off is that a professor (or several professors) at his university should be kicked out and forced to flip burgers for a living. Because it is not only one person like that, but many, across the board. People like that have to be made to fail or offer a wider curriculum containing a larger number of mandatory 100x/200x programming courses (hopefully using procedural or multi-paradigm languages.)

    Too little time is invested in too few 100x/200x programming courses where instructors try to shuffle as many OO-fashionable concepts they can think of - superficial coverage interfaces, GUI programming, polymorphism, generics and what not - when they don't even make sure their students understand the basics - structured programming theory, control structures, modularity on the small, problem solving, divide-and-conquer strategies and so on and so on.

    Students that are not qualified or who are not obviously talented on the mental skills required for programming either need to be flunked out or forced to take more programming courses at a lower, more fundamental level. Then they either get the sufficient practice and knowledge to continue or they flunk and try something else. We all have skills at one thing but not other. Schools make a serious disservice to students by watering down requirements just so that they can pass.

    Not excusing mediocre students (who don't necessarily cheat), schools and instructors that let them graduate are the bigger cheaters of all.

  34. Malicious Cheating by Temujin_12 · · Score: 2, 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.

    --
    Faith is a willingness to accept something w/o complete proof and to act on it. Reason allows you to correct that faith.
  35. Funny story about a caught cheater by McDozer · · Score: 2, Interesting

    At my University, one of the last classes we take before graduation is a Senior Seminar class, at the time the class was about ethics. Well, the class was assigned a paper to write about ethics. The professor actually read the papers, upon reading one girls paper he said.....'Hey, this girls English isn't this good. There is no way she wrote this. He googles the first time of the paper, bam, this 25 page paper pops up. Turns out she had copied and pasted 14 pages of the 25 page paper and turned it in. Well, she was kicked out of University one class from graduation. I thought it was rather funny. She ended up moving back to India, who knows what happened after that.

  36. No two programs are alike? by lwriemen · · Score: 2, 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.

  37. I did a couple of times by rfc1394 · · Score: 2, 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

    --
    The lessons of history teach us - if they teach us anything - that nobody learns the lessons that history teaches us.
  38. Sometimes you don't have to cheat to get caught by AusIV · · Score: 2, 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.

  39. Re:Cheating was Rampant at CMU by KeithIrwin · · Score: 2, 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 because you have to teach people who to think in a completely different way (unless, of course, they already think that way). Most universities are not good at doing that and instead wind up just weeding out the people who don't have an easy time programming. CMU was no exception. I did my best to help talk some people on my dorm floor through CS-127, but it was really tough for them because they just couldn't think about things the correct way. At this point, the CS department has revamped that whole structure, eliminating the course and replacing it with a number of different alternatives based on level of experience so that people who've nver programmed before can start with Alice rather than Java.

    But I suspect that part of what's happening at Stanford is people who've never gotten a B in a course in their lives are suddenly facing a C or D in intro programming and panicking. You can't just study your way to an A in intro programming because it's not about memorizing, it's about thinking differently. You have to get it.

    And really, I think it can be taught better, but it will require making some substantial changes in approach. When we see rampant cheating, we need to ask what we can change which will decrease this. Some of what we can change may be improving the nature of the instruction to students.

  40. My own Turbo Pascal story by rfc1394 · · Score: 2, 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 compile works. So I remove this and I go further down, insert BEGIN END., exit and try a compile, and this time it faults with an error, the same one he's getting. So I go upward and try again, and eventually - meaning in about 3 minutes - I find the problem and it was a very subtle bug even I didn't spot, he had left an open brace { in his code, so, it ignored everything to the next close brace, or the end of the program, (I forget which), because it treated everything from that point on until the brace was closed (or the end of the program), as a comment.

    The guy was absolutely amazed that I found the bug as fast as I had. He had been spending something over 2 hours trying to find it, and not succeeding. I found it in less than five minutes. It could be that I was a fresh pair of eyes, or it might be I'd had over 3 years (then) experience doing programming didn't hurt either...

    --
    The lessons of history teach us - if they teach us anything - that nobody learns the lessons that history teaches us.
  41. You think that's bad? by NotSoHeavyD3 · · Score: 3, Interesting

    I worked with a guy who had been a software engineer for so long that he used to be a cobol programmer. He had been with my last company for almost 10 years doing C++ work. He didn't understand that if he updated a C++ class to add a new function anything that used that class had to be recompiled so it would "know" about the new version of the class. I mean literally, he was stuck for days and couldn't figure out why he was getting access violations. What's worse is he had no idea how to tackle the issue. He started thinking that his system was screwed up completely and wanted to use memory management tools to figure out the problem. He didn't even bother to see the time stamp on his various files to see if they were old and could use a recompile. (Let alone use a program to check dependencies.) I helped him and figured it out fairly quickly and then started talking to him about recompiling the other stuff. (Since I've done that before. Updated a class and then missed recompiling another class or 2.) He had no idea what I was talking about or why this made a difference. Of course the absolute worst part is he thought he was a very good coder and wouldn't listen to what anybody else said about his code. (After that I avoided working on things with him. Clueless and essentially unteachable.)

    --
    Did you know 80 to 90% of the moderators on slashdot wouldn't recognize a troll even if one dragged them under a bridge.
    1. Re:You think that's bad? by s73v3r · · Score: 2, Interesting

      I'm quite embarrassed to say I've done this too. I've also lost a day's sleep due to it. Of course, when I realized it, and fixed it, I then had to come up with something outrageous to say happened, because there's no way I was gonna say it was something that silly. Its also why I tend to avoid just recompiling individual files in a project, preferring instead to let the IDE or makefile recompile the whole thing. Plus, then I get a legitimate reason to goof off for a few minutes ;)

    2. Re:You think that's bad? by DamnStupidElf · · Score: 2, Informative

      Welcome to the "joy" of statically compiled, un-managed languages. Sure, Makefiles can help but ultimately there is no way to be sure that your binaries are correct short of recompiling everything from scratch in the right order.

    3. Re:You think that's bad? by NotSoHeavyD3 · · Score: 2, Insightful

      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.
  42. Re:Cheating by johnlcallaway · · Score: 2, Interesting

    I guess it defines what you mean by 'cheating'. A few months ago I asked my how much I'd take for a car I owned that wouldn't run. I told him $500 because the body was in good condition. He offered me $200 and I accepted it. What he didn't know is that I would have given it to him for free if he would have just gotten it out of my garage. Is that 'cheating'. I'm sure if he knew what I would have taken for it, he would have felt cheated. But he probably feels he got a deal, he got it running and it's probably now worth more than what he paid for and put into it. Did he cheat me???

    Copying someone's code is cheating because the school says it is. Is it cheating when you take advantage of someone who doesn't know all the facts, or if you don't provide them?? That's what successful people do, take advantage of someone's lack of knowledge about a business transaction.

    Cheating involves deception .. was I lying when I said '$500' when asked how much I'd take for the car. No .. I would have taken $500 for the car. But I didn't tell him I would take less. Is leaving that part out lying by omission?? Does that make it cheating???

    In any business transaction, I'm sure a large portion of the people feel cheated afterward....that doesn't mean they were. I sometimes have felt cheated after taking a job offer ... could I have gotten more??? No one will tell you the highest salary they are willing to pay, just the one they think they can hire you for. We all would probably accept a higher salary than we think we are worth if we could get away with it. Would that be cheating also???

    --
    I rarely read replies, it's my opinion and if you thought about your opinion a little more, I'm OK with that.
  43. Oh, thanks for the reminder by NotSoHeavyD3 · · Score: 2, Funny

    We had a build system. So you check your code into your branch in source control and request a build. The system would then rebuild everything from scratch in the right order and put it on a server where you could just copy back to your local system. (All of this was automated.) The guy didn't even try that. (I mean all he had to do was check in his code at the end of the day, request the build when he left and the next morning it'd be done.)

    --
    Did you know 80 to 90% of the moderators on slashdot wouldn't recognize a troll even if one dragged them under a bridge.
  44. Re:Don't do it. by Myopic · · Score: 2, Interesting

    Yeah. In a mid-level CS class once I just had no idea how to do the problem set. It was a bit above my ability, and I hadn't left nearly enough time to complete it. A friend gave me his solution from the previous year, for reference. I felt it was okay if I could read his, understand it, and apply the understanding to my own code; but after trying, I didn't understand it, and didn't have time to apply anything to anything.

    I turned in my own work, which was incomplete and didn't fully 'work'. I received a fair grade (above zero, below failing) and learned to try a bit harder next time. My school, like Stanford, had an Honor Principle, and I respected that very much. I appreciated that our exams were usually not proctored, and professors weren't usually going out of their way to look for cheating (but of course would deal with it when it came up, which it did sometimes), so I kept my nose clean.

    I remember the last time I distinctly cheated on a test: it was a grade school spelling quiz. I got semi-caught. I don't think that was the lesson which changed me forever, but somewhere along the line I decided that, for me, I was comfortable enough with my ability level that I didn't want to make a habit of cheating.