Slashdot Mirror


Why Computer Science Students Cheat

alphadogg writes "Enrollment in undergraduate computer science courses is at an all-time high at colleges nationwide. But this trend that's been hailed by the US tech industry has a dark side: a disproportionate number of students taking these courses are caught cheating. More students are caught cheating in introductory computer science courses than in any other course on campus, thanks to automated tools that professors use to detect unauthorized code reuse, excessive collaboration, and other forbidden ways of completing homework assignments. Computer science professors say their students are not more dishonest than students in other fields; they're just more likely to get caught because software is available to check for plagiarism. 'The truth is that on every campus, a large proportion of the reported cases of academic dishonesty come from introductory computer science courses, and the reason is totally obvious: we use automated tools to detect plagiarism,' explains Professor Ed Lazowska, chair of computer science and engineering at the University of Washington. 'We compare against other student submissions, and we compare against previous student submissions and against code that may be on the Web. These tools flag suspicious cases, which are then manually examined.'"

694 comments

  1. How many ways are there to do simple things? by nebaz · · Score: 3, Insightful

    If someone asked me to (in Java say) print the numbers from 1 to 10, I would probably do something like

    for (int i=1;i=10;i++) {
        System.out.println(i);
    }

    So would most other people. Would this flag me as a cheater?

    --
    Rhymes that keep their secrets will unfold behind the clouds.There upon the rainbow is the answer to a neverending story
    1. Re:How many ways are there to do simple things? by AnonymousClown · · Score: 1

      If someone asked me to (in Java say) print the numbers from 1 to 10, I would probably do something like

      for (int i=1;i=10;i++) { System.out.println(i); }

      So would most other people. Would this flag me as a cheater?

      Or could you get away with it by just by doing a global replace of variables: 'i', 'index', or whatever?

      And maybe replacing tabs with spaces and adding returns before '{' that are after 'if's, and so on.

      --
      RIP America

      July 4, 1776 - September 11, 2001

    2. Re:How many ways are there to do simple things? by Surt · · Score: 2, Insightful

      Typically even an introductory level course is more involved than that, even for the first assignment.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    3. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      This was the first thing I thought of as well. The programming languages taught in Academics more often than not have only one day to do something. I'm curious as to how many times students are caught cheating, they actually are.

    4. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      Try:

      for (int i=1;i System.out.println(i); }

      Your loop wouldn't even get number one printed, so i'm guessing that unless the entire class is failing, there would not be much plagerism from your code.

    5. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      If someone asked me to (in Java say) print the numbers from 1 to 10, I would probably do something like

      for (int i=1;i=10;i++) {

          System.out.println(i);
      }

      So would most other people. Would this flag me as a cheater?

      No. Please read the summery:

      "Enrollment in undergraduate computer science courses is at an all-time high at colleges nationwide. But this trend that's been hailed by the US tech industry has a dark side: a disproportionate number of students taking these courses are caught cheating. More students are caught cheating in introductory computer science courses than in any other course on campus, thanks to automated tools that professors use to detect unauthorized code reuse, excessive collaboration and other forbidden ways of completing homework assignments. Computer science professors say their students are not more dishonest than students in other fields; they're just more likely to get caught because software is available to check for plagiarism. 'The truth is that on every campus, a large proportion of the reported cases of academic dishonesty come from introductory computer science courses, and the reason is totally obvious: we use automated tools to detect plagiarism,' explains Professor Ed Lazowska, chair of computer science and engineering at the University of Washington. 'We compare against other student submissions, and we compare against previous student submissions and against code that may be on the Web. These tools flag suspicious cases, which are then manually examined.'"

    6. Re:How many ways are there to do simple things? by jhumkey · · Score: 1

      Only if you use '3 spaces' for the indentation. Since I (exclusively) do that, amongst all other programmers on the planet.

      --
      No, I don't remember your name. But the memory mapped screen on a TRS80 from 1977 is from 15360 to 16383 if that helps.
    7. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      Code tends to be intensely unique and varied between authors. Your example is too simple to compare to a whole program.

      By the way, it's also wrong. I'll leave why as an exercise to the reader.

    8. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      well for starters...
      for (int i=1;i==10;i++) {
              System.out.println(i);
      }

      might work better.

    9. Re:How many ways are there to do simple things? by keithpreston · · Score: 4, Informative

      This would be flagged but wouldn't pass the manual review. As a former Graduate Teaching Assistant, cheaters are easy to spot because they are LAZY! They turn in the exact same files (same comments with same misspellings) with maybe a different name at the top. The only good way to cheat is to make sure every things is perfectly correct and has no identifying characteristics.

    10. Re:How many ways are there to do simple things? by hbean · · Score: 1

      I actually remember getting in trouble back in school for having similar code to some friends of mine that used a stack to count the number of A's and B's in a string. Exactly how many was is that supposed to be done? for(all char in string) if(is an A) push else if(is a B) pop if(stack is empty) return true; hooray! plagiarism!

      --
      "Give someone a program, frustrate them for a day... Teach someone to program, frustrate them for a lifetime."
    11. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      No. I've worked with several of these systems, and most of them look for cases where 2 or 3 students write very similar code that is itself dissimilar from most of the rest of the class. This also provides a nice way of weeding out matches based on the "skeleton code" provided by the teacher, or other such typical causes of shared code.

    12. Re:How many ways are there to do simple things? by TitusC3v5 · · Score: 4, Insightful

      If the person you copied it from also mistakenly used an assignment operator instead of a conditional, then yes. :)

      --
      And the masses cried out, "09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0!"
    13. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      If someone asked me to (in Java say) print the numbers from 1 to 10, I would probably do something like

      for (int i=1;i=10;i++) {
          System.out.println(i);
      }

      So would most other people. Would this flag me as a cheater?

      my version:
      for
      (
      int i=1;
      i=10;
      i++
      )
      {
      System.out.println(i);
      }

      Ha. They'll never catch me!

    14. Re:How many ways are there to do simple things? by IndustrialComplex · · Score: 1

      If someone asked me to (in Java say) print the numbers from 1 to 10, I would probably do something like

      for (int i=1;i=10;i++) {
              System.out.println(i);
      }

      So would most other people. Would this flag me as a cheater?

      Would a professor run an assignment like that through the system though?

      While you do have a limited number of 'ideal' ways in which to accomplish a simple problem (one you would see in an early programming course) beginning programmers aren't going to come up with the same approach to a problem when you add in a little bit of complexity. A lot of us (I suck at programming) will come up with solutions that solve the problem, but often in quite round about manners, or have flaws which really distinguish them.

      What about the LATER assignments? One I had for my early course involved writing a ticketmaster-like ticket purchasing system where it would find and temporarily reserve the 'best' seating for a block of tickets. It would release these tickets if they were not purchased. It was a very simple problem (didn't get into multiple users), but I'd be willing to bet that it wouldn't be likely for two students in a group of 100 to come up with the same solution. And even if it did flag 10 of those assignments, an intelligent look at them would allow the instructor to determine if they were developed together, or just happened to be similar.

      --
      Out of modpoints but really liked a post? 1BDkF6TtmmeZ3yqXbz9yhdYVqRYnwFoXDj
    15. Re:How many ways are there to do simple things? by DannyO152 · · Score: 1

      Why, no. You'd get a bad grade nonetheless of your originality because the predicate portion of the for loop should be i == 10;.

      Now, if a lot of people made that same mistake and there was a correlation between where they sat or what fraternity they pledged, that might make it flaggable.

    16. Re:How many ways are there to do simple things? by gman003 · · Score: 1

      Most people have subtle spacing differences. Compare:

      for (int i = 1;
      for(int i=1;
      for (int i=1;
      for (int i = 1 ;
      et cetera.

      And when you start c/p-ing code, most students don't change it to be consistent, and rarely keep it consistent between projects. When writing from scratch, though, people usually do stay consistent with spacing.

    17. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      That seems odd. But I've been trained in C, where it would be i=10

    18. Re:How many ways are there to do simple things? by qoncept · · Score: 1

      Most of my team tries to format code as consistantly as possible. I just love the days I get to debug or enhance the code written by the other guy.

      --
      Whale
    19. Re:How many ways are there to do simple things? by Qzukk · · Score: 1

      But I've been trained in C, where it would be i=10

      Only if you never want your loop to terminate, since during the loop termination check it would set i to 10, which would never be false.

      (int i=1;i<=10;i++) is the correct "numbers from 1 to 10 [inclusive]" answer.

      --
      If I have been able to see further than others, it is because I bought a pair of binoculars.
    20. Re:How many ways are there to do simple things? by Nadaka · · Score: 1

      for(int i = 0;i 10; System.out.println(++i));

      That is how I might right it.

    21. Re:How many ways are there to do simple things? by ravenspear · · Score: 2, Interesting

      pretty much.

      I rarely cheated in my CS classes, but on some really hard assignments where I just had to reuse code for some sections to avoid going insane, I just copied some code and then made it look different by changing all names, sometimes rearranging order of things, etc but still having it do the same thing.

    22. Re:How many ways are there to do simple things? by fucket · · Score: 5, Funny

      for (indexnt index=1;index=10;index++) { System.out.prindexntln(index); }

    23. Re:How many ways are there to do simple things? by CorporateSuit · · Score: 4, Insightful

      What are these unneccesssary scribblings you're adding to your code? This is a job for a single line:

      System.out.println("12345678910");

      --
      I am the richest astronaut ever to win the superbowl.
    24. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      Just finished writing automated bot for a popular flash based game. After spending at least 50man hours I figured out that, I can't win the game without using my credit card whereas game claims to be free forever. I feel like cheated but still I am not cheating(not automating things when I am not around). I just automated few mouse clicks. What is wrong in that?

      PS: Posting as anonymous for obvious reason.

    25. Re:How many ways are there to do simple things? by Nadaka · · Score: 1

      forgot slashdot would mistake a less than sign as partial html and escape it.

    26. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      How many people use IDEs to fix their style? That alone would filter out many of the style arguments.

      On the other side of the coin, my code is inconsistent in terms of formatting because if its a bit of code where I have a plan it'll be formatted nicely, but if I've been beating on a section of code, my formatting goes out the window.

    27. Re:How many ways are there to do simple things? by snowraver1 · · Score: 2, Insightful

      It would still be wrong. The loop condition (i=10) would be FALSE when the loop is initialized. (i=1). The correct form is for(int i=1, i

      http://cprogramminglanguage.net/c-for-loop-statement.aspx

      What site am I on again...

      --
      Copyright 2010. All rights reserved. This comment may not be copied in any way including, but not limited to caching.
    28. Re:How many ways are there to do simple things? by Derekloffin · · Score: 2, Interesting

      While true, the general issue is that there are only so many ways to go about doing X. Further there are only so many of those that are good ways among those, and even fewer still that students are taught about. When you then compare against both the net and all previous solutions, the odds of a match coming up greatly increases. At a certain point, particularly when we're dealing with introductory courses, you have to ask, are these true or false positives. I know at my work, I rarely can tell if it was me or someone else who coded something originally because the code structure is just that tight that you won't see much variation.

    29. Re:How many ways are there to do simple things? by blai · · Score: 1

      If your matching condition is i=10, you'll get a true right away.

      --
      In soviet Russia, God creates you!
    30. Re:How many ways are there to do simple things? by blai · · Score: 1

      assignment 1: random space character inserter

      --
      In soviet Russia, God creates you!
    31. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      that's exactly what plagiarism detection softwares chech

    32. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      Uh... really? By C do you mean Ocaml?

    33. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      Really though? i == 10?

      Are you sure you wouldn't like to change your cocky response to "i = 10"?

    34. Re:How many ways are there to do simple things? by nebaz · · Score: 2

      Good catch. Slashdot pruned my < character though as it was not escaped. I don't think the code that appears would compile. :-)

      --
      Rhymes that keep their secrets will unfold behind the clouds.There upon the rainbow is the answer to a neverending story
    35. Re:How many ways are there to do simple things? by Locke2005 · · Score: 1

      No, it would flag you as a bad programmer, because you left out the "less than" symbol. (Actually, I suspect it got stripped by the HTML.) But you raise a valid point: for simple programs, independent sources will create very similar code.

      --
      I've abandoned my search for truth; now I'm just looking for some useful delusions.
    36. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      yes, because the correct way is
      10 PRINT 1
      20 PRINT 2
      30 PRINT 3
      40 PRINT 4
      50 PRINT 5
      60 PRINT 6
      70 PRINT 7
      80 PRINT 8
      90 PRINT 9
      100 PRINT 10

    37. Re:How many ways are there to do simple things? by Crias · · Score: 1

      Well that explains everything. The < operator, when typed straight from the keyboard, gets filtered out. The parent post, like me, didn't properly check his "preview". Try "i <= 10" ftw. Oh btw, Anonymous Coward = me, forgot to log in.

    38. Re:How many ways are there to do simple things? by VGPowerlord · · Score: 3, Funny

      System.out.prindexntln

      I laughed when I saw this.

      --
      GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
    39. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      Code plagiarism checking tools are more elaborate than one might think :)

    40. Re:How many ways are there to do simple things? by thetoadwarrior · · Score: 1

      I'm not saying this is the best way or anyone would do it but...

      int[] total = {1,2,3,4,5,6,7,8,9,10};

      for(int i : total) {
      System.out.println(i);
      }

      Of course you can use an array list too!

    41. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      I just heard some sad news on talk radio - Slashdot pastime Trolling was found dead in its Geeknet home this morning. There weren't any more details. I'm sure everyone in the Slashdot community will miss it - even if you didn't enjoy browsing at -1, there's no denying its contributions to the Slashdot sub-culture. Truly an Internet icon.

    42. Re:How many ways are there to do simple things? by Chees0rz · · Score: 1

      No. But if this was the coursework beyond, say, week 1, I'd recommend you go to a real school.

      I was a student lab instructor while in school and taught CS1-4 (Java in CS1-3, C++ in CS4). Cheating was more noticeable on the labs where students would have to create classes+functions from scratch. The cookie cutter "here are your header/stubbed out files, fill in the functions" labs were hard to detect. But anything w/ class variables and comments and 'do it yourself' spacing, it becomes fairly evident.

      But the real kicker? It doesn't really matter. We always ended w/ a HUGE project where the students wrote ALL the lines themselves. If they did not know what they were doing, and cheated on the labs, they would struggle like crazy. If they cheated (read copied) on this larger project, it would be detected, because the implementation of a function would depend on their design.

    43. Re:How many ways are there to do simple things? by ddxexex · · Score: 1

      It's better to look at programming as an art rather than a science in this situation. writing a for loop is a building block for creating an actual program. Now combining the building blocks into a design and how you document the design is really the final result. So to use a bad art analogy, the prof tells the class paint an apple still life. Student A and B both draw in an impressionist style, but B uses slightly different lighting, placement, and other clear stylistic differences. Student C draws A's painting in exactly the same style (except probably a much worse job, or with just the stem pointing the other direction). All the paintings are doing the same thing but A and C would get in trouble for cheating / C for plagairism.

    44. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      Using <= is a bad call.

      Why wouldn't you just

      for (int i=1; i < 11; i++)

      This would be more efficient.

      ps. use a UINT as well if the language has one :P

    45. Re:How many ways are there to do simple things? by kenp2002 · · Score: 1

      If someone asked me to (in Java say) print the numbers from 1 to 10, I would probably do something like

      for (int i=1;i=10;i++) {

          System.out.println(i);
      }

      So would most other people. Would this flag me as a cheater?

      Anyone else getting an Intellectual Property vibe from this?

      I think you should sue anyone using your intellectual property!

      I'm serious!

      "Look there is no possible way you came up with that on your own. It's UNPOSSIBLE that any two people could come up with the same solution with the same characters! Resuing code is unacceptable!Yet another example of intellectual PIRACY!!"

      Think about it: Couple draconian copyright protection with searchable databases. Did I mention that apparently data in a database can by copyrighted? So apparently all the student submissions store in the database are now the copyright property of the vendor...

      "I'm sorry but your FOR loop is an obvious copy of EA's Duke Nukem Forver's code that was registered in the database in 1998. Based on database analysis, 60% of your code is an exact match against the existing Duke Nukem source code. Please go to jail and die now and have a great day!"

      and in further news:
      "Apparently 90% of the Linux source code, based on database analysis exists in existing IBM source code. A simple search of 12 billion lines of code on copyright from IBM indicates the Linux kernel violated their right by extensively using existing code copied from various products. The offending code:

      loopCounter++;

      was used more then 3 million times!."

      That is their mentality? God help us all if that is there measuring stick.

      --
      -=[ Who Is John Galt? ]=-
    46. Re:How many ways are there to do simple things? by drachenstern · · Score: 1

      I can usually tell because I usually have the IDE reformat the text according to my preferences. They have yet to learn that trick. So I can tell based on formatting (and nonprinting chars like \t ) if I wrote it or someone else doctored it after me. Of course, changelogs and revision history helps.

      When it comes to the actual code structure, they tend to split declaration and assignment, do things out of logical order (no, asking them proves they don't understand how to group things) and they tend to duplicate code for no reason.

      Yeah, I would probably like to be on your team. ;)

      --
      2^3 * 31 * 647
    47. Re:How many ways are there to do simple things? by gman003 · · Score: 1

      A non-trivial problem, especially for new programmers. You'd practically have to write a full parser to do it properly. Just take the case of an equals sign. If you just blindly add random spaces to either end, you'd break things like == and =+. Even intelligently removing spaces could break things like "= ++i". About the only trivial part would be parentheses and brackets.

      Then again, I could write such a program and sell it to college students...

    48. Re:How many ways are there to do simple things? by mcgrew · · Score: 1

      CS students cheat for the same reason students in other disciplines cheat -- because they're dishonest. Why is this question even being asked?

    49. Re:How many ways are there to do simple things? by drachenstern · · Score: 1

      ctrl-k ctrl-d for the win!

      --
      2^3 * 31 * 647
    50. Re:How many ways are there to do simple things? by adonoman · · Score: 1

      If you look at most undergrad code, you'll find that coding standards mean nothing to them, and that, while there are only a few ways to solve a problem correctly, there are a huge number of ways to solve it incorrectly. When a group of assignments gets flagged, and you find out that the code has exactly the same structure, and was handed in by three people who sit next to each other in class you get suspicious. When all three have exactly the same typos preventing the assignment from compiling, then there's not much worry about false positives.

    51. Re:How many ways are there to do simple things? by adwarf · · Score: 3, Insightful

      Other signs of cheating: When you get a student that does A+ work on programming assignments, but fails the exam (not always the case, but usually). Another sure sign is when they turned in two or three sub par programming assignments and then turn in a beautiful program using concepts that haven't been taught yet. Also once you suspect them it is easy to verify. They can either explain the code or they can't, if they can explain it maybe they cheated, but at least they spent the time to learn what the code does, although I never saw this when I was grading work.

    52. Re:How many ways are there to do simple things? by Khyber · · Score: 1

      "Would this flag me as a cheater?"

      Yes, simply because they're using automated software which is 100% incapable of critical thinking like what you just demonstrated.

      And apparently, the professors are just as incapable of those thought processes.

      This is why I left the IT field and went with horticulture - less bullshit from "professionals" with no common sense.

      --
      Still waiting on Serviscope_minor to wake up to fucking reality and realize that Jessica Price isn't going to fuck him.
    53. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      Actual, it would always be true. i=10 sets i to 10, which would also be the result of the expression. A non-zero value is always true in C. The loop would never terminate.

    54. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      I suspect that would just print out the number 10.

    55. Re:How many ways are there to do simple things? by Chees0rz · · Score: 1

      The only people I ever caught cheating, during my time as a student lab instructor, were when they would all do the same thing incorrectly, or ass backwards.

      Usually good code is very simple, and many people will write it. I would hardly need to inspect it. It's the bad code that you have to dig into trying to find where they should/shouldn't get credit. And when you find yourself trying to scrounge another student some points in the same mangled mess of a function, it sets off flags.

      Keep in mind, I only graded. I did not inspect labs for cheating. It is very obvious when it's wrong..

    56. Re:How many ways are there to do simple things? by Intron · · Score: 1

      If someone asked me to (in Java say) print the numbers from 1 to 10, I would probably do something like

      for (int i=1;i=10;i++) {
              System.out.println(i);
      }

      So would most other people. Would this flag me as a cheater?

      Even back in the early 80's when this instituted, it was known how big a program was needed to have a negligible chance of accidental matches -- not very big, but bigger than that. The tools I saw matched the compiler output (parse tree) so changing variable names or spacing would not save you.

      --
      Intron: the portion of DNA which expresses nothing useful.
    57. Re:How many ways are there to do simple things? by MBGMorden · · Score: 1

      His solution scales better. Always good to write code with it's present function and all possible future functions in mind, otherwise you end up throwing out what you have and starting over when the requirements change.

      --
      "People who think they know everything are very annoying to those of us who do."-Mark Twain
    58. Re:How many ways are there to do simple things? by adonoman · · Score: 1

      As a former TA, my favourite is when they turn files with the name changed, but neglect to change the student id number.

    59. Re:How many ways are there to do simple things? by Normal+Dan · · Score: 4, Funny

      I have a similar question,
      If someone asked me to (in Java say) print the numbers from 1 to 10, I would probably do something like

      for (int i=1;i=10;i++) {
      System.out.println(i);
      }

      So would most other people. Would this flag me as a cheater?

      --
      A unique way to learn a language: http://languageloom.com
    60. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      Speaking as a TA (the person who actually grades the assignments), no, I wouldn't. There are problems that are so simple that there really is only 1-3 ways of solving the problem (like the example above), which make it impossible to check for plagiarism (the whole class could copy one student and I wouldn't be able to detect it unless they also copied the other student's name on the assignment). It's why problems of that type are so poor, you don't want to create problems where there is exactly one solution.

    61. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      It was a very simple problem (didn't get into multiple users), but I'd be willing to bet that it wouldn't be likely for two students in a group of 100 to come up with the same solution.

      You would probably lose that bet, even in the case where there was a uniform distribution among the 365 most likely solutions. Look up the birthday paradox.

    62. Re:How many ways are there to do simple things? by MBGMorden · · Score: 1

      Not in some strongly typed languages - it'll produce a compiler error. In C# for example, i=10 would have a return type of int and that part of the loop would be expecting an argument of type boolean, and so it would fail to compile in the first place.

      In reality though, the HTML filter stripped out his less than sign.

      --
      "People who think they know everything are very annoying to those of us who do."-Mark Twain
    63. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      Exactly true. I've run into a case where they include test cases with their code and the two students had different input but identical output in these comments. Cheaters tend to be lazy/sloppy.

    64. Re:How many ways are there to do simple things? by DHalcyon · · Score: 1

      The system we used here was actually smart enough to not flag common idioms like this, and also still flag cases where only the variable names and formatting had been changed. Also, our assignments were usually complex enough that there would be enough variation, anyways. Most things about our automated hand-in system sucked, but the plagiarism detector wasn't one of them. If you're curious: https://www.ipd.uni-karlsruhe.de/jplag/

    65. Re:How many ways are there to do simple things? by Monkeedude1212 · · Score: 4, Insightful

      Woosh.

      There is no need for an assignment like that to be scalable (as is kind of his point). If they were going for scalability they need to be using more variables, like i=x;i==y, and then setting x and y previously so it actually counts the range dependant on what you pass it. And then take out i++, because you don't know if you'll be iterating by one. Maybe you'll need every second number, or third number.

      The amount of things you can do to make a simple project "Scalable" is very overwhelming. You need to assess at what point does a scalable option becomes pointless.

      And in the case of counting from 1 to 10, he said scalable options ARE pointless already.

    66. Re:How many ways are there to do simple things? by fuzzyfuzzyfungus · · Score: 2, Insightful

      Well, because "cheaters cheat because they are dishonest" is an achingly vacuous near-tautology; and because rates of cheating appear to differ across disciplines, which rather calls out for a more nuanced explanation...

    67. Re:How many ways are there to do simple things? by Gri3v3r · · Score: 1

      for(int i=1;i=10;System.out.println(i++));

    68. Re:How many ways are there to do simple things? by Animats · · Score: 1

      Anyone else getting an Intellectual Property vibe from this?

      That comes under the "Scènes à faire" doctrine.

    69. Re:How many ways are there to do simple things? by adiposity · · Score: 1

      This doesn't give the same output...

    70. Re:How many ways are there to do simple things? by QuantumLeaper · · Score: 1

      You can get quite a difference in 'simple' classes. I remember on C++ class where everyone would have the assignment done in 1 or 2 pages but one person would do it in 5 or 6 pages. I think I only had one assignment that ran more than one page, and that included the comments. It was also a bad class since we really didn't do C++ in class, I know the other teachers didn't like how he did it either.

    71. Re:How many ways are there to do simple things? by Altus · · Score: 1

      Sometimes scaling is necessary, sometimes you just have to print out a string. The trick is to know when each of those things is true.

      Sure, its not good software engineering but it sure does execute quickly.

      --

      "In America, first you get the sugar, then you get the power, then you get the women..." -H. Simpson

    72. Re:How many ways are there to do simple things? by lgw · · Score: 1

      When you only have 1 use case, solve the problem the simplest way possible. It's wasteful to solve for some imagined general case unless you have 2 or more actual use cases, because you'll often guess wrong about what the general case actually is.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    73. Re:How many ways are there to do simple things? by Gri3v3r · · Score: 1

      for(int i=1;i<=10;System.out.println(i++)); sorry for double post,but my lower than symbol got omitted by the filter.used html this time.

    74. Re:How many ways are there to do simple things? by Oxford_Comma_Lover · · Score: 1, Interesting

      > on some really hard assignments where I just had to reuse code

      Really weird. It's the easy assignments where that might be tempting--they're so mind-numbingnly dull.

      At my undergrad, I successfuly argued against allowing this kind of automated scanning program. Rather than punishing students if the professors discovered cheating, these programs actively assume every student is cheating and try to prove them innocent. This offends me. It's like accusing every professor of plagiarism until he shows fairly conclusively that he hasn't submitted somebody else's article. One professor had the audacity to ask if I was fighting the system because I cheat. He meant it jokingly, but it was still as offensive as hell.

      --
      -- IANAL, this isn't legal advice, and definitely isn't legal advice for you. Also, Squee!
    75. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 1, Funny

      But we didn't wirk togehter you isnensitive cold!

    76. Re:How many ways are there to do simple things? by Mike+Buddha · · Score: 4, Funny

      If someone asked me to (in Java say) print the numbers from 1 to 10, I would probably do something like

      for (int i=1;i=10;i++) {

          System.out.println(i);
      }

      So would most other people. Would this flag me as a cheater?

      No, the system would flag you as being wrong. "i=10" would give an error either in compile time in a strongly typed language, or in runtime in a loosely typed one. FAIL.

      --
      by Mike Buddha -- Someday the mountain might get him, but the law never will.
    77. Re:How many ways are there to do simple things? by natehoy · · Score: 4, Funny

      But we didn't wirk togehter you isnensitive cold!!

      --
      "This post contains words, known to the State of California to cause thought. Wash brain thoroughly after reading."
    78. Re:How many ways are there to do simple things? by Altus · · Score: 1

      At least in C, isn't 'int' supposed to be guaranteed to be the native size integer on the processor and therefore faster than a UINT?

      Its been a while, I might be remembering incorrectly.

      --

      "In America, first you get the sugar, then you get the power, then you get the women..." -H. Simpson

    79. Re:How many ways are there to do simple things? by Mister+Whirly · · Score: 1

      Except you forgot quotation marks around the text you want printed.

      --
      "But this one goes to 11!"
    80. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      You're on a site where people don't click Preview. The LTE got condensed to = by Slashdot's formatting.

    81. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 2, Insightful

      Always good to write code with it's present function and all possible future functions in mind

      No its not, You can't predict all future uses of any given bit of code. Therefore it is not useful to try and design for the unknown. Once your code passes the acceptance tests. stop coding, you're done.

    82. Re:How many ways are there to do simple things? by omglolbah · · Score: 2, Informative

      *snortgiggle*

      I fondly remember one problem we had to solve in college....
      It involved some fairly annoying math and most of the task was understanding 3rd year math in an intro course....
      What ended up happening is me writing a class that everyone else copied and used for the math in their assignment.

      Amusingly the teacher didnt punish anyone for this. He found it incredibly clever to just write the framework and "outsource" the math ;)

      Then again... most of our turn-ins were never looked at. We just needed to turn in an empty folder with our name on it to qualify for the final exam. The teachers never bothered actually looking them over. Too much work.... Asshats :-p

    83. Re:How many ways are there to do simple things? by chad.koehler · · Score: 1

      Several?

      #include <iostream>

      class NumberPrinter
      {
      public:
         NumberPrinter() : n(1)  {cout << n++ << "\n";}
         ~NumberPrinter()        {cout << n++ << "\n";}

         NumberPrinter& operator*()                      {cout << n++ << "\n";   return *this;}
         NumberPrinter& operator,(const NumberPrinter&)  {cout << n++ << "\n";   return *this;}
         NumberPrinter& operator!()                      {cout << n++ << "\n";   return *this;}
         NumberPrinter& operator++()                     {++n; return *this;} // haha
      private:
         int n;
      };

      int main(int argc, char** argv)
      {
         NumberPrinter plagerism_sucks;
         *plagerism_sucks,plagerism_sucks,plagerism_sucks,plagerism_sucks;
         !plagerism_sucks,!plagerism_sucks;
         ++plagerism_sucks;
         cout << "9\n";
         return 0;
      }

    84. Re:How many ways are there to do simple things? by Shadow+of+Eternity · · Score: 1

      I preferred a simpler argument: With such a large base of comparison and such a small set of acceptable solutions you will eventually reach a 100% plagiarism rate.

      --
      A bullet may have your name on it but splash damage is addressed "To whom it may concern."
    85. Re:How many ways are there to do simple things? by omglolbah · · Score: 1

      And sometimes writing the loop is the right way as the assignment is to show that you grasp a basic for loop ;)

    86. Re:How many ways are there to do simple things? by MartinSchou · · Score: 2, Funny

      Actually, if you are particularly evil, and you happen to know that the person you're cheating off of hasn't used any kind of repository, just introduce some tricky bugs that keep the program from running properly.

      The kind of bugs that you'd fix if you wanted the program to look like your own.

      That way you get your okay grade, and the guy you cheated off of gets booted for cheating off of you. After all - if you are willing to steal their work, why not kill their career as well?

    87. Re:How many ways are there to do simple things? by MBGMorden · · Score: 1

      Different mindsets. I've personally found that if you ever have the attitude "there is no need for an assignment like that to be scalable" then eventually you're going to dismiss the practice when you shouldn't. This is academia. The code is to teach you HOW to program by having you write small "Dixie Cup" programs to teach you concepts. They are by definition limited simulations of anything useful. If you're dismissing good practice in favor of jumping to sloppy but simple solutions to save coding time, then you're instilling bad habits.

      Bottom line, if I asked for a way to print the numbers from 1 to 5 and got:

      printf ("1");
      printf ("2");
      printf ("3");
      printf ("4");
      printf ("5");

      then though it works, I'd say the student missed the point of the assignment. I don't care about actually getting the numbers to print. I care about them learning how to properly get a sequence of events (print statements) with 1 minor attribute changing each time to happen in a useful manner. The non-loop solution doesn't teach that. It'd be as if you told your kid to paint a room that had just been painted last week so that he'd learn how to do it, but instead he paid a guy down the street to do it for him. Sure the work got done, but the end result wasn't the point in the situation. In essence, the student gets a "whoosh" as to the purpose of the assignment.

      --
      "People who think they know everything are very annoying to those of us who do."-Mark Twain
    88. Re:How many ways are there to do simple things? by Monkeedude1212 · · Score: 1

      I would hope that using a for loop to count to 10 is something you go over in class and that your assignment is a little more demanding.

      But yes, if the assignment specifies, thats obviously how it should be done. (The Grandparent made no mention a for loop was required) :)

    89. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      I'm guessing the less-than bracket was parsed out. Otherwise this loop would only display once even if the equals was a conditional

    90. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      the numbers aren't text, they're interpreted as integers

    91. Re:How many ways are there to do simple things? by breinera · · Score: 3, Informative

      As a teacher who used Moss (for a Measure Of Software Similarity), it was dead on. I taught an introductory course for non-CS majors and when MOSS detected something above 90% similarity, it meant cheating was involved. When I questioned the students, they all confessed. I would say about 20% of the class was caught cheating at one point of time or another.

    92. Re:How many ways are there to do simple things? by dwarfsoft · · Score: 1

      The problem with this is for people redoing classes. I had redone a class and submitted code which included a function that I had written in the same class the first time round. I got flagged as plaigiarising. Fortunately this one got sorted out and they realised that they were in fact wrong.

      My wife, however, was taking a non computer-science course and between the two years there was the same assignments for a class she needed to repeat. She changed it to make it better and submitted it. Then she was flagged as plaigiarising. It took 2 years to sort out that the lecturer was a douche and they were eventually fired. It was a lot of effort to go to though. So, automated tools are great, but it does need to be adressed by humans (which TFA and TFS does say too).

      --
      Cheers, Chris
    93. Re:How many ways are there to do simple things? by mwvdlee · · Score: 1

      Students don't cheat because they're dishonest. Students cheat because it's the easiest way to getting your diploma. School isn't about learning a trade, it's about getting a diploma.

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    94. Re:How many ways are there to do simple things? by DrgnDancer · · Score: 3, Interesting

      Let's say a professor gives us both the same very easy assignment. Something that can be done in ten lines or less, and is meant to display how a for-loop works. We're to comment the code and explain what each line does (because it's a classroom assignment, and that's almost always a requirement even for the simplest tasks). Now chances are we'll need at least two or three variables, and just like the comments we'll be expected to use descriptive names; even though the task is mind numbingly simple. You just have to do these thing in classrooms, even when you're only dealing with two variables and "x" and "y" would serve just fine.

      So, what are the chances that we will choose the same variable names, use the same comments, put the same number of spaces and/or tabs in our indents, and insert our white space lines in the same places? Pretty slim most likely. It's more than just "did they use the same basic approach to the problem" or even "did they use the same functions and control structures in the same order?". It's more like "Is this exactly the same program?" or at least "are parts of these two programs completely identical or nearly so?" Of course they also manually chaeck what the automated tools flag. Or at least they should and they claim too.

      --
      I don't need a million points of light, just two points of multi-mode fiber and a 10 Gig-E router.
    95. Re:How many ways are there to do simple things? by KahabutDieDrake · · Score: 1

      What is the code level difference between "we did this together" and "we came up with similar solutions independently"? Point being, there is no difference, because with any given problem, there are only so many solutions. It's also likely there are only so many GOOD solutions, and not many of them. So if you have a class of 100, and you assume that at least 5 of them are REALLY smart, chances are 2 or more of those 5 are going to have similar ideas. While the rest of the class goes off on a goose chase and ends up with 20,000 lines of code to print hello.

    96. Re:How many ways are there to do simple things? by spiffmastercow · · Score: 1

      3 levels deep, and you all still can't figure it out. != is the operator you're looking for. <= would also be acceptable.

    97. Re:How many ways are there to do simple things? by darkwing_bmf · · Score: 1

      Does Java really treat for loops differently than C? Or will the code print nothing?

    98. Re:How many ways are there to do simple things? by Thiez · · Score: 1

      That program sounds like it would totally break on "B" or "ABB".

    99. Re:How many ways are there to do simple things? by Khisanth+Magus · · Score: 4, Funny

      One of the more amusing moments of my time as a Graduate Teaching Assistant was when I caught 3 students working together in a class where no collaboration was allowed. The sad thing is that in this particular class, there was only one correct way of doing the assignments, so anyone who did it correctly could not be caught. These three had such a horribly wrong answer that there was no way that 3 independent people could have gotten that answer.

    100. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      It's a good point, but I think that one thing Comp. Sci. teachers look at, when doing these comparisons, is things like variable and user-defined function names and comments. While a student *could* change variable names and comments, a lot of times, the students who are cheating are not even putting that much effort into it.

      Now, of course, if the variable name is x, or i, or j, or k, etc, then it doesn't really strongly suggest cheating. But, if a student has *every* variable/function name identical, and the variable/function names are fairly original/unique in what was chosen for the names, and if all the white space is the same, and all the comments are exactly the same, etc, then you can pretty safe say with a high degree of certainty that copying has occurred.

      But, yes, in general, when students are given a problem "X", which they are required by the assignment solve with Algorithm "A" (because that is the Algorithm you are currently studying in the class), then, yes, all of the programs *should* look very similar. . . but not identical. I suppose some Comp. Sci. course teachers might be dumb, but because of the nature of the material being taught, for the most part they will be smart enough to realize that, and account for that when making a judgement. Also, I would presume that it is fairly standard procedure at most Universities that if a teacher encounters a case of cheating, they bring it to the attention of some sort of Academic Standards Committee who reviews the allegation and the evidence, and one would hope that would include additional faculty from the department who would also be smart enough to take that into account, and only 'convict' the student of cheating when there is strong evidence of such misconduct.

    101. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      What seems to have actually happened is that the GP forgot to escape the "less than" part of his "less than or equal to" operator, and Slashdot removed it.

    102. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      ICWUDT

    103. Re:How many ways are there to do simple things? by Monkeedude1212 · · Score: 1

      No where was it stated that the For loop was part of the assignment though - it was only the GP's "Way" of doing things.

      If told to print 1 to 5 without being taught for loops, how would you know to do it?

      Essentially, you are also missing a function header/signature, since those are standard coding practices you should be including with all of your assignment code.

    104. Re:How many ways are there to do simple things? by cigawoot · · Score: 1

      The amount of code there wouldn't be large enough to trigger any type of match.

    105. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      Of course the output of your program would not match the output of the parent -- even if they parent had fixed its mistakes.

    106. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      Depends on the version of Basic. Some versions would interpret the numbers to be variables, and if you hadn't already defined them, it would error out.

    107. Re:How many ways are there to do simple things? by acidrainx · · Score: 2, Insightful

      Exactly. Reasons like those explained the GP and the subsequent replies are the reason we end up with bloated code with hundreds or even thousands of unused methods/functions/classes/etc.

      "What is this function used for?"

      "Oh, because I know that the next feature we add here will need this."

      This is not a valid excuse. Anybody who has spent a month working in the industry will know that product managers change their minds on a minute-by-minute basis. Don't waste my time by putting in code that I will end up reading, deciphering, and eventually find is not even used.

    108. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      *Actually* the predicate portion of the for loop should be i <= 10;.

      If your predicate is i == 10, the loop body will never run, because i is initialized to 1, which is NOT equal to 10, so the for loop will exit.

      Man, how can so many people get that wrong on /.? The top-level poster chose what should be the absolutely most simple, fundamental example of how to use a for loop, and we get multiple people getting it wrong (including the top-level poster). Wow.

    109. Re:How many ways are there to do simple things? by roman_mir · · Score: 1

      no, but you'd fail because in Java that wouldn't compile even, with assignment being used instead of a comparison. What, did /. eat your '<' ?

    110. Re:How many ways are there to do simple things? by Ossifer · · Score: 1

      Exactly my experience having taught many intro-to-CS courses. Once I learned this myself, I started telling students on the first day of classes that they were unlikely to be clever enough to hide their cheating--that to do so without getting caught would require a mastery above the level being tested--i.e. it would be easier to learn and solve than to successfully cheat.

      That being said I freely encouraged students to seek out each other's help in understanding the solution, but to code on their own.

    111. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      It is not just the code, it is the comments. Especially in the first grades your code should consist for 30% of comments. (or some other silly arbitrary number). Duplicate code might mean two minds think alike. Duplicate comments means plagiarism

    112. Re:How many ways are there to do simple things? by roman_mir · · Score: 1

      fail. In Java that wouldn't compile even.

    113. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      Combine indentation, whitespace, choice of method and variable names, order of variable declarations, data types, and comments (if present) and most intro programs, while implementing the same algorithm, are sufficiently unique to determine a fingerprint of sorts. The real question is, how many false negatives are due to people just jumbling up the names of variables and methods. And if your names make sense, does it matter, since you had to understand the code well enough to give it a reasonable name...

    114. Re:How many ways are there to do simple things? by PSandusky · · Score: 1

      Some of it does come down to copyright protection, yes. Some of it comes down to other important items, though -- up to and including wanting the students to do their own damn work.

      I haven't dealt with this stuff in terms of CS courses and code, so how I speak on this is somewhat OT, but my university uses a similar system to check student writing. One student liberally copied text and ideas from her textbook on the subject in question. I will have students literally copy and paste all over the place, frequently from websites that are dirt wrong, just to pad out their papers. I have had students copy and paste from their (electronically distributed) lab instructions when they need to write up their methods for lab reports. Occasionally I will have students who will turn in the same paper, but with the idea that switching the order of the very same sentences within a given paragraph will make their work original. My personal favorites, though, and the ones the automated system won't catch, are the ones who will copy and paste the answers I send them to questions they e-mail me. Interestingly, it's as though I shouldn't notice those -- but when the student can't construct anything resembling "subject-verb-object" anywhere else in their paper, then they start writing in my style... Yeah. All this leads to one exquisitely unhappy TA who is all too happy to rain down hellfire and brimstone on the twerps. Really -- and it's so much worse because it is not isolated.

      To be fair, the system does cough up a lot of false positives -- there are indeed only so many ways of describing the same procedure performed by some 120 people in the database at the same time -- so many that we frequently refrain from allowing students to see what their "plagiarism percentage" is once their papers come back from the scan. Still, we go through and check each and every report just to be sure that what's getting picked up is (or isn't) plagiarism. It's just that even after giving students the benefit of the doubt, we still have to fry several students.

      --
      "What's the use in being grown up if you can't be childish sometimes?" --Fourth Doctor, "Robot"
    115. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      In my school they'd give you both the boot since the most plausible way of them getting your code is by asking you nicely for it.

      The real way to "get away with it" is by copying techniques and not code. The problem is, this requires some level of understanding the languages syntax which is why I justified using others code as a rough draft for the code I actually typed up. The technique still works in industry. My coworkers encourage we copy off eachother because we know 2 things: 1 it works, and 2 it works...

    116. Re:How many ways are there to do simple things? by serialband · · Score: 1

      If someone asked me to (in Java say) print the numbers from 1 to 10, I would probably do something like

      for (int i=1;i=10;i++) {
              System.out.println(i);
      }

      So would most other people. Would this flag me as a cheater?

      Simple answer: Yes.

      Longer answer:
      By your statement, you've only just proved that you have never graded assignments. There is usually enough variation that it becomes quite easy to flag a potential cheater. Not everyone would write out the exact same code you've produced. Some people would actually use the variable name "count" instead of "i", or just use something else. Parenthesis can be placed differently. Some people would add formatting to the output. Some people use tabs instead of spaces. In a class of 30, there can be 30 unique pieces of code to produce what you describe. The obviously lazy will just copy code, sometimes even forgetting to change the required name in the comments.

      One assignment is not enough to truly prove that they are cheating, but if the same person is caught duplicating work on more than one assignment, it's definitely not a coincidence. They are indeed cheating. Other than a very first assignment, most code assignments will be a bit more complex than your assignment description and the amount of variations each individual produces can become quite staggering, making it ever so easy to spot cheaters.

    117. Re:How many ways are there to do simple things? by Ambiguous+Puzuma · · Score: 1

      Then you interview the few people flagged as "probably" cheating (i.e. similar structure but cosmetic differences). Anyone that can demonstrate a rudimentary understanding of key concepts used by the code in question is cleared of cheating.

      I found this out with one assignment for an early CS class. I submitted my code right before the deadline, then sent my code to a struggling classmate after the deadline passed so he could see one way to approach the problem. He decided to change some variable names and formatting and submit it as his own, and it was accepted even though it was late. Our assignments were flagged by a plagiarism detection program, and we were individually asked to meet with the professor. The professor asked me a couple very simple questions about design choices I had made, and I was on my way with no penalty.

    118. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      well for starters... for (int i=1;i==10;i++) { System.out.println(i); }

      might work better.

      Or it might be as wrong as the grandparent because you still used the wrong operator.

    119. Re:How many ways are there to do simple things? by PSandusky · · Score: 2, Insightful

      "Would this flag me as a cheater?"

      Yes, simply because they're using automated software which is 100% incapable of critical thinking like what you just demonstrated.

      And apparently, the professors are just as incapable of those thought processes.

      This is why I left the IT field and went with horticulture - less bullshit from "professionals" with no common sense.

      If they're pegging every single flag, then sure. If they're going back and looking at what the system spits out -- which I imagine they are -- they can tell what is and isn't plagiarized. Really. A report may come back saying that 85% of the text of the code is from a single source, in the order given -- and that's not plagiarism? If I were a TA for that course, I'd be having words with a student -- moreso than I would if someone's report came back saying that 5% came from here, 2% came from there, 15% came from over there...

      Don't knock the professors out of hand. True, there's a yutz in every crowd, but they're often doing the best they can -- especially now that students have become far more militant about demanding the grades they want rather than working for them. Grade inflation isn't a myth, and it's frequently not the faculty's idea. When it comes down to it, though, the administrations involved will tend to lean more strongly toward whatever gets them less noise -- and if that means quieting down students who are complaining about their grades, then so be it. Same goes for students complaining about getting told about academic dishonesty.

      --
      "What's the use in being grown up if you can't be childish sometimes?" --Fourth Doctor, "Robot"
    120. Re:How many ways are there to do simple things? by Ambiguous+Puzuma · · Score: 1

      A good plagiarism detection system would take the length of the code/text into account when setting the heuristic threshold for flagging something as possible plagiarism.

    121. Re:How many ways are there to do simple things? by Novus · · Score: 1

      Using Plaggie in the same configuration I usually use, and assuming the code surrounding this loop is different enough, the answer is "no". Typical programming plagiarism detection tools compare entire source code files against each other to determine the extent of similarity, not small chunks. Naturally, you don't want students to circumvent the tool simply by reordering methods or such, so you look for chunks of code that are similar, but the verdict is based on how much of the code can be accounted for this way, not just whether a match is found.

      Of course, responsible users of tools like these check anything they flag manually.

    122. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 1, Insightful

      What site am I on again...

      You're on a website that removes less than signs from people comments!

    123. Re:How many ways are there to do simple things? by Thanatiel · · Score: 1

      When asked for such a simple task, bad developers (and smart-asses) do it like this:

      System.out.println("1 2 3 4 5 6 7 8 9 10");

      Of course if you ask instead for a quick-sort implementation, or a median (especially after a quick-sort ;) ), a RB-tree, an AVL-tree ... then it's easier to identify the losers.

      --
      Irrelevant news and morons using moderation to mod down what they disagree on. 2018 resolution: so long.
    124. Re:How many ways are there to do simple things? by 0100010001010011 · · Score: 1

      For C. Matlab's IDE has a built in auto indenter/formater. For PHP I use php_beautify.

    125. Re:How many ways are there to do simple things? by nabsltd · · Score: 1

      What about the LATER assignments? One I had for my early course involved writing a ticketmaster-like ticket purchasing system where it would find and temporarily reserve the 'best' seating for a block of tickets. It would release these tickets if they were not purchased. It was a very simple problem (didn't get into multiple users), but I'd be willing to bet that it wouldn't be likely for two students in a group of 100 to come up with the same solution.

      In my data structures class, when we started on balanced trees, the prof had an assignment where the input would be dictionary words and we were supposed to sort them using balanced trees as the temporary store. We also were supposed to re-use the last assignment where we used normal binary trees. This was to show that if the input was already sorted, the tree devolved into a list and you hit O(n) instead of the O(log n) that balanced trees should always result in.

      As extra credit, he wanted us to avoid the worst case for the binary tree, so I stored the values after applying strrev (or a homemade version thereof). People tried many things (some of them similar), but nobody else used my trick. If you know the domain of your data, you can often improve your algorithm.

      To test my theory, I reversed all the strings in /usr/dict/words, sorted it, then reversed them back. What you get looks pretty much random, so my trick shouldn't end up worst case very often.

    126. Re:How many ways are there to do simple things? by HungryHobo · · Score: 1

      What the hell???
      does the system in question just return a true/false value for if it believes something has been plagarized rather than detials of what it believes you've plagarized from???

    127. Re:How many ways are there to do simple things? by Yvanhoe · · Score: 1

      Which is a common mistake. So yes, false positive for you.

      --
      The Wise adapts himself to the world. The Fool adapts the world to himself. Therefore, all progress depends on the Fool.
    128. Re:How many ways are there to do simple things? by AthleteMusicianNerd · · Score: 1

      No, but a good professor would fail you for writing code that doesn't work.

    129. Re:How many ways are there to do simple things? by darkwing_bmf · · Score: 1

      I believe it would be an infinite loop in C.

    130. Re:How many ways are there to do simple things? by Nadaka · · Score: 1

      Funny but true story.

      My csc101 and csc102 classes didn't transfer credits from my community college to my senior college for some reason. So in my last year at university I had to rush and take these classes over again to satisfy the technical requirements of the degree.

      I intentionally wrote code that would be utterly impossible for anyone else in the class to replicate. Rarely used syntax like for(a,b;c;d,e); function pointers, recursion, etc. The TA's hated me.

    131. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      Interestingly, if the student cheats well enough (I did this a couple of times in college when I was lost, but also paranoid), they end up with a good understanding the assignment by the end. Proper CS "cheating" means that you have to understand the code well enough to, for example, rename the variables to something different that still makes sense or move statements around without mucking up the functionality.

    132. Re:How many ways are there to do simple things? by Yvanhoe · · Score: 1

      There are many studies that show that humans are quite bad at evaluating randomness and probabilities. A very common error or typo could be interpreted as a copy with no good reason. How do you protect against human bias.

      Cheaters are lazy but often smart. How long do you thing it would take them to find a code randomizer that changes style without changing function ?

      Another thing. In everything that involves rules and blames, a sense of justice must be respected. One has to refuse to tolerate even the possibility of a false positive. I see no way to ensure that.

      --
      The Wise adapts himself to the world. The Fool adapts the world to himself. Therefore, all progress depends on the Fool.
    133. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      More efficient in Perl:

      print "$_\n" for 1..10;

    134. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      So you'd fail both Java and English.

    135. Re:How many ways are there to do simple things? by Novus · · Score: 1
      Any detection software worth using is going to ignore whitespace and names and focus on structure, keywords or something harder to disguise using search and replace. The software I use converts the source code into a stream of tokens, like:

      2:3(69)-3(91):FOR: for (int i=1;i<=10;i++)
      3:3(78)-3(80):VARIABLE_DECLARATION:i=1
      4:3(88)-3(90):ASSIGNMENT:i++
      5:3(93)-3(93):BLOCK:{
      6:4(103)-4(123):METHOD_INVOCATION:System.out.println(i)
      7:5(130)-5(130):BLOCK_END:}
      8:5(130)-5(130):FOR_END:}
      The comparison is then done on the tokens (the part in all capitals), ignoring the exact names and such used.

    136. Re:How many ways are there to do simple things? by Garridan · · Score: 1

      ... and yours wouldn't even compile. The problem with gp's code and your own is that you don't type out &lt; when you want a < symbol.

    137. Re:How many ways are there to do simple things? by fataugie · · Score: 4, Insightful

      So how did writing the tuition check feel after knowing they were rubber stamping things? It would piss me off knowing I was supporting some lazy ass professors.

      --

      WTF? Over?

    138. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      Hey, that looks like my submission!

      #include <iostream>

      class ColickyBaby
      {
      public:
         ColickyBaby() : n(1)  {cout << n++ << "\n";}
         ~ColickyBaby()        {cout << n++ << "\n";}

         ColickyBaby& operator*()                    {cout << n++ << "\n";   return *this;}
         ColickyBaby& operator,(const ColickyBaby&)  {cout << n++ << "\n";   return *this;}
         ColickyBaby& operator!()                    {cout << n++ << "\n";   return *this;}
         ColickyBaby& operator++()                   {++n; return *this;} // teh funny
      private:
         int n;
      };

      int main(int argc, char** argv)
      {
         ColickyBaby cough;
         *cough,cough,cough,cough;
         !cough,!cough;
         ++cough;
         cout << "9\n";
         return 0;
      }

      // BTW, I really liked your post

    139. Re:How many ways are there to do simple things? by Garridan · · Score: 1

      Parasites that kill their host too quickly don't survive...

    140. Re:How many ways are there to do simple things? by fataugie · · Score: 1

      You might have some explaining to do if you haven't covered for loops in the course yet.

      --

      WTF? Over?

    141. Re:How many ways are there to do simple things? by Rasperin · · Score: 1

      Apparently, you forgot how to spell too.

      --
      WTF Slashdot, why do I have to login 50 times to post?
    142. Re:How many ways are there to do simple things? by omglolbah · · Score: 1

      You'd be surprised how shite some college programming classes are...

      We went like this in "intro programming"

      * Make a form with a button that closes it
      * Make a form with textboxes, multiply input of two and show result in label
      * Make such a program to do simple math using radiobuttons.

      Hardest turn in was a funny little thing to make one form open another modal...

      This was a class that gave a quarter of a semester worth of credits... *sigh*

    143. Re:How many ways are there to do simple things? by ElSupreme · · Score: 1

      While what you say makes perfect sense, there is a problem with your argument. The question was "a way to print the numbers from 1 to 5."

      The answer you gave, while showing no real grasp of the obvious concepts, IS a PERFECT solution to the problem. If you want a better answer you should have asked a better question.

      Personally the cheat finder programs are absolutly absurd. First rarely (at least at Georgia Tech) are the 'results' of the cheat finder ever looked at by a person. But they don't account for LEARNING. About 45% of my freshman class taking intro to progamming got formally accused for cheating (I would bet close to 75% got flagged at one point). Including a few of my friends. Some of them did cheat, downright copied code. Some of them worked together to produce the code (for a HW assignment) then changed it up a bit and submitted. The thing was that ANY other non-CS class doing homework together would not even be questioned as cheating.

      I didn't get accused of cheating, but got flagged and confronted about my 2 line solution to sorting a list. The thing was I used the example the prof. put up in class, allong with evenyone else at that class. But I had to prove that I was at class, and show my notes in front of a quasi-legit review board. There were ~80 people there for the EXACT same reason.

      I also had two of my friends accused of cheating after discussing a MATHAMETICAL way of getting a faster prime number list. We all had done our programs and were shooting the shit about how we got our prime numbers. Mine was significantly faster than theirs, so they used my method to get primes. I changed mine a bit and sacrifced speed for the lower values, but got noticible improvments (because I had a side project I was starting) at much higher numbers. They both got charged because they both had 1 identical (but very odd and quirky) mathematical calculation in the middle of their completely different code. Add on to that the project was about concatenating lists, the math was just a method to get another value to concatenate.

      I eneded up calculating the first 1,000,000 prime numbers (it may have been 100,000, or other very large number) then printed them to a doc file, then printed 128 sheets of 6pt font of the numbers. Then wallpapered the hall outside my dorm door.

      --
      My addiction: Arguing with idiots. AKA Slashdot!
    144. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      most do NOT take into account variable / class / function names at all.

      Instead the key parts they look at are how these classes / variables are linked up.

      This is also how you can easily throw them off.

      You simply write a few bogus class methods, toss in a few extra variables, and have them interact with each other, even if it is simply to pass a null variable around.

      These thing's aren't being used on your very first intro class, where you are just learning the syntax of the language and how to do the basic's (creating linked lists / various sorting methods / etc)

      You will find these run more on the programs that require multiple fully fleshed out classes with private public methods.

    145. Re:How many ways are there to do simple things? by Asclepius99 · · Score: 4, Funny

      But we didn't wirk togehter you isnensitive cold!!

    146. Re:How many ways are there to do simple things? by Monkeedude1212 · · Score: 1

      I remember doing Visual Basic in High school and it was like that. It eventually made itself into a simple Tic Tac Toe game by the end of the 6th Module. When I applied to the local Polytechnic, they didn't recognise it as a real lesson, so in order to get into Computer Sciences I had to complete their "Intro to C" by correspondants.

      I kid you not, 5 modules - the first one being "How to turn on and operate a computer" - and the last one being Multiplying two numbers taken in from a command prompt.

      The biggest waste of time and money I've ever encountered. But at least my parents were proud of my perfect Grade.

    147. Re:How many ways are there to do simple things? by Sulphur · · Score: 1

      Intron: the portion of DNA which expresses nothing useful.

      Its a copyright notice.

    148. Re:How many ways are there to do simple things? by Quirkz · · Score: 1

      Other signs of cheating: When you get a student that does A+ work on programming assignments, but fails the exam (not always the case, but usually).

      I would have been one of the exceptions here. Had a sold A going into the final, and did so badly on it that I ended up with a C for the semester. Blame it on senioritis, and an honors thesis that was falling apart. Everything was simple enough along the way, and I just kind of lost it at the end. Gotta love it when your exam comes back with comments like "yes, technically this works, but nobody in their right mind would ever do it this way!"

    149. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      unsigned int should be the same size as int.

    150. Re:How many ways are there to do simple things? by keithpreston · · Score: 1

      Often these aren't a single very common typo or error. They are usually 10-100 unique aspects of the file that should be different. After looking at a hundred programs, two that are the same stand out like a sore thumb.

      Justice is important, any accusation of cheating should be appeal-able if they are truly wrongly accused. Most people just admit it.

        Fortunately the smart usually don't cheat or get away with it. Cheating well almost always if more work then the original. Even if not, I would still probably hire a smart cheater (who takes short cuts on unimportant things) rather then a knowledgeable idiot.

    151. Re:How many ways are there to do simple things? by Nadaka · · Score: 1

      Obviously I was attempting to correct his error, using "right" as a verb meaning to make right... Yep, that would be it exactly. Excuse me, I have more excuses to fabricate.

    152. Re:How many ways are there to do simple things? by mea37 · · Score: 1

      Even the U.S. criminal justice system does not "refuse to tolerate even the possibility of a false positive". Not even in theory.

      Whether cheating on a given assignment could be caught in this way depends on the assignment. It's not all or nothing. Moreover, any method of detecting cheating is an exercise in collecting red flags and looking at patterns (remember, you don't have to evaluate whether a student is cheating based on one assignment in isolation) until suspicion reaches a threshold; and then investigating to see if even that pattern was just a coincidence. A tool for automated code analysis is just a source of "red flag" data.

      You're framing your arguments as though this were some theoretical idea for how to catch cheating. It's been going on for at least 10-15 years. The bottom line is, the tools don't fail students; the professors do. If you don't trust them to exercise proper discretion in interpreting the output of these tools, you shouldn't be paying to take their course at all.

      The "perfect technical solution or nothing" attitude serves only cheaters. I'll nonetheless refuse from making assumptions about your motives.

    153. Re:How many ways are there to do simple things? by Locke2005 · · Score: 1

      Uh, no. That prints it all on one line. Original printed 1 number per line.

      --
      I've abandoned my search for truth; now I'm just looking for some useful delusions.
    154. Re:How many ways are there to do simple things? by horatio · · Score: 1

      You're right, when you're only talking about 3 lines of code, things are going to look very similar, maybe even exactly the same. But once you get beyond that, you expect some differences to start showing up.

      When I was a TA for a 200-series CS class at Ohio State, I caught cheaters without any sophisticated tools more than common sense. Two examples:

      • On a test, getting the same wrong answers, nearly exactly down to misspellings - from two people who were sitting next to each other.
      • A lab submitted by a student that a) seemed to go outside the scope of the assignment b) had no source code was (which was part of the grade) c) showed a level of sophistication unexpected for this particular student. I showed the student's program to another TA who recognized it as the assignment she gave the previous quarter.

      There were other examples, but those are the two I can think of easily.

      --
      There is very little future in being right when your boss is wrong.
    155. Re:How many ways are there to do simple things? by Patch86 · · Score: 1

      Maybe the kind off people who flock to whatever the in-vogue subject for getting rich quick are the ones who are most likely to cheat.

      CS is suddenly very popular because "everyone knows" that there are more and better paid jobs in computing. So in flood the lazy opportunists who don't have a passion for their subject.

      That's just my guess, though.

    156. Re:How many ways are there to do simple things? by treeves · · Score: 1

      Wrong. "right" = "correct".

      --
      ...the future crusty old bastards are already drinking the Kool-Aid.
    157. Re:How many ways are there to do simple things? by calmofthestorm · · Score: 1

      It's possible to cheat without any risk of getting caught...it's just typically more work than doing it honestly. As I see it, I have a hell of a lot more experience programming and writing proofs than I do cheating. Morality aside, I'm probably better off doing my own work.

      --
      93rd rule of Slashdot: No matter how obvious my sarcasm is, my comment will be taken seriously by someone.
    158. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      If we all use the same code beautifying application or it's part of the ide we use, then the whitespace is all going to be the same.

    159. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 1, Interesting

      Also as a former TA, there were 6 of us on the same course - assembly language. We used no electronic methods.
      We simply took notes of anything interesting or unusual in the programs. This meant bugs, register selections, and various programming tricks and anomalies (if nearly everyone has their loops from 0 to < 10, and someone else runs their loop from 9 to >= 0, while another uses do while(), you notice these types of things). After sharing our notes and then manually going over it, we found many cheaters - almost 1/4 of the class. 2 groups of cheaters numbered 8 or more (spread among all the TAs).

      A bug-free, completely straight forward program without any unique characteristics, which has it's variables renamed, re-commented, and re-white spaced, is unprovable for cheating with any certainty. The thing is, a program like that will also normally be the only one of it's kind. People who score 100s on assignments are not that common. Also, people who cheat usually cheat with the same people other assignments and even in other classes. Thus, even if they get away with it once, if they are caught once, one can go back and re-examine everything. (Also a quick cross-reference with exam results, will usually tell you who wrote the assignment and who copied [highest marks is normally the author]).

      It's very sad. With cheaters like that passing, even the people who know their stuff will find their diplomas to be worthless due to all the idiots with the same piece of paper. Thankfully this nonsense mostly stops in upper years.

    160. Re:How many ways are there to do simple things? by jrmcferren · · Score: 1

      Firstly in his example he does not need quotes as the values to be printed are numbers. If he had:

      10 PRINT ONE
      20 PRINT TWO
      30 PRINT THREE
      40 PRINT FOUR
      50 PRINT FIVE
      60 PRINT SIX
      70 PRINT SEVEN
      80 PRINT EIGHT
      90 PRINT NINE
      100 PRINT TEN

      Then you would have an issue as the numbers are not in quotes and would be interpreted as variables. While I'm not a programmer here is how I would do the GP's example:

      10 FOR C = 1 TO 10
      20 PRINT C
      30 NEXT C

      Or if I were to comment it out it would be:

      5 REM Loop to count to ten
      10 FOR C = 1 TO 10
      20 PRINT C
      30 NEXT C

      When I mess around with BASIC (again not a real programmer here), Comments are few and far between as they are a waste of memory (every character uses a byte of RAM and is not executed).

      --
      sudo mod me up
    161. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 1, Funny

      But we didn't wirk togehter you isnensitive cold!!!

    162. Re:How many ways are there to do simple things? by Dhalka226 · · Score: 1

      This is blowing my mind. I haven't touched C in years and Java in quite a while but I don't remember their for loop structures being any different than the languages I've used a lot recently, and neither your original version nor his correction seem correct to me. It's actually making me wonder if I'm the one missing something because two separate people have gotten it wrong in similar ways.

      Should the loop not be essentially this:

      for(int i = 1; i <= 10; i++) {
      System.out.println(i);
      }

      I mean obviously there are subtle differences; you could change the conditional to a less than 11, or move the variable declaration out of the loop or what-have-you. But if my mind is right i = 10 should result in an infinite loop (i = 10 is always true) while i == 10 should result in no output because on the first pass, 1 != 10 and the loop stops.

      Is it possible that you are losing a less than sign to one of the Slashdot filters?

      (I tested it and that's almost certainly what it was. So kudos to you for having it right and boo! at the other guy for mis-correcting the "mistake.")

    163. Re:How many ways are there to do simple things? by HarrySquatter · · Score: 1

      Actually that is a completely horrible suggestion and is the reason why you see some much convoluted code written.

    164. Re:How many ways are there to do simple things? by DeadDecoy · · Score: 1

      My favourite cheating story was told to me by a TA friend. He was administering a final exam when he noticed a student surreptitiously copying off of another student. The said student turned in his exam by placing it in the middle of the exam pile. The TA walked up to the pile, grabbed a random exam, and gave a knowing nod to the student as he was walking out the door. Ironically, while the TA did not really know the student, the student broke down the next day and confessed to cheating.

    165. Re:How many ways are there to do simple things? by ShadowRangerRIT · · Score: 3, Informative

      I had a similar experience. Technically, a correct assignment could be done in different ways, but it was a limited enough assignment that I'd be hard pressed to identify cheating on a correct assignment. Fortunately, the two people who decided to cheat not only did it wrong, they did it hilariously wrong. The assignment was to create "bank accounts" based on an input string (c for checking, s for savings, m for money market). Each account created got $400 more than the previous (the initial account got $500). Then you ran each of them through three months of accruing interest (only difference between account types was interest rate), printing the value at the end of each month. The instructions were far more explicit than I'm being; output was provided for enough example inputs so checking your work was trivial. The two cheaters interpreted it in a hilariously incorrect fashion: they statically created exactly three accounts, one of each type, then used the input string to determine which ones would earn interest. So a string of "csm", instead of creating three accounts and running them through three months interest would run each static account through a single month's interest, then terminate. "ccc" meant the checking account ran for three months, and you saw nothing at all for the savings or money market.

      And of course, they were lazy as hell about the cheating. The only difference in the code was variable names, and they weren't even well disguised; rather than changing them, the other submitter just appended to the original name. A variable named "cash" in one submission became "cashMoney" in another.

      Lesson to future cheaters: If you're going to cheat, cheat off someone who isn't a complete moron. In CS1, you can only solve the problem correctly in a few ways; identifying cheating is hard, and you're not likely to get called on it unless your solution is character for character identical. But if you solve it in a uniquely dumb way, you'll get caught, and provide amusement to TAs for quite a while.

      --
      $_ = "wftedskaebjgdpjgidbsmnjgcdwatb"; tr/a-z/oh, turtleneck Phrase Jar!/; print
    166. Re:How many ways are there to do simple things? by ShadowRangerRIT · · Score: 1

      To be clear, in the "ccc" case, seeing nothing for savings or money market would be correct, since none should exist. Their code created it, but then did nothing with it in the "ccc" case.

      --
      $_ = "wftedskaebjgdpjgidbsmnjgcdwatb"; tr/a-z/oh, turtleneck Phrase Jar!/; print
    167. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      I'd rather do it like this:

      for (int i=0;i<10;i++) {
          System.out.println(i+1);
      }

      Indentation makes my code clearly more readable.

    168. Re:How many ways are there to do simple things? by icebraining · · Score: 1

      When all three have exactly the same typos preventing the assignment from compiling, then there's not much worry about false positives.

      In my classes, that would be irrelevant. Non compiling code gets 0% anyway.

    169. Re:How many ways are there to do simple things? by mdf356 · · Score: 1

      When I was a TA for a 200-series CS class at Ohio State

      Offtopic: when was this? I was a student grader for several classes at OSU from 1996-1998.

      Cheers,
      matthew (BS CSE 1998)

      --
      Terrorist, bomb, al Qaeda, nuclear, yellowcake, kill, assassinate. Carnivore is dead... long live Echelon.
    170. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      Cheating is easier to detect in things like math and comp sci.

    171. Re:How many ways are there to do simple things? by Kevin+Stevens · · Score: 3, Informative

      I TA'ed an intro to CS class that used these error tools, and this was almost 10 years ago. Cheating is a very serious accusation, or at least was taken very seriously by the professor of the class, and several methods were used to ensure there weren't false positives. The first half of assignments were not run through the cheat system, because they were a bit too simplistic and could have caused false positives. The latter half of assignments were all 100+ lines of code.

      The system did several checks, and included positives with and without whitespace. In most cases where we had matches, there was a 100% whitespace match, right down to sloppy indents, trailing whitespace, etc. Clear cut copy and pasting. Smarter students would try to clean up the whitespace, usually by adding extra lines, changing comments, or removing some, but it was usually pretty obvious from the diffs as to where they would miss some and it would blow their cover.

      The system also did code structure tests, and could pretty easily tell if you just renamed some variables and messed around with whitespace. This was a little harder to review, but when you checked their analysis, I agreed with the results.

      All positives were personally reviewed by the professor and TA's, and to be quite honest we were conservative when actually making formal charges against a student- if only a non-critical function (IE the code to load in the list of items in a file in a binary search problem, but NOT the function that actually performs the search) or two seemed to have a direct match, we would warn the students not to share code again and let them off with a warning. I can't recall ever seeing a real false positive. The professor more or less forced you to use vi or emacs on the linux cluster to write your code, so there was no IDE manipulation of the code, and CS students have no sense of coding standards or consistent style, or even reasonably formatted code for the most part, which made cheats even easier to spot.

      We taught source control (RCS) pretty early. We told students to check in early, check in often. We understood that beginning CS students were pretty poor at frequent check-ins, but my professor would often give them the option of trying to prove that they were at least not the mere copiers by providing their RCS logs to view intermediary versions and progress. Often the cheater and the cheated on were pretty obvious. The source of the code usually had a few check-ins well before the deadline by someone with a B or better in the class. The copier, if he had any, was usually a few hours before the deadline and had been a C or worse student.

      The professor wouldn't punish to the full extent that he could unless there was 100% certainty there was cheating going on.

      Personally, I think there is (or at least was at my school) more cheating in CS because it takes a LOT of time to produce relatively little output. A "page" of code could easily take a CS student 4-8 hours to produce fully debugged. When it comes down to deadline time, there is intense pressure, and if someone leaves their files in their home directory undetected, or walks away from their terminal to use the bathroom, the temptation was too great for them, if they couldn't get the code by begging and schmoozing. Some thought they could just use code from previous years, except that we already had a database of previous years assignments (oops).

      The only time we ever had a gray area was in the case where a student claimed that they had no idea how the other student got their code. Even then the professor would generally error on the side of caution, but watch the student like a hawk in the future. It was all pretty obvious, I don't think anyone was unfairly persecuted, ever.

    172. Re:How many ways are there to do simple things? by Cicada7 · · Score: 1

      Wrong. "right" = "correct".

      Take a correct turn on Lincoln Boulevard.. wait that's not right.

    173. Re:How many ways are there to do simple things? by perlchild · · Score: 1

      I've had undergrad teachers asking you to write the plagiarism detecting program.

      Then run it on itself, and see who cheated.

      Ok, I have a headache now too.

    174. Re:How many ways are there to do simple things? by TheRaven64 · · Score: 1
      Another 'me too' here. I got three assignments for a C coursework that I set by people who obviously failed to understand what the braces were for (depressing, because they'd already had a year of Java before I got them). Their code had so many syntax errors I was expecting gcc to give an error like this:

      assignment.c:1: error: file is not even a bit like C source code.

      One person submitting coursework like this would have been a bit depressing. Three submitting almost identical assignments like this was hilarious. If you're going to copy someone, at least copy someone who has a vague idea of what they're doing. They'd have received under 10% for the assignments if they had been original work - it's just not worth risking being caught cheating for such a little gain.

      --
      I am TheRaven on Soylent News
    175. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      In my freshman level courses, the professor gave us a set of standards to follow including the use of white space in our source code and always using curly braces for loops, if-statements and the like. Since all students have to follow those same standards, and attended the same lecture, and had the same TA, then our first few programs were nearly identical.

      It was only when we moved to non-trivial lab assignments that our source code significantly differed.

    176. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      Not to mention the task that everyone in the class has is often identical. The wording of the question can imply what method to use. A prof reusing the same questions year after year and compiling a list of previous solutions is bound to find someone that copied someone else when they did the (create a doubly linked list of "student marks") question. Other fields are less proscribed, for example write an essay on this book is pretty open ended and has vastly more answers.

      Additionally while you do need to learn and understand the stuff, realistically once you hit industry 9 times out of ten you'll have access to the internet to find examples of how to do what you need to do. Academic assignments by very nature are often outside of what is expected in the real world.

    177. Re:How many ways are there to do simple things? by pnewhook · · Score: 1

      Students cheat because they don't have the skills to write their own correct solution. It's far less effort to write the solution yourself than to copy someone elses, then try and modify it enough so it doesn't look copied without breaking it.

      --
      Tesla was a genius. Edison however was a overrated hack who liked to torture puppies.
    178. Re:How many ways are there to do simple things? by TheRaven64 · · Score: 1

      Int is supposed to be a 'natural' size in C, but often it isn't. For example, a lot of 64-big systems use LP64 mode (Win64 uses LLP64, for a very stupid reason). This means that int is 32 bits, while registers are 64 bits. Calculations on them are sign extended.

      Both int and unsigned int, in C, are the same size. The most important difference is that the C standard defines the overflow semantics for unsigned int, but does not for int. If you subtract one from zero as an unsigned integer, you get the largest value that you can store in an unsigned integer. If you add one to it, you get zero.

      In contrast, adding one to INT_MAX is undefined. The compiler is free to generate absolutely any value that it wants. On all modern CPU architectures, signed values are represented using ones complement arithmetic, meaning that, in practice, INT_MAX + 1 == INT_MIN, but a conforming compiler may (in principle) generate any value as the result of INT_MAX.

      I added support a while ago for a -ftrapv option in clang. This is similar to the GCC operation of the same name, but rather than aborting on overflow it sign extends the operands to long longs and passes them and the operation that failed to a hander function, which may return some other value. This allows you to fix up overflows, or throw an exception (in C++ / Objective-C code). I use this in the small integer implementation in my Smalltalk compiler (these are compiled to LLVM bitcode by clang and then inlined) to allow it to trap on overflow and promote the integers-hidden-in-pointers to boxed integer values using GMP.

      I did also add an -ftrapw option for testing for unsigned overflow, but it was later removed because unsigned overflow is well defined by the standard.

      --
      I am TheRaven on Soylent News
    179. Re:How many ways are there to do simple things? by Mister+Whirly · · Score: 1

      I may just be remembering it wrong (it has been quite a while since hacking code in Basic), but I thought that anything that wasn't a variable and you wanted literal output of need to be encapsulated in quotes. But then again I can't ever think of a real situation where I would just want to print a hard coded integer - they would usually be variables, or maybe hard coded text in quotes.

      --
      "But this one goes to 11!"
    180. Re:How many ways are there to do simple things? by buddyglass · · Score: 1

      I TA'd an intro CS course that was taught in Pascal. On one of the exams, which specifically asked for Pascal code, one student answered with code written in C. He couldn't fathom why I gave him no points, since his C syntax was correct and the code did what it was supposed to do. He clearly knew what he was doing and didn't belong in the intro class, so I guess he figured he could get an easy A without attending or bothering to learn ANY Pascal syntax.

    181. Re:How many ways are there to do simple things? by neural.disruption · · Score: 1

      No it would flag as the wrong answer. Also most of the time its easy to check if someone cheated for sure, just asked about the purpose of every line, and tell them to modify the program to do something else, if they can't they cant even tell you what they've done they've cheated for sure.

    182. Re:How many ways are there to do simple things? by buddyglass · · Score: 1

      The "end" may be to earn a diploma with as little effort as possible, but using the "means" of cheating requires a certain threshold of dishonesty. I also wanted to get a diploma with as little effort as possible, and yet I didn't cheat.

    183. Re:How many ways are there to do simple things? by TheRaven64 · · Score: 2, Funny

      I'd have given some points if the code had been any Algol-family language. Hell, I'd probably have given some if they'd given me a solution in Smalltalk or Lisp, but not very many. This just looked like they'd copied random words and symbols from the board, without any understanding of where they went. Come to think of it, maybe it was valid Perl...

      --
      I am TheRaven on Soylent News
    184. Re:How many ways are there to do simple things? by buddyglass · · Score: 1

      20%? Yeesh. That makes me think every CS program should have a mandatory intro course that's heavy on programming assignments, for no other reason than the eject that 20% from the degree program as early as possible.

    185. Re:How many ways are there to do simple things? by geminidomino · · Score: 1

      pretty much.

      I rarely cheated in my CS classes, but on some really hard assignments where I just had to reuse code for some sections to avoid going insane, I just copied some code and then made it look different by changing all names, sometimes rearranging order of things, etc but still having it do the same thing.

      That makes me feel better about having a good professor through most of my "non-traditional" degree work.

      I had the same professor through every programming-centered course (and discrete math course) in the program, and successfully reusing code was part of our style assessment on every programming assignment.

    186. Re:How many ways are there to do simple things? by geminidomino · · Score: 1

      Isn't the whole point of CS to get really good at copypasta? I mean, that is what you'll be doing 90% of the time after you graduate and get a junior programming job.

      Sounds like someone who neither knows what "the whole point of CS" is, nor has stayed in a programming job long enough to move beyond "junior programmer".

      Hint: The two are only marginally related, and that margin exists in the HR drone's office

    187. Re:How many ways are there to do simple things? by mkiwi · · Score: 1

      I'll 1 up you with my story:
      As a CS TA, I taught two students who decided that they'd turn in the exact same paper. I don't just mean the exact same code, I mean same md5 signature on the file et al... Turns out one of them had written his name inside the comments at the top!

      that was definitely stupid++

    188. Re:How many ways are there to do simple things? by geminidomino · · Score: 1

      Same here.

      I consistently aced my programming assignments to the point that, in my last semester, my assessments would come back with comments like "Nicely done, as usual".

      I've never been worth a damn on the exams though. If I did really well, I'd get a Mid-B on them, and end up relying on my project scores to carry me. Fortunately, it usually worked out. I just suck at exams.

    189. Re:How many ways are there to do simple things? by dwarfsoft · · Score: 1

      Well, it probably flagged it as plaigiarism. Probably gave a comparison of the original source and the submitted source. Then if there are obvious similarities they simply say "yep, definitely plaigiarised".

      They probably never considered that over more than one year that a student would use the same code in the same class. It was some years ago now, so maybe they have refined their process.

      --
      Cheers, Chris
    190. Re:How many ways are there to do simple things? by GasparGMSwordsman · · Score: 2, Interesting

      The poster commented else where that /. removed the less than sign from the equality portion. It should have been less than or equal to 10.

    191. Re:How many ways are there to do simple things? by geminidomino · · Score: 1

      Wrong. "right" = "correct".

      Take a correct turn on Lincoln Boulevard.. wait that's not right.

      And Cicada demonstrates once again that English is NOT a context-free language.

    192. Re:How many ways are there to do simple things? by lena_10326 · · Score: 1

      One professor had the audacity to ask if I was fighting the system because I cheat. He meant it jokingly, but it was still as offensive as hell.

      A university is not a democracy. They are free to set the entry requirements as they see fit, so long as they don't violate civil rights. Professors are free to set the course requirements as they see fit, so long as they don't violate the university's requirements and guidelines.

      --
      Camping on quad since 1996.
    193. Re:How many ways are there to do simple things? by geminidomino · · Score: 1

      Or a particularly clear one.

      I should point out that Cicada may or may not have demonstrated this before, but it has been demonstrated before, and Cicada's has been added to that set.

    194. Re:How many ways are there to do simple things? by geminidomino · · Score: 1

      Well, because "cheaters cheat because they are dishonest" is an achingly vacuous near-tautology; and because rates of cheating appear to differ across disciplines, which rather calls out for a more nuanced explanation...

      Okay... The cheaters are dishonest and CS is hard? :)

    195. Re:How many ways are there to do simple things? by selven · · Score: 1

      PHPECTS - sorry, that should be "aspects" - of spelling on the internet are growing weirder. Readers recently explained the numerous web appearances of the non-word at the start of this paragraph by speculating that website managers carelessly run a "find-and-replace word" macro to expunge all references to the Microsoft web-page-generating language ASP, and replace it with the independently-produced language PHP (27 February). ...

      These search-and-destroy word-replacing missions - which we shall call netplications - are not limited to the acronyms favoured by IT geeks. Some years ago, following the takeover of the Midlands Examining Group (MEG) by the Oxford Cambridge and RSA Examinations board (OCR), physics students were suddenly required to learn all about "ocrawatts" and "ocrabytes" (14 January 2006). We haven't yet come across any netplications using real words. Perhaps our mind is now too discomanised to think of any to try.

      http://www.newscientist.com/article/mg20627542.800-stewing-magazine-wrappers-in-gravy.html

    196. Re:How many ways are there to do simple things? by sabre86 · · Score: 1

      Interesting position, but that's not always so clear. For one, state universities are a branch of democratic governments. For another, most universities I'm familiar with have some sort of police/justice system and claim governmental powers. If these aren't democracies of some sort, they're tyrannies, and that's not acceptable.

      --sabre86

    197. Re:How many ways are there to do simple things? by ajlisows · · Score: 1

      What you are saying is true, but if you are dealing with beginners I could see the variable names being similar. Perhaps something like "Counter" or "InputNumber" was used by the instructor. Many of the students may adopt similar naming conventions to what they have seen demonstrated in class or in the text book.

      This has little bearing on today's languages but back when I was in high school I took two classes on Basic Programming. They had Commadore 64 computers for us to program on (which were very antiquated at the time but our school wasn't much into technology). Variables could only be two characters. Everyone always used x as their first variable, y as their second, and z as their third. That is how the teacher presented it, so everyone sort of adopted that.

    198. Re:How many ways are there to do simple things? by lena_10326 · · Score: 1

      What the hell. Are you saying their validation tool did not take in account that authors of both submissions could be the same? So if a student writes a nice little library in year one and then continues to reuse it on future assignments, it would be flagged as plagiarizing one's self? That is seriously fucked up.

      --
      Camping on quad since 1996.
    199. Re:How many ways are there to do simple things? by horatio · · Score: 1

      I was a grader as well, "TA" seems easier to write b/c no one knows wth a "grader" is, and I tried to spend at least as much time helping the students who wanted it as I did grading. :) It was probably '97 or so? I can't remember exactly. It was CIS221/Resolve C++, before they started calling it CSE.

      I only did it for one quarter because apparently there was some kind of huge issue when HR realized I had another job on campus at the same time. oops?

      One of my cheaters actually had the balls to accuse me of being sexist and preferring the girls. Except, he was such a moron because there were only two girls in my class. One of the girls had to take a W because she kept turning in her compile errors instead of any source code - which I could have graded. I felt bad, but there wasn't much I could do.

      --
      There is very little future in being right when your boss is wrong.
    200. Re:How many ways are there to do simple things? by Oxford_Comma_Lover · · Score: 1

      > A university is not a democracy. They are free to set the entry requirements as they see fit, so long as they don't violate civil rights. Professors are free to set the course requirements as they see fit, so long as they don't violate the university's requirements and guidelines.

      True, a University is not a democracy. But that doesn't mean there isn't a difference between an institution that respects its members and one that doesn't, nor between people who respect students or colleagues or co-workers and people who don't. Merely because I have the freedom to insult someone by my words or actions does not mean that I should.

      > Professors are free to set the course requirements as they see fit, so long as they don't violate the university's requirements and guidelines.

      But a university might decide whether or not to make a service available for a professor, or to pay for it for his class. Likewise, a professor's decisions should be guided at least in part by some sense of morality. And there are also cases where particular standards may be set narrowly by universities or departments.

      A professor may set insulting standards or policies in his course. They may be within university regulations, but nevertheless insulting--either because they assume a student is cheating, or require him to do something that assumes he is untruthful.

      Some schools are less trusting than others. So are some professors. So are some teachers. In Grade school, I had a teacher who insisted I must have cheated because my handwriting changed as it got closer to the end of the page, getting smaller and smaller. She had no business teaching children if that was how she treated her students.

      While the issue is less critical at University, where you expect brilliant professors with eccentricities or poor social skills to be part of the mix and students are more resilient, there is still a way of doing things where you avoid insulting people. Just because something isn't a democracy doesn't mean it should go around insulting people.

      My point, in saying that the system assumed the students' guilt, was not that it was somehow state action, nor that it was undemocratic, but was rather that the system was bad. One might say inherently immoral. As is any system where you assume guilt and require proof of innocence.

      --
      -- IANAL, this isn't legal advice, and definitely isn't legal advice for you. Also, Squee!
    201. Re:How many ways are there to do simple things? by Amorya · · Score: 1

      Actually, that's still plagiarism if you didn't cite it. You're not allowed to submit the same stuff for more than one assignment, without citing your previous assignment as a source. At least, that's how it works in my department.

    202. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      Not the way most professors I've seen handle these assignments. Particularly for intro classes, where they haven't learned data structures yet, students are handed a code file that's almost complete except for a few 10-line methods that are left blank. They're told exactly what each method should do, and it's their job simply to turn the description of that method into code. Intro to Programming is more like Intro to Java now, because the non-CS professors want there to be a class for people to learn to spit out code. That way, when they go do Matlab later (where they won't be designing any programs, just scripting), they'll find it easier.

    203. Re:How many ways are there to do simple things? by Anubis+IV · · Score: 1

      In Java it might (I can't recall for sure), but in C it sure wouldn't since the i=10 operation would return true. I used to get all sorts of interesting errors from students when I was grading, and at an initial glance, they'd look correct, but then you'd see the missing equal sign and figure out what the problem was.

    204. Re:How many ways are there to do simple things? by dwarfsoft · · Score: 1

      Well, for written assignments, sure. But for code? AFAIK there is no method for citing code because they always expect it to be written by the submitter. Makes it a very grey area for such submissions.

      But also, in that vein, you would expect that any submission should cite the previous submissions, and in that case editors would have to deal with articles and books with a lot of self referencing.

      --
      Cheers, Chris
    205. Re:How many ways are there to do simple things? by Khyber · · Score: 1

      "they can tell what is and isn't plagiarized"

      There is a problem with that; there's programming languages where many particular things can only be accomplished in one particular manner.

      --
      Still waiting on Serviscope_minor to wake up to fucking reality and realize that Jessica Price isn't going to fuck him.
    206. Re:How many ways are there to do simple things? by Danyel · · Score: 1

      Don't believe the hype. Almost all bug fixing is dealing with the lack of foresight of the original designer/programmer. Take the time out to think through the extreme use cases of your code. You will save you and other programmers a lot of head scratching and retrofitting work later on.
      And stop repeating that horrible mantra. Reminds me of Y2K and the horrible posix time system we all still use. 1970 is the furthest back anybody doing any time calculations will ever have to go. Nice little short sighted code shortcut that has forced every programmer that wants to do a simple projection forward or backward in time to have to hack together a system. Imagine how much time would have been saved the world over if that first programmer had thought about leap seconds, different calendaring systems, daylight savings, and billions of years into the past or future.

    207. Re:How many ways are there to do simple things? by Actually,+I+do+RTFA · · Score: 1

      That argument insulates any discussion of morality or appropriateness. You can walk down the streets in a KKK hood -- it doesn't make it right or acceptable, and I should hope people would condemn you.

      --
      Your ad here. Ask me how!
    208. Re:How many ways are there to do simple things? by CrashandDie · · Score: 1

      OK. Fair point, we should've known /. would be pedantic.

      Realistic first assignment:

      for(int i=1;i=50;i++){System.out.println(i);}

    209. Re:How many ways are there to do simple things? by The_mad_linguist · · Score: 1

      But we didn't wirk togehter you isnensitive cold!!

    210. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      "As a former Graduate Teaching Assistant, cheaters are easy to spot because they are LAZY!"

      No. You only catch the lazy cheaters.

    211. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      But we didn't wirk togehter you isnensitive cold!!

      However, I'm willing to testify against natehoy, Asclepius99, and The_mad_linguist in exchange for immunity.

    212. Re:How many ways are there to do simple things? by LingNoi · · Score: 1

      When I was at university I had to cite code I had written previously as well as everything else. This is standard in academia.

      AFAIK there is no method for citing code because they always expect it to be written by the submitter.

      Wrong on many levels.

      1) You may include many different dependencies in your code to get things done which needs citing
      2) You may be including work you've written previously which needs citing
      3) There is no standard way to cite code however that doesn't mean there is no way to cite it. Citing it gives you marks, not doing so makes you look unprofessional and you could be accused of cheating.

      How I would do it is first mention in your paper that you "used soandso to quickly build upon" your project. In your references section include it there as well. In your code try to make it very clear what code is yours and which isn't. If you have included any code that isn't yours then put it in a separate folder and mention that "all code in this folder is what I have written for this assignment".

      Ask your lecturer how he wants it.

    213. Re:How many ways are there to do simple things? by adonoman · · Score: 1

      0% is bad, but in most universities, plagiarism is much worse. One 0% on an assignment will disappear into the vast quantity of work you end up doing over your career. One plagiarism incident sits on your record, and can result in getting kicked out of school.

    214. Re:How many ways are there to do simple things? by dudpixel · · Score: 1

      the results were manually examined afterwards which I would suggest to mean that for something so simply, no you would not be flagged as a cheater.

      For CS assignments you are always required to put comments in your code. If you comments are also word for word, this would indicate copying. Again, for something extremely simple, who cares if you cheated or not?

      But for code that is tens if not hundreds of lines long, I'd say it'd be pretty easy to see if someone has copied it.

      --
      This seemed like a reasonable sig at the time.
    215. Re:How many ways are there to do simple things? by dudpixel · · Score: 1

      depends, if you did copy and paste from the parent post (with the same content), then you're a cheater.

      If you typed that out by hand when you could've easily used copy and paste, you're an idiot. :P

      --
      This seemed like a reasonable sig at the time.
    216. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      I dunno what college/university you're going to, but at mine we can loose 25% marks for not adhering to the strict policies put in place by the course co-ordinator.

    217. Re:How many ways are there to do simple things? by MrCrassic · · Score: 1

      Too bad it isn't C or C++, where this would be okay:
        void __(int _, int ___) {(_ < ___) ? {printf("%d\n",i); _ = _ + (___ - 1); __(_,___);}
        int main() {__(1,10);}

    218. Re:How many ways are there to do simple things? by hockeyc · · Score: 1

      Supporting professors? Hardly. That's what grad student research is for!

    219. Re:How many ways are there to do simple things? by Lunzo · · Score: 1

      That's horrible news. Did you happen to hear when and where the memorial service will be held?

    220. Re:How many ways are there to do simple things? by wisnoskij · · Score: 1

      The profs at my school specifically said that just replacing code strings would do nothing to hide it from the automated methods.

      I do not know any of the details, but from what I understand at least at my school they use some very advanced methods of comparing code.

      --
      Troll is not a replacement for I disagree.
    221. Re:How many ways are there to do simple things? by dwarfsoft · · Score: 1

      Interesting. I have certainly cited my own blog before which seemed to be a way around citing unpublished personally written code and concepts.

      Thinking back on my submitted assignment now (I have given it far too much thought considering the number of years that have passed in between) I believe that the comments at the top of the code included the full changelog of the entirity of the assignment. Things that were changed or added and on what dates. There was a full history of the development in the source which would have included "copied function x from assignment y from 'year'". The only difference is that this would not be on the function itself due to the comments being purely based on its usage.

      Anyway, this is getting far away from my original points on how plaigiarism is detected and dealt with. We had to buy a manual on the citation methods required for assignment submission, of which there was no mention of how to cite anything other than standard written assignment types, eg reports.

      It seemed to me at the time that they were more focused on direct copying irregardless of citation.

      Maybe if I am in a similar situation in future I shall use the following commenting standard for citing my own work:

      // As dwarfsoft stated in Assignment 2, 2005 "
      int l(char*O)
      {
          return*O?1+l(++O):0;
      } //". He makes some valid points, which I wish to elaborate in the following code:
      ...

      --
      Cheers, Chris
    222. Re:How many ways are there to do simple things? by Eivind · · Score: 1

      Sometimes.

      But with work being done unsupervised and handed in, there -is- a method of cheating that is really easy to do, and really hard to detect: Have someone else who is competent do the assignments for you.

      I had a pair of identical twins in my class, to this day, they claim that only one of them ever passed the driving-exam, but that he passed it twice. Nobody but them knows if it's true or not, and they decline to say -who- passed.

    223. Re:How many ways are there to do simple things? by mwvdlee · · Score: 1

      The thing is that cheating usually goes unpunished in school. Or at most it's not going to set you at a disadvantage with non-cheating students; cheat during an exam and you can usually just retake it. At some point cheating just becomes a numbers game, one which is heavily tipped in favour of the cheater. The price of getting caught cheating needs to increase if you want to stop it.

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    224. Re:How many ways are there to do simple things? by Palshife · · Score: 1

      Slashdot stripped out the less than sign. HAND.

      --
      Attention deficit disorder is a complicated issue, spanning several major... HEY LET'S GO RIDE BIKES!
    225. Re:How many ways are there to do simple things? by TapeCutter · · Score: 1

      I used to teach C at uni in the early 90's. Students had to submit a printout of their assignments which I would grade and hand back. At the top of the printout they were required to put a comment block with their name, student id, etc. On more than one occasion I had two students hand in the exact same code right down to the name and id in the comment block. OTOH it's rarely that clear cut, especially when students are encouraged to work with each other.

      Personally if I were enrolled in a course today I would like to think the teacher was actually spending their time looking at my assignments with critical eyeballs rather than comparing it to the work of others with a dumb script. Although assignments are usually worth some marks their real goal is to teach not to test. Anyone who cheats on their assignments is going to have a hard time passing the exam and any course woth attending will demand you pass the exam.

      --
      And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
    226. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      In the second week of my comp sci course, we had an assignment with four questions. I just looked at my courses website, and they have 4 completely different questions for the second assignment, but about the same level of difficulty as I remember it was when I was there. The current ones are:

      1. Write a Java program that will convert measurements between units.
      2. Write a program to print out a story that uses words provided by the user.
      3. Write a program that calculates the amount of paint needed to paint a room.
      4. List bugs that you found while you were programming, how you solved them. What techniques did you use and why? etc.

      I think it would be pretty damn obvious if someone cheated. It's too complex for any two people to have the same solution. Besides that, even for a simple one like yours, people would have differences in formatting, such as a space between for and (, or no space, spaces after the semicolons, spaces surrounding the math operators, etc. Even if the style guide was succinct, people would still get it wrong (especially in first year).

      But as soon as you have anything with slight complexity, there are a myriad of different ways to structure. For instance, if doing 4 mathematical operations that don't need to be sequential, there are already 24 possible ways to order them, and if there are 5, then there are 120 possible ways to order them. At 6, there are 720 ways to write the program, simply by changing the order of operations.

      To say that 2 people would turn in the same code is like saying that any two people at the university have the same DNA.
       

    227. Re:How many ways are there to do simple things? by Compaqt · · Score: 1

      Well, in S. Korea, only old people write their own code.

      --
      I'm not a lawyer, but I play one on the Internet. Blog
    228. Re:How many ways are there to do simple things? by Yvanhoe · · Score: 1

      Even the U.S. criminal justice system does not "refuse to tolerate even the possibility of a false positive". Not even in theory.

      Yeah, that's another problem you have too...

      --
      The Wise adapts himself to the world. The Fool adapts the world to himself. Therefore, all progress depends on the Fool.
    229. Re:How many ways are there to do simple things? by drewhk · · Score: 1

      My C favourite is when I checked the laboratory work of a student and pointed out an error:
        - Hey you should NOT send a message here!
        - OK!

      Then he modified "send()" to "!send()" ...

    230. Re:How many ways are there to do simple things? by nacturation · · Score: 1

      Is your first assignment to write a program that produces no output?

      --
      Want to improve your Karma? Instead of "Post Anonymously", try the "Post Humously" option.
    231. Re:How many ways are there to do simple things? by Ciaran+Power · · Score: 1

      His solution doesn't work. Always good to write code that works.

      for(int i = 0; i == 10; ++i)

    232. Re:How many ways are there to do simple things? by Drethon · · Score: 1

      I presume you didn't accuse someone of cheating simply because 90% of the code in a 100 line program matched. One of our professors accused my classmates of this because 90% of the code (after he gave us 70% of the code base) matched on a producer/consumer problem with one basic solution. The only reason I wasn't accused is I like linked-lists which no one else liked.

    233. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      Maybe they actually used the exam for a grade.

    234. Re:How many ways are there to do simple things? by HungryHobo · · Score: 1

      plagiarism- the unauthorized use or close imitation of the language and thoughts of another author and the representation of them as one's own original work.

    235. Re:How many ways are there to do simple things? by MBGMorden · · Score: 1

      Your solution doesn't work. His less than sign got clipped out due to the HTML tag filtering. The loop only executes so long as the middle condition is true, so on the first pass i has a value of 0, so i == 10 would evaluate to false, and hence, the loop would terminate immediately.

      On the off chance that you were doing your pseudo-code in some language that supports type checking as part of the syntax and were trying to do a <== and not ==, then you're forgiven, though your post ends up pointless as you pointed out a "mistake" that you yourself fell victim to as well.

      --
      "People who think they know everything are very annoying to those of us who do."-Mark Twain
    236. Re:How many ways are there to do simple things? by nacturation · · Score: 1

      Why not take it upon yourself to right that wrong?

      --
      Want to improve your Karma? Instead of "Post Anonymously", try the "Post Humously" option.
    237. Re:How many ways are there to do simple things? by L1feless · · Score: 1

      I was accused of cheating in college on an assignment when I never did. Apparently some kid in one of the other classes had some code similar to mine. We had never met. Automation for this sort of thing is a great guideline but should never be taken as the final review.

    238. Re:How many ways are there to do simple things? by mcgrew · · Score: 1

      Students cheat because it's the easiest way to getting your diploma.

      And people steal because it's the easiest way to get money. It's still dishonest.

    239. Re:How many ways are there to do simple things? by williamhb · · Score: 1

      ... I agreed with the results ... It was all pretty obvious, I don't think anyone was unfairly persecuted, ever.

      However, this is all still opinion. People have not usually been using objective ways of determining whether a system produces false positive and at what rate, but only opinion-based ways. As someone who may need to examine students, that worries me. We're all aware of confirmation bias, and that if you are presented with code that a similarity-matching algorithm says is unexpectedly similar, shock-horror, you're likely to think "hmm, that's unexpectedly similar". The presumption of innocence is replaced with a mere sanity check of "yeah, they look guilty, stick it to 'em". And so it seems that if we were in charge, we'd design the lottery that never pays out. My goodness, most weeks someone has picked the same numbers as the machine! The likelihood of getting those numbers at random is tiny! They must have cheated! Forget your payout, here's your ticket to jail matey!

      There are ways to solve the problem, but I don't think people have been doing them much.

    240. Re:How many ways are there to do simple things? by buddyglass · · Score: 1

      The price of getting caught cheating needs to increase if you want to stop it.

      That may be the case. I was just addressing your claim that "Students don't cheat because they're dishonest." My point is that dishonesty is necessary *but not sufficient* for cheating to take place. In retrospect, I think you were saying, "Dishonesty is not sufficient, in and of itself, for cheating to take place," while I was saying, "Dishonesty is necessary for cheating to take place."

      I don't remember exactly what the policy was regarding cheating at my university, but I'm pretty sure it was worse than "having to retake the test". I'd say it was probably more like "you get a 0 on the test", which probably means you fail the class. If the professor kicks it up the ladder, you could also be put on some sort of academic probation, meaning a second infraction gets you kicked out of the school. On the other hand, I busted some students for cheating on minor programming assignments and the only punishment they got was a "zero" on that assignment.

    241. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      THEY TIRRK ERR WIRRRXX!!!!

    242. Re:How many ways are there to do simple things? by cmarkn · · Score: 1

      I understand it's a private service for family only.

      --
      People should not fear their government. Governments should fear their people.
    243. Re:How many ways are there to do simple things? by mcgrew · · Score: 1

      Just because it's unpunished doesn't mean it's not dishonest.

    244. Re:How many ways are there to do simple things? by Glomek · · Score: 1

      I can't recall ever seeing a real false positive.

      How would you know? It would look just like a real positive. The student would claim innocence, and you would believe they were lying.

    245. Re:How many ways are there to do simple things? by mea37 · · Score: 1

      LOL

    246. Re:How many ways are there to do simple things? by Hythlodaeus · · Score: 1

      I would expect the result of i=10 to be implicitly converted to a boolean, which would always be true, so the code would print an infinite series of 10's.

      --
      For great justice.
    247. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      For your next comment, consult this valuable resource. What site am I on again?

    248. Re:How many ways are there to do simple things? by qoncept · · Score: 1

      BOOM! And the girl we were fighting over is yours, just like that!

      --
      Whale
    249. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      When you have the same comments, lines, variable names, function names, header include order, etc... you know. With 100% certainty.

      The only thing we were ever uncertain about was who actually did the work and gave it away, and who just copied it. Didn't really matter though, both are cheating and equal offenses according to school policies.

      To use a car analogy, Imagine Kia came out with a car, and it looked a lot like a Toyota Camry. And then you go under the hood, and see exact replicas of Camry parts for most of the components. You can't be 100% sure that Kia didn't consistently come up with the same exact design for parts as Toyota did, but you can be damn sure beyond a reasonable doubt that they just copied a camry.

      I think you are really misunderstanding how blatant these cases were- we are talking exact matches on fairly complex assignments. Do an experiment, ask your coworkers to do something like create a linked list class and then write a program to use that class to read 10 numbers from a file. See how much variation there is on something like that- even in how the files are split up!

    250. Re:How many ways are there to do simple things? by PSandusky · · Score: 1

      If they know the language they're teaching, does that really matter?

      Granted, they may have to scan everything anyway -- it could even be a function of departmental policies -- but they should know what they're doing enough to recognize what students are doing. Scanning for plagiarism is an imperfect tool, but just a tool nonetheless. Not everything needs to be pushed to the dean's office, primarily for the reason you're giving.

      My main exposure to this whole system is scanning student writing, and that particular system will generate false and true flags all the time. (Works cited lists tend to raise percentages quite a bit.) It's intended to be an extra line of defense when you can't necessarily see everyone's work on your own to compare it -- not to set off everyone who uses a strictly constrained code language.

      --
      "What's the use in being grown up if you can't be childish sometimes?" --Fourth Doctor, "Robot"
    251. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      What can I say other than that your professor is a little whacky. He could have accused you with or without a tool to help him then if he was going to decline to use any reason or logic in his accusations. I can use a hammer to bang nails in, and I can also use one to dig holes in the ground. The fact that the hammer is used incorrectly is neither the hammer's fault or an indication that there is something wrong with using hammers.

    252. Re:How many ways are there to do simple things? by Nadaka · · Score: 1

      I DID! When I write on this topic it is an attempt to right the rite of written discourse.

    253. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      Well there went the main source of BJs and sex from my CS courses in the early 90s.

    254. Re:How many ways are there to do simple things? by 3HackBug77 · · Score: 1

      I actually go to the UW, where this professor is from, and I never got flagged for anything like that (or at least didn't get actually accused). I knew a guy who did though, and he got caught because, in our code, we were asked to comment functions describing their use, and he copypasta'd another kids function exactly, including the comments. They compare not only to the other students in the class, but to previous quarters as well, so that students who aced the course can't help the students currently taking it.

    255. Re:How many ways are there to do simple things? by Fuzzums · · Score: 1

      No. But your assumption that this is the kind of assignments that CS students have to hand in is far more interesting ;)

      --
      Privacy is terrorism.
    256. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      I had a jock hand in a copy of his girlfriend's code as his own - with original comments, including her name.

    257. Re:How many ways are there to do simple things? by McDozer · · Score: 1

      When I was an undergrad we had a Spanish presentation we had to present infront of our classes...in Spanish. So this one group of students wrote there power point up in english, went to a translator site and translated it...problem was, they went to the French translation instead of the Spanish. So these 3 idiots stood up in front of the class reading these French words the way Spanish should be read and pronounced. No one said anything, when they were done the professor commented, "That would have been really nice, if it was in Spanish.". Everyone died laughing. What a bunch of tools.

    258. Re:How many ways are there to do simple things? by AthanasiusKircher · · Score: 1

      I also had a similar experience, although the level of idiocy astounded me.

      I had one student submit a file that wouldn't compile, and it threw up really unusual error messages. (The student had done something pretty stupid.)

      A dozen students later, I encountered a file that threw up a syntax error when I tried to compile it. The error turned out to be a comment that wasn't closed. When I fixed it, it still wouldn't compile, but now it threw up the same really unusual error messages I had encountered before.

      Of course I remembered these messages, so I went back and looked at the previous file again. Sure enough -- they were identical... except for one comment that was added, which wasn't closed correctly!

      First off, don't turn in a file that doesn't compile. At least bother to fix that much; if these had compiled, I probably never would have noticed. But why bother to copy someone else's assignment when it doesn't actually work in a ridiculously stupid way? And if you do copy it, at least take the time to proofread your modifications....

    259. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0


      def detect_plagiarism(candidate):
          if candidate.name == __author__:
              return False
          else:
              return True

    260. Re:How many ways are there to do simple things? by mog007 · · Score: 1

      While that sort of behavior sounds absolutely horrifying, your ideas intrigue me, and I would like to subscribe to your newsletter.

    261. Re:How many ways are there to do simple things? by hayriye · · Score: 1


      int i = 0;
      start:
      System.out.println(i);
      ++i;
      if (i == 10) goto end;
      goto start;
      end:

    262. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      I always cheated off someone different and rewrote the programs from scratch so I didn't get caught. See, on our Unix box people were stupid. Half the kids left their directories shared. Those who got caught were just stupid. They copy and paste or just change variables. I wasn't an idiot. I knew who wrote their code correctly. I always understood conceptually what was happening. I was just lazy. I'd be lazy and start assignments last minuet. Maybe 8 hours before an assignment was due for instance. like 4am or something or maybe the night before if it was a morning class. If you think I was a C student you'd be wrong. I wasn't. I sailed through most of my CS classes except for two with decent grades and exams. I hated school and was too busy dabbling in GNU/Linux. The only thing I really did was show up to class. I never went for help and I had one professor take it out on me- and I also never spent weeks in the CS lab with other students copying other students. I figured- why bother? I can just do that after they've finished it. Most of the work was really in interpreting wtf professors were asking. Not in writing the programs. It was their deficiencies that caused me headaches and why I always 'cheated'. Most of the stuff I went in for I had already understood conceptually too... having had it or picked it up on my own. I'm very much hard core techy and believe in doing stuff on my own because well school takes too much of time to teach you anything and they never really do- you just end up having to go waste time and having to learn it AFTERWARDS anyway- so why did you bother going to class in the first place? Cheating is learning and classes are a waste of time. Going to a room with a TA and other students I believe is also a big time waster- and just as much cheating in my opinion. As long as you aren't just copying and looking at multiple versions of the same program by other students you can pick up the right way to do things- and understand the concepts better too.

    263. Re:How many ways are there to do simple things? by bingoUV · · Score: 1
      --
      Bingo Dictionary - Pragmatist, n. A myopic idealist.
    264. Re:How many ways are there to do simple things? by Anonymous Coward · · Score: 0

      I doubt it; you're missing an '=' before the 10. Not only are you not cheating, but this isn't even legal Java!

  2. Dumb people? by Anonymous Coward · · Score: 0

    Could it be that more dumb people are flocking toward higher paying careers without the slightest bit of ability. Instead of accepting the fact that they don't know where the power button on a computer is they instead turn to cheating to try to skate by.

  3. Why? by Anonymous Coward · · Score: 0, Troll

    Is this not the goal of code re-use? I mean, if there is no copyright violations, that's what ppl should do... Schools are always trying to make you implement retarded things anyway...

    1. Re:Why? by Z34107 · · Score: 5, Insightful

      Is this not the goal of code re-use? I mean, if there is no copyright violations, that's what ppl should do... Schools are always trying to make you implement retarded things anyway...

      You re-use code to avoid "reinventing the wheel." The intent is to 1) save time developing what already exists, and 2) take advantage of all the debugging that was already done for you.

      The goal of getting a CS degree is to understand what the fuck a wheel is. Copying from expert sex change is not going to make you a good computer scientist; it won't even make you a good software developer.

      --
      DATABASE WOW WOW
    2. Re:Why? by FooAtWFU · · Score: 1

      The first goal is code understanding so that you can create code without someone else having done it for you. Then you can worry about (effective patterns of) code-reuse. Copy-n-paste for your homework doesn't help anybody and doesn't really represent an effective paradigm for development in real world. You'll just end up being mocked on thedailywtf.com with your job outsourced to someone overseas with a lower cost of living, while the effective and intelligent developers are still pulling in six-figure incomes.

      --
      The World Wide Web is dying. Soon, we shall have only the Internet.
    3. Re:Why? by pclminion · · Score: 1

      While modularity is obviously a goal, the cool thingies we play with as developers had to be created by somebody. Where do you think all this technology around you comes from? Aliens?

    4. Re:Why? by Anonymous Coward · · Score: 0

      Copying from expert sex change is not going to make you a good computer scientist; it won't even make you a good software developer.

      Is this a new form of a subtle troll? O_o

    5. Re:Why? by Z34107 · · Score: 4, Informative

      It's neither new nor subtle; it's why expertsexchange now hyphenates their URL: experts-exchange.com.

      --
      DATABASE WOW WOW
    6. Re:Why? by IICV · · Score: 1

      The point of a lot of lower-division undergraduate CS is not to re-use code; it is to re-invent or re-implement code, so you know how it works. It's one thing to study linked lists; it's another thing entirely to write your own. It's the difference between studying the thermodynamic efficiencies of gasoline vs compressed air engines, and building your own compressed air engine in engineering lab; you learn a lot more about how stuff actually works.

      So yes, lower division CS courses should require you to re-implement a lot of things, just like lower division mathematics courses should require you to solve calculus problems that have been solved a billion times before, and lower division English courses should require you to write papers about books that have been analyzed to death.

    7. Re:Why? by Shimbo · · Score: 1

      Is this not the goal of code re-use? I mean, if there is no copyright violations, that's what ppl should do...

      If they are habitual liars and pass off other peoples work as their own, they're going to be a liability to anyone that employs them.

    8. Re:Why? by drachenstern · · Score: 1

      Like velcro? Seriously, Hollywood told me it came from aliens!!! And also acid-spit that doesn't dissolve the mouth it's in but eats everything else. That's real!!! HONEST!!

      --
      2^3 * 31 * 647
    9. Re:Why? by Anonymous Coward · · Score: 0

      Similar to the fate that befell pen-island.com.

    10. Re:Why? by blair1q · · Score: 1

      Hint to underclassmen: do NOT simply submit the URL of the paper you are plagiarizing. While URLs are long and difficult to understand, your professor will be able to tell the difference between it and the full text of an original piece of writing.

    11. Re:Why? by audunr · · Score: 1

      Is this why I've only found sex change questions on that site, and never any answers?

    12. Re:Why? by Anonymous Coward · · Score: 0

      And honestly, finding a usable code sample on the web that performs the function you need it to is probably a better long term skill to have than being able re-sort a linked list. :)

    13. Re:Why? by joeman3429 · · Score: 1

      How the heck did I not know about thedailywtf.com? It's my new favorite site

    14. Re:Why? by Anonymous Coward · · Score: 0

      Amen, Dude. It's like using a player piano to learn how to play music.

      You are really only screwing yourself over...

      Although the company you eventually work for might disagree with that.

    15. Re:Why? by Vasheron · · Score: 1

      Sorry, but if you want to work in industry or academia in a computer science related field, you must be a strong individual coder. If you are not, well too bad, the position will likely go to someone who is... and if you do happen to get the position and still don't perform, I bet you'll be out the door in O(1) time.

    16. Re:Why? by Jedi+Alec · · Score: 1

      If they are habitual liars and pass off other peoples work as their own, they're going to be a liability to anyone that employs them.

      Well, yes. On the other hand, they'll be instant management material as well.

      --

      People replying to my sig annoy me. That's why I change it all the time.
  4. Dammit, alphadogg by sznupi · · Score: 1

    You're not supposed to provide balanced, reasonable, fairly probable explanation as part of the summary. What are we supposed to write about? (no, really, give your suggestions below)

    --
    One that hath name thou can not otter
    1. Re:Dammit, alphadogg by COMON$ · · Score: 1

      You are assuming most of us read the summary...noob.

      --
      CS: It is all sink or swim...oh and did I mention there are sharks in that water?
  5. Problem by COMON$ · · Score: 5, Insightful

    True CS curriculum require a massive amount of critical thinking and other analytical skills. Something the recent graduates of HS are not prepared for. Match that up with the sense of entitlement and you get expected results. Back when I was in CS the dropout rate was around 90%. There were no rent-a-coders and using the web for a resource was a very new thought. So it was write your own damn code or head over to liberal arts...

    --
    CS: It is all sink or swim...oh and did I mention there are sharks in that water?
    1. Re:Problem by Anonymous Coward · · Score: 1, Funny

      So it was write your own damn code and get off my lawn!

      Fix'd.

    2. Re:Problem by FooAtWFU · · Score: 1

      CS: It is all sink or swim...oh and did I mention there are sharks in that water?

      Speaking of the CS metaphor in your .sig, I've actually gone swimming in a pool full of sharks. It was part of the 8th-grade class field trip. They're pretty benign critters.

      That said, you still need to be able to swim, and if the sharks scare people off, perhaps it's for their own good. :)

      --
      The World Wide Web is dying. Soon, we shall have only the Internet.
    3. Re:Problem by eln · · Score: 5, Insightful

      Leaving aside the usual nonsense that kids today are worthless and can't do anything right, the problem is more complicated than that. Many universities have stepped away from the idea of going to college as a way to get a well-rounded education and have positioned themselves as places to get a piece of paper that will let you get a good job. Combine this with the increasing number of positions requiring a college degree, and you get a lot more people more interested in just getting through and getting that piece of paper as quickly as possible than they are with actually learning anything.

      College is quickly becoming like high school: It's a base requirement that everyone has to go through if they don't want to spend the rest of their lives picking lettuce, so people are going to go and try and get through it as quickly and painlessly as possible. There have always been people who do this of course, and cheating is certainly not a new problem, but the above-mentioned issues may make it more prevalent than it once was.

      Remember, though, that our generation cheated as well. Every college in the country has an honor code, and many of them have been in place for decades (or longer). These codes wouldn't exist if no one was cheating before.

    4. Re:Problem by COMON$ · · Score: 1

      thx.

      --
      CS: It is all sink or swim...oh and did I mention there are sharks in that water?
    5. Re:Problem by garcia · · Score: 1

      True CS curriculum require a massive amount of critical thinking and other analytical skills.

      It also required Discrete Math. While that fits into one particular way of expressing critical thinking and other analytical skills, it's not at all necessary to write code--something which I can do quite well. I went over into a liberal arts curriculum (History) and used critical thinking and analytical skills in a whole different way.

      Oh and I still write code for a living.

    6. Re:Problem by COMON$ · · Score: 1

      yep I have gone swimming with them and stingrays in the wild .

      --
      CS: It is all sink or swim...oh and did I mention there are sharks in that water?
    7. Re:Problem by AstrumPreliator · · Score: 3, Insightful

      I also find it interesting that the TFS mentions "...excessive collaboration..." as a form of cheating. Considering many CS students will graduate and get jobs as some type of programmer I would think collaboration would be a really good thing to impart on students. Granted this is a computer science degree and not a software engineering degree, but I personally know my university treated it more like the latter, and I'm sure this happens in many other universities. Even if it were taught more like a proper CS degree collaboration is still something that should be required to learn. The most collaboration I ever did was with three other people in a software engineering course.

      I also did a major in mathematics in college. In contrast with the exception of first year courses like calculus you were always encouraged to work on problems together. Most of my classes were small enough (8 people or less) that the entire class including the instructor worked on the problems. Of course in math your grade was 50% homework and 50% exams. So even if you worked on problems as a group and just took the answers without contributing, you would still fail the class since exams were worth so much (and a C- and under is failing).

      I agree that true CS curriculum requires a lot more critical thought, it's actually largely a subfield of math, but that's not what a lot of CS students get. I know I didn't.

    8. Re:Problem by fahrbot-bot · · Score: 1

      Leaving aside the usual nonsense that kids today are worthless and can't do anything right, ...

      Leaving aside that this story, A Cheating Crisis in America's Schools, by ABC Primetime, seems to indicate that this statement is basically true. More importantly, they don't seem to care.

      "Whether or not you did it or not, if you can get the jury to say that you're not guilty, you're free," said Will, a student at one of the top public high schools in the nation.

      Mary, a student at a large university in the South, said, "A lot of people think it's like you're not really there to learn anything. You're just learning to learn the system."

      "There's other people getting better grades than me and they're cheating. Why am I not going to cheat? It's kind of almost stupid if you don't," said Joe.

      A business student at a top state university, said, "Everything is about the grade that you got in the class. Nobody looks at how you got it." He graduates in a few weeks and will go on to a job with a top investment firm.

      Others see it as a sort of moral relativity. Some students feel it is perfectly OK to cheat in some situations and in some courses.

      "You'll have an engineer say, 'You know, what do I need to know about English literature? I shouldn't have to take this course,' " said Don McCabe, a professor who heads the center for academic integrity at Rutgers University in New Jersey.

      For Mary's classmate Pam, it was a different sort of prioritizing. "You don't want to be a dork and study for eight hours a day. You want to go out and have fun."

      It goes on and on...

      --
      It must have been something you assimilated. . . .
    9. Re:Problem by oldhack · · Score: 1

      Sad thing is, most them had already dropped out of EE and into CS. Losers among losers. ;-)

      --
      Fuck systemd. Fuck Redhat. Fuck Soylent, too. Wait, scratch the last one.
    10. Re:Problem by Schadrach · · Score: 1

      *Introductory* CS curriculum. As in first semester or two, when the bulk of what is being taught is basic programming skills. You'd expect the heavy critical thinking and analysis to come in a bit later in the course load. There are steps between "This is a for loop" and "here's an explanation of EBNF notation, write a parser corresponding to the grammar I'm handing out". The former is intro CS, the second was an actual assignment in one of my 300-level classes when I was a student.

    11. Re:Problem by Anonymous Coward · · Score: 0

      I graduated with a BSc in CS 2 years ago with 3 other students. Our intro class had 50. The right programs are still exposing/disposing the wannabes.

    12. Re:Problem by Anonymous Coward · · Score: 0

      I had a guy in a CS course take a print out from the lab printer of my assignment he then entered it as his own and turned it in. I was dumbfounded when I was brought to the professor for cheating. I had just assumed the printer didn't print. This was the days windows95 days.

      What blew my mind was that the guy had obviously copied my stuff. I was dumbfounded by the whole thing, since the assignment was crazy easy. Hardly more effort to write it down than to code it, but whatever. I guess some people are lazy, and dim.

    13. Re:Problem by Anonymous Coward · · Score: 0

      Right. You have no fucking clue.

      -- a college student in the top tier

    14. Re:Problem by omglolbah · · Score: 1

      What is so wonderful is to see these asstards crash and buuuurn when they meet the real world.

      I now work along-side many of my former classmates... I did it the "lame" way of usually going solo and not cheating.. Had to take some classes twice to improve the grade but what the hell, I learned quite a lot...

      Now they are put to tasks like checking 1200 A to B wire connections in a PLC cabinet while I get to spend pretty much as much time as I want developing spiffy tools for those that need them. And I get to pick and choose which tools I want to write.

      In the 3 years I've been working since college I can count the boring days on one hand. You might be able to slither your way through college but you'll be fucked when you try to get an interesting job.

    15. Re:Problem by Anonymous Coward · · Score: 0

      One of my mathematics professors had a very liberal attitude toward copying solutions out of books. He basically condoned both. His philosophy was that if you are reading through books, trying to find the right technique to solve a problem, you are doing the right thing -- indeed, you are likely being exposed to dozens of useful techniques. Even a passing familiarity with a technique is a good thing, if you know what it is good for and where to find out more. If you happen to find your assigned problem, solved (perhaps as an "example" in a text), that's fine. Even for an exam problem. All you had to do was write up your assignment to a level of detail that satisfied your curiosity, and be capable of talking about it if he asked.

      Actually, this bit me in the ass once. I happened to find a solution to an exam problem, and was hoping to confirm my previously computed answer. Only, there was a misprint in the book I was reading, and the answer was "plausible" -- the sort of answer one would get if you accidentally changed a sign, or forgot to divide by a scalar while integrating. It took me a few hours of repeating my calculation to confirm that my calculation was correct.

      He was not so keen on collaboration, due to the computational nature of the problems he preferred to assign. So we respected that, and worked alone. He did not mind if we asked for "confirming information", though.

      In the end, learning is your responsibility. Anybody who really thinks grades are all that matter is fooling themselves. A nice GPA will get your foot in the door, but you will soon be kicked out if you lack the breadth and depth of knowledge necessary to complete a task.

    16. Re:Problem by Tony · · Score: 1

      What is so wonderful is to see these asstards crash and buuuurn when they meet the real world.

      Yeah. That, or become President.

      Just sayin'.

      --
      Microsoft is to software what Budweiser is to beer.
    17. Re:Problem by SatanicPuppy · · Score: 1

      It's not, actually. When I was in college, I was in a 400 level OS design class that was all group projects.

      For the first project my team had the highest score on the programming part: partly this was because we were pretty good, but mostly it was because the group that was the best shared their work with about 4 other groups, and they all got zeros for the project.

      Now my group was made up of four people: two people who could program, and two people who could not program at all. 400 level class, remember? Had about 8 pre-requisite programming classes.

      Do the math, and think about the number of people who were being carried in that class, and that was the only group programming class I had in college. Excessive collaboration absolutely should result in a big fat F.

      --
      ad logicam Claiming a proposition is false because it was presented as the conclusion of a fallacious argument.
    18. Re:Problem by blair1q · · Score: 2, Interesting

      Fine. They'll get out of school, get a job, be found out as frauds, and have to pay $200K in student loans with whatever's left over from their next job, managing the convenience store at the car wash.

    19. Re:Problem by Anonymous Coward · · Score: 0

      I don't know why they punish collaboration. Most programming jobs require working in collaboration with others. The solo worker is the rare exception. Learning how to develop code in teams is a more useful skill than being able to memorize syntax.

    20. Re:Problem by omglolbah · · Score: 1

      The two are sadly not mutually exclusive...

      Just sayin'.

    21. Re:Problem by Kjella · · Score: 1

      "Excessive" tends to mean to the point where only a few are actually doing the work and lots are copying it for favors, status, friendship or plain generosity. It lets people with no clue sail by with no learning and will cause trouble either in later classes or real life. There's every reason to strike down on that.

      --
      Live today, because you never know what tomorrow brings
    22. Re:Problem by Rich0 · · Score: 1

      Most jobs don't require 1/10th of the stuff they teach you in college.

      If you're a dumb person copying to maintain a grade, chances are you'll bomb out in the real world unless you get into management quickly (better have people skills).

      If you're smart and just don't want to be bothered, chances are there will be little impact. Do you think that the fact that you copied somebody else's term paper in English Composition in Psychology is going to have a big impact on your career in IT? Most IT jobs in the US don't even require you to program these days...

    23. Re:Problem by Anonymous Coward · · Score: 1, Insightful

      What is so wonderful is to see these asstards crash and buuuurn when they meet the real world.

      Except that they don't. Ever wonder why it is that with all of these well-educated folks who have run the gauntlet of college, subject testing, psychological testing, and years of real-world experience running government and business that the world is as fucked up as it ever was? When an idiot goes to college, the typical product is a college-educated idiot. Like Charles Fort said

      The fittest survive.
      What is meant by the fittest?
      Not the strongest; not the cleverest—
      Weakness and stupidity everywhere survive.
      There is no way of determining fitness except in that a thing does survive.
      'Fitness,' then, is only another name for 'survival.'
      Darwinism:
      That survivors survive.

    24. Re:Problem by Richy_T · · Score: 1

      The law school near you has a swimming pool?

    25. Re:Problem by Anonymous Coward · · Score: 0

      "critical thinking and analytical skills"

      Unless you're a math major. Then CS is drudgery.

    26. Re:Problem by Anonymous Coward · · Score: 0

      var statement = ['get', 'off', 'my', 'lawn'].join(" ") + "!";
      statement = statement[0].toUpperCase() + statement.substr(1);
      alert(statement);

    27. Re:Problem by volsung · · Score: 3, Insightful

      Yeah, most of the cheating I heard about in my CS program 10 years ago was not from people who were necessarily lazy or "party-people" or whatever the usual stereotype is. Most of the temptation to cheat was for people who were completely in over their head with the entire subject and felt backed into a corner. They were wedged between a lack of preparation and social pressure to succeed. ("I did OK in math class, and I like using my computer, so why can't I do this?") The first time many of them had ever thought critically about the structure and function of a computer was day one of CS 101 (consider trying to do college algebra if you had never seen mathematical operators before) and they just got more behind as time went on. This was not helped by the cattle herd design of public university classes.

      The ethically smart ones got extra tutoring from classmates and teaching assistants, or worst case, switched degrees when they realized they were hopelessly behind. The not so smart ones abused the help of their friendly/naive classmates or found some other way to BS through the material. Most of the time, this didn't work out even on semester timescales, but I do remember one group project where a guy couldn't write a single line of code unprompted, yet somehow had landed a job at IBM to start at the end of the semester.

      I don't have any sympathy for people who cheat in classes, but I agree that characterizing the problem as simple laziness or the "moral bankruptcy of the kids these days" teaches you nothing about how to address the problem. Sadly, the solution probably involves things that are socially or economically infeasible: Smaller intro classes, actual focus on pedagogy and not teaching fads in intro classes, de-emphasis of 4-year degrees as a prerequisite for white-collar employment, more investment and advertisement in focused two-year programs for technical fields, etc.

    28. Re:Problem by volsung · · Score: 2, Insightful

      To be perfectly honest, I would be skeptical of any sociological conclusions drawn by primetime TV news programs, which are famous for peddling sensationalist moral panics about "the kids these days." They tend to be heavy on anecdotal evidence and cherry-picked expert testimony.

    29. Re:Problem by linzeal · · Score: 1

      Same thing in drafting classes, I've TAed enough of them. I love it when someone who is on their way to becoming a civil engineer does not even know the difference between extension and dimension lines and than bitches at me that " it doesn't matter " because everything is CAD now. Well that may well be true with technical drafting in regards to industrial and to a lesser extent mechanical design but civil engineering still requires blueprints by law.

    30. Re:Problem by Anonymous Coward · · Score: 0

      It's easy to cheat on homework, and hard to avoid "cheating" (homework is first and foremost a pedagogical tool, and one of the best ways of actually learning is to discuss the problem with a classmate.) It's much harder to cheat on an exam. Quit counting problems classes as part of the grade, and just have a final exam. Better still, have a whole bunch of final exams at the end of the 4th year. No guts, no glory!

    31. Re:Problem by Anonymous Coward · · Score: 0

      I've always found it annoying that Americans insist on using the term "math". The correct abbreviation, invented a long time before (non-native) Americans, is "maths"

    32. Re:Problem by Anonymous Coward · · Score: 0

      I had a senior level student in an EET major
      ask me how to measure current in a electronic
      circuit.

      I seriously wondered if I am going to the right college.

      And, he told me that he wanted to go into power electronics as in
      high power systems. I tried to convince him not to do that.

      I fear I will read about him in some future news article
      man electrocutes self and co-workers.

    33. Re:Problem by Anonymous Coward · · Score: 0

      I find it annoying that people bitch about inconsistencies between major language subtypes. The American English term follows the typical pattern of singular noun for a word that is used in English (even British English) as a singular noun. The English are stuck using a pluralized form in a singular context. From a consistency standpoint, the non-American English version is incorrect. It's just tradition from the 16th century revival in using the plural forms of the root words for terms that were actually singular in English usage. So, "correct" is subjective in this case. The British English is traditional in that it's true to the root usage, but not true to the way it's used in (any) English. The American English version is not true to the plural form of the root, but is true to the actual usage type as spoken (and written) today.

      In summary: leave being a pedant about linguistics to linguists.

    34. Re:Problem by xenocide2 · · Score: 1

      When I TA'd for an advanced undergraduate level OS design class, we used team based projects for instruction and the best weapon we had against freeloading was secret peer evaluation and interrogation about the code. There's a lot of good reasons to go for collaborative design projects. They're closer to real world assignments; when you run into a problem with three people coding, chances are one of them can figure out the typo or think-o. The best students use it as an opportunity to test out revision control systems in collaborative fashion.

      I think a lot of students skip the course now because it's been made optional and famously hard. With some effort it could be salvaged into a quality Software Engineering practices course covering revision control, automated builds, testing, static analysis and the engineering implications of NP completeness in operations theory.

      --
      I Browse at +4 Flamebait

      Open Source Sysadmin

    35. Re:Problem by Derleth · · Score: 1

      The fittest survive.
      What is meant by the fittest?

      The ones whose children have the most viable children, where ‘viable’ means ‘healthy and able to reproduce.’

      That is not a quote from Darwin, by the way, but it sums up one small aspect of his whole theory. Where some people who do not understand it go wrong, however, is ascribing a moral dimension to all this. Nature is not moral.

      --
      How can you use my intestines as a gift? -Actual Hong Kong subtitle.
    36. Re:Problem by LienRag · · Score: 1

      I'd even say that in a connected world, cheating is hiding which source you use, not using pre-existing sources.
      If teachers are just a little bit working on keeping pace with their teaching (and evaluating) skills, they can make exams and questions that will allow use of external source and still need personal thinking from the student.
      When I was in High School, the debate was about the pocket calculators we were using that began to have memories in them that we could use to store formulas, and even graphics that we could use to see the shape of a linear function that we were studying.
      Lot of teachers were just complaining at us "cheating", but the ones building the final exams just made questions that failed students who used their calculators without thinking - and I skipped the pit in Physic but fell in it in Maths (and deserved it).
      If teachers can't outsmart the kids without creating more repressive rules or tools, why are they teaching the students instead of learning from them?

    37. Re:Problem by Anonymous Coward · · Score: 0

      I also find it interesting that the TFS mentions "...excessive collaboration..." as a form of cheating. Considering many CS students will graduate and get jobs as some type of programmer I would think collaboration would be a really good thing to impart on students.

      You are absolutely right that this is important, but not at a CS1 level. At the school where I was faculty, we had a strict honor code and a clear policy on collaboration. We told students they could talk about coding concepts together, but as soon as they started to write down code, they had crossed the line. Consequently, the vast majority of cheating cases we dealt with consisted of:

      "Johnny was explaining how to do a loop and I didn't take notes, so he sent me an example that I cut and pasted."

      Each case had to be dealt with individually, and only the egregious violators were ever disciplined.

      Now, imagine a business environment. Coder A has learned the basics and didn't cut and paste Johnny's loop example every time he needed a loop. Coder B, on the other hand, learned to code by cutting and pasting building blocks together, then changing values until it "just works". Do you think collaboration would be helpful to the company at that point? Which coder would get work done, and which would spend all his time "collaborating"?

    38. Re:Problem by amplt1337 · · Score: 1

      It sounds like you had the luxury of a course in which you were actually expected to learn something, rather than being dumped in a weed-out class in which half to three-quarters of the students are expected to fail so they won't bother the rest of the department later.

      --
      Freedom isn't free; its price is the well-being of others.
    39. Re:Problem by Anonymous Coward · · Score: 0

      You want to collaborate with people who know their shit. This is about people who don't care about understanding what they do and who prey on lonely nerds (sorry for the stereotype) and get by on their social engineering/manipulation/exploitation skills. You don't want to have to collaborate with those later on the job. I used to call this behavior learned helplessness, but it isn't helpless at all. They're very skilled at what they do, feigning helplessness so they can be lazy.

      Having said that, I agree that colleges should be less about competition and more about working together. Teaching others is a good way to learn. But not when it involves doing their homework.

    40. Re:Problem by McDozer · · Score: 1

      50% Homework / 50% Tests?!?!? In my college math courses you were often lucky to have 10 problems on the test. Most of the time you would have something like 8. If you missed one questions, there goes your A grade. Completing a CS degree at the University I went to left you 2 or 3 courses short of a BS in mathematics and the math department was not easy at all......so if you sucked at math, well, there went your GPA. Some classes you'd have 6 questions on the test. I WISH they counted our homework towards our grades. Then again, we had quite the evil math department for a small university. The students who made good grades were excellent mathematicians.

    41. Re:Problem by Anonymous Coward · · Score: 0

      Where I go to university, you're encouraged to collaborate as long as you don't copy each other's code (excessive collaboration). The reason being that when you get your degree, the university is stating that YOU can do those things; not you and Neil and Jason. Two people working on how to build their systems is fine. Two people copying and pasting code between each other isn't.

      It also gets away from the problems that the university would have of determining the difference between deliberate plagarism and just two people working closely together. It is nearly impossible to tell the difference and everyone would plead the lesser offense.

    42. Re:Problem by Anonymous Coward · · Score: 0

      No, he can't be talking about lawyers; who would describe THEM as "benign"?

  6. keyword: caught by Surt · · Score: 5, Interesting

    They're cheating just as much in other disciplines, it's just in CS we have a lot of good tools to catch them. Plus, we get a lot of false positives with no defense, so we get to inflate our successful catch statistics.

    --
    "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    1. Re:keyword: caught by sznupi · · Score: 1

      Hm, also that cadre at CS departments is much more likely to be able to sensibly use "computers" (hence also plagiarism tools) can only help...

      --
      One that hath name thou can not otter
    2. Re:keyword: caught by TubeSteak · · Score: 1

      Are the CS tools 'local' or are they like the ones for essays/papers where you contract out to a private company that claims ownership of anything you send them?

      --
      [Fuck Beta]
      o0t!
    3. Re:keyword: caught by i.r.id10t · · Score: 1

      Wonder what the legal effect would be if you uploaded code under the GPL to turnitin or a similar site?

      --
      Don't blame me, I voted for Kodos
    4. Re:keyword: caught by slimjim8094 · · Score: 1

      My CS program uses a piece of software developed by another university - we, and several other uni's form an ad-hoc network of code. Occasionally (a few times a semester) a few people get caught by it.

      The TA's know us very well, though, so if there was a close-ish match and it was in our code style, they'd write it off as coincidence. This happened to me, actually - I had a method that was almost verbatim of some kid from Washington, but in my coding style. My TA knew that I'd written it, because it matched my other code stylistically.

      But I'm also at a very good university. Overworked TA's or professors might not be so careful.

      --
      I have developed a truly marvelous proof of this comment, which this signature is too narrow to contain.
    5. Re:keyword: caught by GrayNimic · · Score: 2, Interesting

      In my own undergraduate experience at least, students *did* cheat more in CS courses than in other classes, regardless of major. In part this was due to the different 'honor code' for the CS department than elsewhere (any form of collaboration whatsoever was cheating, unless otherwise specified by the professor), but it was also in the nature of the work. "Copying" someone else's homework in, say, physics or math, a student typically attempts to make their writeup distinct from the original, which involves reprocessing the math and requires some actual understanding of the techniques involved. As a result, they actually did gain some level of learning from the assignment, even if no where near as much as if they'd done it 'properly'. In CS, most people would go for a straight carbon-copy, resulting in zero learning.

      To me, that's the largest distinction - the way in which students leech off each other in CS is different, and results in less learning; combined with more draconian cheating regulations (which, by making any collaboration cheating, encourage people to either work in solitude or go all-out on the cheating, rather than actually trying to work together), it leads to a much worse cheating problem.

    6. Re:keyword: caught by ChinggisK · · Score: 1

      This exactly. In my graduating civil engineering class of ~25 students (small school), I'd say there's only about 5 or 6 of us that don't regularly cheat in some way. The professors either know about it and don't care, or care but don't take the time to review assignments/exams closely enough to figure it out. It's scary to think that these people will end up being "professionals" at something someday.

    7. Re:keyword: caught by Anonymous Coward · · Score: 1, Interesting

      There is one easy defense. Comment your code. The language will be yours and the explanation demonstrates you understand the code that is present. I would think an instructor would place value on this even if your code triggered his tools as the intent is that you learn.

    8. Re:keyword: caught by Anonymous Coward · · Score: 0

      This probably varies, but I'm aware of at least one college professor that uses tools developed by another faculty member.

      Also, many cheaters aren't very creative. Many of them won't even change variable names or comments. Of the types of cheating cases I've seen, many of them could be caught with diff.

    9. Re:keyword: caught by Plekto · · Score: 1

      Out of mod points :) , but I thought I'd like to comment on this. Everyone is going on about the analysis and not about the actual problem itself of people being unwilling to properly learn. It's one thing, as you pointed out, to copy notes and try to figure stuff out together, and even that works well in computing. Often you'll see different work but with a tricky section or two that's similar between two students - I'd not consider this to be a big deal, really. But cut-and-paste of entire sections obviously is not even tying.

      I think quite a lot of it actually is a difference with younger people and students in general. They seem to be afflicted more and more with a sense of cutthroat pragmatism, a desire for instant gratification, and no work ethic at all. In short, they act as if instead of working or struggling for anything, they sat on their butts and played console games all day long. The concepts of, say, writing a handwritten letter(or even when and why it's appropriate) let alone proper conduct in general are just not important to them. So they get to college where all of those rules still(or suddenly DO) apply and they have no idea why it's important NOT to cheat since they've been doing it all their lives and getting away with it.

      My last job in fact, we had things like this happen all of the time. New employees would do inane things like logging in from home before they came to work, not bothering to log out/lock up/etc, and doing crappy things like taking entire boxes of snacks from the kitchen stores.

    10. Re:keyword: caught by volsung · · Score: 2, Insightful

      For one year during the middle of my CS degree, the department tried to enforce a rule that said that no student was allowed to view code in electronic or print form written by another student. We (and possibly some of the instructors) pushed back on this rule until it was repealed with good reason. While certainly it made certain kinds of leeching unambiguously disallowed, it also eliminated cooperative debugging, which we found incredibly helpful. I learned more about practical coding, and working with other programmers debugging other people's code than I ever did debugging my own code (or even writing it in the first place).

    11. Re:keyword: caught by buddyglass · · Score: 1

      I'm with you on the "kids these days" thesis. On the other hand, I cheated pretty regularly on "small stuff" in high school, but never (at all) in college. I had an interesting set of "rules" to govern my high school behavior. Basically I would never cheat on a test or a paper, or anything that required "creative" output, even if that just meant working out math problems or writing a paragraph of text. I would, however, cheat on "busy work" type assignments where I was reasonably sure of two things: I could do the work myself, and doing the work wouldn't actually teach my anything about the subject matter.

    12. Re:keyword: caught by Anonymous Coward · · Score: 0

      Agreed. I can't imagine why students that have a hard time grasping the concepts and using critical thinking skills in CS would be any better in other technical degrees like Mathematics or Engineering. It's just a case of easily catching cheaters. Don't forget that copy and pasting code makes it easier to attempt to cheat which may be enough of a lure to bring more borderline students to cheat.

  7. Ever thought? by Anonymous Coward · · Score: 0

    Professors tend to give out very similar assignments year after year.

    Is it surprising at all that these automated programs detect similarities between hundreds of thousands of programs that all do the exact same thing?

    This hasn't happened to me yet, but a friend of mine (whom I trust to be truthful) told me that he didn't cheat on a programming assignment, but he along with half of the class had to do their assignments again because of suspected plagiarism.

  8. interesting by Anonymous Coward · · Score: 1, Informative

    While I dont promote cheating I do however believe that you should not reinvent the wheel. When I went through school, it was encouraged that we look for examples and code that we could modify or reuse to fit our needs as long as we understood the concepts and could prove we understood it.

  9. more about course by Anonymous Coward · · Score: 1, Insightful

    maybe this says something more about how introductory level computer science courses are taught.

  10. Because that first step is a doozy by gestalt_n_pepper · · Score: 3, Interesting

    CS is just difficult for some people. We didn't all grow up programming in the basement. I've seen students who finally got their program to "run" by commenting out every line, and sadly, were so clueless that they were quite proud of the fact.

    Oddly, it's actually easier now that computers are ubiquitous and going to the CS lab to complete an assignment isn't necessary.

    --
    Please do not read this sig. Thank you.
    1. Re:Because that first step is a doozy by jwinster · · Score: 3, Informative

      Please mod parent up. I agree wholeheartedly with this comment in that there is a really large barrier to entry in CS. I'm a CS grad, and I remember reading the introductory paragraph to my "Introduction to Programming" book stating that this is not a good book for first time programmers, only people with some experience should use it. Luckily I was able to keep up with the learning curve (despite that being my first time programming as well), but it's choices like that which lead to CS dropout rates of 50-60%, and inevitably, cheating.

      --
      Q.E.D.
    2. Re:Because that first step is a doozy by jornak · · Score: 1

      It's a real shame, though, to see how many wannabe nerds there are in the world. In our introductory programming course, the instructor decided to use VB.net as the teaching language to go easy on us.
      It's amazing how many kids (and I say "kids" because they have the IQ of 13 year olds) can't understand basic programming logic; 80% of the students either failed and/or dropped out of the program because they couldn't grasp it. Hell, the teacher even started allowing us to copy code from the internet if we needed to halfway though the course.
      Meanwhile I was sitting there with 100% in the class, making a bunch of mini-games to play when I was bored, while all the other students gawked in amazement how pictures moved around the screen when I pressed a key.

    3. Re:Because that first step is a doozy by Lobachevsky · · Score: 1

      Blame high schools. Universities are not responsible for teaching people basic algebra, geometry, reading/writing, or logic. If someone doesn't know the difference between converse and contrapositive, they should be a freshman in high school not a freshman in college. Logic is just "pseudo-code" and everyone should know logic before entering a university.

    4. Re:Because that first step is a doozy by gestalt_n_pepper · · Score: 2, Informative

      It's a matter of logic, not language. VB.net isn't the issue. It's now so close to C#, that it might as well *be* that. It's certainly no easier, or harder, for that matter.

      The most useful "programming" course I took, other than algorithms and data structures was symbolic logic. I'll bet that this course would be a fairly accurate predictor of who passes and who fails in programming.

      --
      Please do not read this sig. Thank you.
    5. Re:Because that first step is a doozy by SatanicPuppy · · Score: 1

      I was in a programming competition in high school, and when it got down to the wire and we couldn't figure out what the hell was wrong with our 7th program, we just commented out every line that threw a compile error...And the goddamn thing worked perfectly.

      I don't know, to this day, how the hell that was possible.

      --
      ad logicam Claiming a proposition is false because it was presented as the conclusion of a fallacious argument.
    6. Re:Because that first step is a doozy by clone53421 · · Score: 1

      It's amazing how many kids (and I say "kids" because they have the IQ of 13 year olds) can't understand basic programming logic; 80% of the students either failed and/or dropped out of the program because they couldn't grasp it.

      I too was amazed at the lack of basic programming ability exhibited by many of my classmates. And I have the sneaking suspicion that these sort of students are now graduating and actually starting to design stuff in the real world, such as Toyota automobiles. If I had to put money on it, I’d bet on it being a relatively basic programming mistake such as an overflow or a divide-by-zero. Or an impossible, “you should never get here” state in the code that they failed to realize was possible.

      --
      Alexander Peter Kristopeit bought his basement from his mommy for one dollar.
    7. Re:Because that first step is a doozy by Xelios · · Score: 1

      Oddly I had the opposite problem. Although I hadn't done a lot of programming before starting my CS degree it just seemed to come naturally to me. I wrote a lot of terrible code I'm sure, but I always knew what I was doing with the practical assignments. And most of all I enjoyed working on them.

      What almost killed me was the theoretical side of things. Mathematical proofs, runtime classifications for algorithms, number theory, I just had no patience for it. I was overjoyed when I actually got to write some code for a change. A good friend of mine was more into the theoretical side, so we worked together a lot of the time. I'd help him with the practical coding, he'd help me crawl my way through pages of induction proofs.

      Point being for some people the theoretical side of a CS degree is just as hard, if not harder, than the practical coding part.

      --
      Murphey's fighting Occam, and we're in the stands.
    8. Re:Because that first step is a doozy by bugs2squash · · Score: 1

      I had a ZX81. All the code was in the comment anyway.

      --
      Nullius in verba
    9. Re:Because that first step is a doozy by cynyr · · Score: 1

      and yet the step from logic to code is what trips people up. This is even in mechanical engineering where we can break a complex system down by a set of rules, but some can't handle a while loop.

      --
      All of the above was encrypted with a Quad ROT-13 method. Unauthorized decryption is in violation of the DMCA.
    10. Re:Because that first step is a doozy by Nyder · · Score: 1

      CS is just difficult for some people. We didn't all grow up programming in the basement. I've seen students who finally got their program to "run" by commenting out every line, and sadly, were so clueless that they were quite proud of the fact.

      Oddly, it's actually easier now that computers are ubiquitous and going to the CS lab to complete an assignment isn't necessary.

      If they are that clueless, then they are taking the wrong course.

      --
      Be seeing you...
    11. Re:Because that first step is a doozy by TangoMargarine · · Score: 1

      Pretty cool. I love those times when the program won't stop crashing, and I comment out code that absolutely MUST have some effect on the runtime, and it runs exactly the same with and without the commented-out code. Time to spend the next hour debugging it... :-/

      --
      Unity? Screw that: XFCE. Slashdot Beta? Screw that: SoylentNews. Australis? Screw that: Pale Moon. UX developers DIAF
  11. Hello, World! by phissur · · Score: 1, Insightful

    There are only so many ways to print 'Hello World'. Don't expect all students to have different code for an Introductory course's simplistic assignments. Now if their comments are the exact same, raise some flags.

    1. Re:Hello, World! by martas · · Score: 1

      no, that's not true. these code comparison tools look for deeper similarities as well. if you were to manually copy my code, with your own indentation, comments, spacing, etc., you'd still get caught, because a slightly interpreted version of your code would look exactly the same as mine.

  12. But is the class even relevant? by Kenja · · Score: 1

    Long long ago, in a land far far away, I started down the CS degree path but stopped after the first required programming class. Guess how often I've used Pascal since then? If the students know the class is meaningless, why not cheat?

    --

    "Have you ever thought about just turning off the TV, sitting down with your kids, and hitting them?"
    1. Re:But is the class even relevant? by multipartmixed · · Score: 2, Insightful

      If you had taken more than one CS class, you would have understood that it's not about Pascal -- it's about what you're writing WITH pascal.

      Did you really think that say, trees in pascal are completely different from trees in C?

      --

      Do daemons dream of electric sleep()?
    2. Re:But is the class even relevant? by Kenja · · Score: 1

      Actually, it was so that we where forced to buy the Pascal programming book the professor wrote. Seemed to serve no other purpose. So I dropped out, started learning on my own and am now gainfully employed as a coder. Wouldn't mide having the degree, but the CS courses (at least at the time) where junk.

      --

      "Have you ever thought about just turning off the TV, sitting down with your kids, and hitting them?"
    3. Re:But is the class even relevant? by Anonymous Coward · · Score: 0

      Long long ago, in a land far far away, I started down the CS degree path but stopped after the first required programming class. Guess how often I've used Pascal since then? If the students know the class is meaningless, why not cheat?

      If the class is irrelevant to you, why take it?

    4. Re:But is the class even relevant? by pclminion · · Score: 1

      It is unfortunate that you got the impression that the reason you learned Pascal was to know Pascal. You might have enjoyed the forest, had you not been focusing on the trees.

    5. Re:But is the class even relevant? by Anonymous Coward · · Score: 0

      Yeah, same with my ethics class.

    6. Re:But is the class even relevant? by RedMage · · Score: 1

      Agreed - The OP is missing the point completely. I don't want to work with you if you don't know how to write a linked list or a hash table. CS isn't that different from other career paths - you need to master the basics before they let you on the big machinery. Pascal isn't a terribly useful language today (at least in it's "pure" form - I haven't used derivatives like Delphi), but its enough to get through the basics. I learned in BASIC and assembler (PDP-11), but who cares today?

      --
      }#q NO CARRIER
    7. Re:But is the class even relevant? by Anonymous Coward · · Score: 0

      go to an Ivy league CS U like CMU, caltech or the MIT, the class there are not junk.
      If you are Canadian go to Waterloo U or McGill U

    8. Re:But is the class even relevant? by M8e · · Score: 1

      Long long ago, in a land far far away, I started down the CS degree path but stopped after the first required programming class. Guess how often I've used Pascal since then? If the students know the class is meaningless, why not cheat?

      If the class is irrelevant to you, why take it?

    9. Re:But is the class even relevant? by immakiku · · Score: 2, Insightful

      This is somewhat of a sad reminder of the position CS departments are in. You are employed as a coder. Great. A significant percentage of CS grads are "coders" as well, but coding doesn't require more than an intro or two's worth of classes and a bit of experience to teach. The bigger portion of computer science goes into more advanced topics - networking, software engineering, UI, graphics, graph theory, algorithms, compilers, NLP, etc. - that you wouldn't really need for coding, but the knowledge of which is required to really understand what a computer is and does, why it does it, and how you can better use it.

    10. Re:But is the class even relevant? by Anonymous Coward · · Score: 0

      Well maybe if you wanted to be a coder, but I image you just didn't really understand what you were supposed to be learning. I know how to speak, that doesn't make me a linguist. You know how to code, that doesn't make you a computer scientist.

    11. Re:But is the class even relevant? by 1729 · · Score: 1

      go to an Ivy league CS U like CMU, caltech or the MIT, the class there are not junk.

      While CMU, CalTech, and MIT are all top-notch CS schools, they're not in the Ivy League.

    12. Re:But is the class even relevant? by cowdung · · Score: 1

      The first course is "Introduction to PROGRAMMING" not Pascal. It doesn't matter too much what the language is.. what matters is the concepts that are taught. That being said some languages are very good for teaching the basic concepts some are less so.

      Pascal was great for its time because it taught:
      - well organized procedural style coding
      - modularity
      - static typing
      - top-down programming

      Such concepts are fundamental programming concepts and what you use to teach them just depends. Today some Universities use Alice as an Intro to programming. Clearly nobody is going to use Alice as a commercial programming class.

      As any experienced programmer knows, learning a language is no big deal. The most important thing is to learn the basic concepts like programming in the small, OO, functional programming, etc..

    13. Re:But is the class even relevant? by Sulphur · · Score: 1

      B.G. was a Harvard dropout. With their endowment, they insisted on having source. When the prints were thrown out, he read them.

    14. Re:But is the class even relevant? by Anonymous Coward · · Score: 0

      So I dropped out, started learning on my own and am now gainfully employed as a coder.

      If you want to be a basic coder, you don't need a CS degree. If you want to get the bigger picture, a degree will help.

    15. Re:But is the class even relevant? by Khashishi · · Score: 1

      Hey, at least it wasn't Scheme. God, debugging Scheme was awful because the lazy evaluator would make sure your program would fail somewhere completely far from where the error was.

    16. Re:But is the class even relevant? by 1729 · · Score: 1

      B.G. was a Harvard dropout. With their endowment, they insisted on having source. When the prints were thrown out, he read them.

      Huh?

    17. Re:But is the class even relevant? by Sulphur · · Score: 1

      Back in the day, editing was done by printing the code on paper and working with a punch card deck. The waste paper from this process was educational as it was an example of the best coding available at the time.

    18. Re:But is the class even relevant? by 1729 · · Score: 1

      Back in the day, editing was done by printing the code on paper and working with a punch card deck. The waste paper from this process was educational as it was an example of the best coding available at the time.

      You've lost me. How does this relate to the comment you replied to?

    19. Re:But is the class even relevant? by Sulphur · · Score: 1

      How to get a leg up in an Ivy League school (as opposed to the list of schools):
      Find code of such exalted reputation that if one's style is similar, then it will be shrugged off as unlikely.

    20. Re:But is the class even relevant? by Vasheron · · Score: 1

      The bigger portion of computer science goes into more advanced topics - networking, software engineering, UI, graphics, graph theory, algorithms, compilers, NLP, etc. - that you wouldn't really need for coding...

      You know it really really irks me when someone says something like this, because it simply isn't true - not by a long shot. If all you want to do all day is make high-level API calls, write web applications, and play buzzword bingo, then no you don't need anything but exposure to the relevant language and some frameworks. However, if you want to do anything remotely interesting or non-trivial, then most (if not all) of these topics become important. An excellent example, and by no means the only one, is game programming. If you want to do game programming you must be familiar with ALL of the above topics (with the possible exception of NLP) including graph theory. You don't need to know how to engineer software if you're writing it? Seriously? No wonder there's so much shit out there...

    21. Re:But is the class even relevant? by immakiku · · Score: 1

      I think you and I agree. My point is there's a lot of people out there who consider coding to be what you listed - basic app development/high level API calls. That's all fine and good, but that's far from what we consider to be a fully trained computer scientist.

  13. Reason #12.. by Itninja · · Score: 1

    ...why the possession of a degree is only a tertiary (at best) indicator of ones ability in any particular field. Schooling != Education

    --
    I judt got a nre Kinesis keybiartf so please excusr ant egregiou typos.
    1. Re:Reason #12.. by buddyglass · · Score: 1

      I would say "not having a cs, engineering or hard science degree" probably correlates very highly with "not being able to program". Obviously lack of a degree doesn't mean a given individual can't program, but when looking at the issue on a large scale, I'd say "programming ability" is WAY more prevalent among those with "relevant" degrees than among those without.

  14. What is the sound of one hand coding? by WillAffleckUW · · Score: 5, Insightful

    When the most optimum solution to any problem is frequently the same code, and the same exact question gets asked every single time for that course, is it cheating or is it just optimization?

    I use code libraries and recode old stuff to new uses every day - is that cheating or just efficient coding?

    --
    -- Tigger warning: This post may contain tiggers! --
    1. Re:What is the sound of one hand coding? by IndustrialComplex · · Score: 3, Informative

      I use code libraries and recode old stuff to new uses every day - is that cheating or just efficient coding?

      Most of the professors I had would state that you were allowed to use a set list of libraries. If you wanted to use a different library, it had to be written by you and included in your submission.

      The set list of libraries was quite small, usually something like std.h and not much else (I don't know if that was the library, I haven't written anything in C or much else for 10 years)

      --
      Out of modpoints but really liked a post? 1BDkF6TtmmeZ3yqXbz9yhdYVqRYnwFoXDj
    2. Re:What is the sound of one hand coding? by patternmatch · · Score: 3, Insightful

      It depends on the point of the assignment. If you're at your job, and you just need to get something working quickly, then you're not "cheating" by using a library or re-using someone else's code. But when you're in school, the point is to learn the material by solving the problem yourself. So if you just use someone else's solution, you're perverting the intent of the assignment, and that counts as cheating.

    3. Re:What is the sound of one hand coding? by Anonymous Coward · · Score: 0

      When the most optimum solution to any problem is frequently the same code, and the same exact question gets asked every single time for that course, is it cheating or is it just optimization?

      I use code libraries and recode old stuff to new uses every day - is that cheating or just efficient coding?

      The issue isn't efficiency, as the purpose is to learn the code, as a TA in the CS department, I can definitely say that the majority of the cheaters didn't even bother changing enough code to remove another student's name. Blind copying like this isn't efficient now, and won't be efficient later in their careers.

    4. Re:What is the sound of one hand coding? by zigmeister · · Score: 1

      Ugh, I would hope that you could use more libraries than stdio, I just finished a networking project for school last week. Here is a list of all the libs we needed (for the entire project, not any one source file):

      errno.h
      ctype.h
      limits.h
      netinet/in.h
      stdio.h
      stdlib.h
      string.h
      strings.h
      sys/types.h
      sys/socket.h
      arpa/inet.h
      unistd.h
      time.h
      sys/time.h
      sys/stat.h
      netdb.h
      signal.h

      --
      Failure formatting five FAQs of financial facts.
    5. Re:What is the sound of one hand coding? by maxume · · Score: 1

      The obvious intent of the assignments is for the students to create a solution on their own, not for the students to find and turn in a solution.

      --
      Nerd rage is the funniest rage.
    6. Re:What is the sound of one hand coding? by jemenake · · Score: 1

      I use code libraries and recode old stuff to new uses every day - is that cheating or just efficient coding?

      Exactly. My first thought when I read this topic's header was "The reason they plagiarize is because that's what they do ALL the time in their discipline". Look at just about any source file and one of the first 2 or 3 lines will either start with "include", "import", "require", "use", etc..

      I'm wondering if a prof would, at least, give partial credit for an answer like: "#include"

    7. Re:What is the sound of one hand coding? by noidentity · · Score: 2, Funny

      You must be one of those hippie coders who never trims his hair. In the real world, we always avoid using outside code or libraries. Only code we've written passes our quality standards. These schools are right to teach students that collaboration and reuse are cheating, because they are! Now excuse me, a customer has found yet another bug in our software today, so I need to see if I can fix it.

    8. Re:What is the sound of one hand coding? by IndustrialComplex · · Score: 1

      This was for the earlier courses in which you were learning the basics and trying to show an understanding of the theory. More of concept demonstration than software development.

      My degree was Computer Engineer and much more on the EE side of things than the comp sci side of things. I'm sure in the more advanced courses you could use known libraries when the programs you were creating were the demonstration instead of a demonstration of the concepts that were often what comprised the libraries.

      Most of my compsci courses were theory rather than producing any tangible programs. Again, probably not the case for those actually studying computer science.

      --
      Out of modpoints but really liked a post? 1BDkF6TtmmeZ3yqXbz9yhdYVqRYnwFoXDj
    9. Re:What is the sound of one hand coding? by Anonymous Coward · · Score: 0

      The cheating they're talking about is very obviously different. Like, I had a pair of students in one of my labs who would copy things. Not just functionally, but, the same sentences in their reports, the same comments and syntax errors (yes, they'd submit broken labs). One time, the copy-er didn't even skim through the code enough to notice that the copy-ee's name was still in the file comment header. I would hope that most professors/TAs can tell the difference between something like this and coincidence.

    10. Re:What is the sound of one hand coding? by WillAffleckUW · · Score: 1

      Seems like we spend a lot of time reinventing the wheel, when there are perfectly good wheel libraries to #include in real life.

      --
      -- Tigger warning: This post may contain tiggers! --
    11. Re:What is the sound of one hand coding? by blair1q · · Score: 1

      In order to use a code library, you need to understand what's going on in the library calls.

      Plagiarists don't even go that far. They're not just reusing code, they're missing the point of learning.

      And within months, if not weeks, what you think of as creative work has been put into a code library somewhere. The stuff that actually needs work done will require original thinking. So if all you do is crib, you're not going to contribute any more.

    12. Re:What is the sound of one hand coding? by Urza9814 · · Score: 1

      That is why most of the comp sci courses I've taken here at PSU have assignments like: "create a program that is at least 1000 lines and uses x, y, and z" or "Create a program that has a GUI using a text box, a button, and radio buttons and outputs data inside the GUI in some form" (well, more complete descriptions than those, but you get the idea). Much harder to cheat that way.

      It seems they've been changing the courses since I've taken them - even in the past semester - but this is generally what the majority of my projects were:
      http://php.scripts.psu.edu/djh300/cmpsc221/proj2-open.htm

      Sure, there are homeworks too in some classes that are much smaller and generally easier to cheat on, but those are usually less than a quarter of the final grade. The rest is projects and exams.

    13. Re:What is the sound of one hand coding? by Anonymous Coward · · Score: 0

      "I use code libraries and recode old stuff to new uses every day - is that cheating or just efficient coding?"

      There is a difference between doing an exercise where the point is to learn something, and solving a problem on the job. In the later case not reinventing the wheel is a virtue. In the former, reinventing a wheel might be an effective way to learn.

    14. Re:What is the sound of one hand coding? by martin-boundary · · Score: 1

      the most optimum solution

      Dude, did you miss a literature class or two?

      You can say "the most {amazing,annoying,etc} solution", or you can say "the optimal solution", or you can even say "the optimum", provided it's clear from the context that you are referring to a solution.

      But "the most optimum solution" is excessively circumlocutory bibble-babble.

    15. Re:What is the sound of one hand coding? by WillAffleckUW · · Score: 1

      Sorry, that's how they talk in management circles.

      Let me optimize the threshold parameters on that business process for you and start a QA check on a response mechanism.

      --
      -- Tigger warning: This post may contain tiggers! --
    16. Re:What is the sound of one hand coding? by martin-boundary · · Score: 1

      I'm wondering if a prof would, at least, give partial credit for an answer like: "#include"

      I guess not.

      $ echo "#include" > testing.c

      $ gcc testing.c
      testing.c:1:9: error: #include expects "FILENAME" or

    17. Re:What is the sound of one hand coding? by Anonymous Coward · · Score: 0

      >I use code libraries and recode old stuff to new uses every day - is that cheating or just efficient coding?
      It is if you've been specifcally directed not to. (like, duh)

    18. Re:What is the sound of one hand coding? by Anonymous Coward · · Score: 0

      Last I checked, the purpose of classes (unlike most jobs) was not to produce the output. It was to learn _how_ to produce the output. To this end, copying is even _less_ efficient than "recreating" solutions to the same problem.

      I suppose you didn't bother doing any of your math assignments either - after all, the professor already knows the answers!

    19. Re:What is the sound of one hand coding? by WillAffleckUW · · Score: 1

      Ah, but have I?

      Sometimes the actual instructions are fairly vague. Students should never be presumed to have implicitly understood what they've been instructed, unless you verify their comprehension of the instructions.

      That said, most modern films and TV shows glorify hackers and people who reuse code, so we shouldn't be surprised if they follow the cultural norms where bankers are supposed to rip off their customers and politicians and lawyers routinely lie.

      --
      -- Tigger warning: This post may contain tiggers! --
    20. Re:What is the sound of one hand coding? by Anonymous Coward · · Score: 0

      So how do you suggest we check student's coding ability? Assign every one of the thousands of students a new, unique task?

    21. Re:What is the sound of one hand coding? by spazdor · · Score: 1

      "At least 1000 lines"

      What a weird requirement for a programming assignment. I can't imagine a boss ever asking an employee for this.

      Actually, I guess I can. Ugh.

      --
      DRM: Terminator crops for your mind!
    22. Re:What is the sound of one hand coding? by excesspwr · · Score: 1

      What is the sound of one hand coding?

      fap, fap, fap?

    23. Re:What is the sound of one hand coding? by Urza9814 · · Score: 1

      Well the idea for that one was that we could write anything we wanted - absolutely anything. He did some review, and I think the 1000 lines was more of a guideline than a hard rule, but it makes sense to ensure people aren't doing too much or too little effort. My project ended up being close to 3000. But I think part of the 1000 line rule was to make sure you weren't offloading the entire program to 3rd party libraries. This was an introductory OOP class, so the idea of the class is generally getting used to writing code, and you can't really do that if you never write any code.

      Makes more sense than a length requirement on a paper - and I've never had a paper without one of those.

    24. Re:What is the sound of one hand coding? by Pinhedd · · Score: 1

      As someone else above pointed out, that's not the kind of cheating they're looking for. Using an external library (assuming you're allowed) is fine so long as you document it. What's not fine is copying the code of the guy next to you (assuming that collaboration isn't allowed, if it were there wouldn't be a point to this thread). There are only so many ways to correctly solve a computational problem, and there are even fewer ways to do this efficiently. This is the driving force behind much hated software patents. When three students who sit beside each other all make the same elementary mistake on an individual marked lab it's safe to assume that no matter how dissimilar their code may appear to be, they collaborated on their program's logic. Granted, this is not in any way a proof and I'm honestly very skeptical of any tools used to arbitrarily detect cheating.

    25. Re:What is the sound of one hand coding? by spazdor · · Score: 1

      Most papers I've ever written at university, had maximum length requirements.

      --
      DRM: Terminator crops for your mind!
    26. Re:What is the sound of one hand coding? by daveofnf · · Score: 1

      Your company doesn't have every programmer rewrite the same library do you?

    27. Re:What is the sound of one hand coding? by WillAffleckUW · · Score: 1

      Is it? During my first high school classes in computer programming, we would get say 20 assignments for the course. I frequently would do the problem two or three different ways and turn in all the solutions, and thereby earn extra credit.

      --
      -- Tigger warning: This post may contain tiggers! --
    28. Re:What is the sound of one hand coding? by dudpixel · · Score: 1

      as long as you know and understand what the code is doing, I say go for it.

      However, when you're learning how to code, the rules are different. In this environment, you need to be able to prove to your tutors that you know and understand the subject material, and if they allow copying, then they have no way of knowing if you understand it at all. People could graduate without the proper skills and knowledge and then the effectiveness of the course and the university would be called into question.

      I dont believe university is there to teach you real life skills. They teach you the skills, and it is you who needs to apply them to real life.

      --
      This seemed like a reasonable sig at the time.
    29. Re:What is the sound of one hand coding? by Anonymous Coward · · Score: 0

      Kinda like Microsoft stealing code from open source projects?

    30. Re:What is the sound of one hand coding? by noidentity · · Score: 1
      Your compan

      y doesn't have every programmer rewrite the same library do you?

      Thanks, we hadn't realized this form of sharing. I'm typing up a proposal now to end this form of internal cheating. Tomorrow, everyone will be writing his own libraries, starting with strcpy.

    31. Re:What is the sound of one hand coding? by Anonymous Coward · · Score: 0

      Oh no, you can't use strcpy, your standards are the only ones that count. You have to start at an assembly language. Maybe you should even think about making your own chips.

    32. Re:What is the sound of one hand coding? by Anonymous Coward · · Score: 0

      "When the most optimum solution to any problem is frequently the same code, and the same exact question gets asked every single time for that course, is it cheating or is it just optimization?
      "
                Cheating. If you have an assignment to implement a sorting algorithm, calling libsort() and calling it a day (or cutting and pasting it) is cheating, pure and simple, and furthermore defeats the entire point of the assignment. When I took comp sci, the simplest problems, someone with programming experience could whip out an answer in minutes; someone without programming experience DID IT FOR THE EXPERIENCE. By the time we were working on larger, more complex porjects, we did in fact use libraries and existing code pretty heavily, but by this time anyone who had cheated through the first part STILL had no programming experience, so they found they were quite unable to write sensible code even if all it had to do was make some library calls in the right order.

      "I use code libraries and recode old stuff to new uses every day - is that cheating or just efficient coding?
      "
                Yeah, something like a games programming class for example, they will let you use SDL, OpenGL, etc, not expect you to implement 3D and 2D graphics from first principles. If you were writing some console app, they'd let ya use ncurses, not expect you to implement terminal handling yourself. If you are to implement a linked list though, YOU are supposed to implement a linked list. It's really as simple as that.

  15. Back in my day, I'd just steal the journal by Anonymous Coward · · Score: 0

    If there was only one copy on campus (and since there was no pubmed or anything similar), that would do.

  16. My opinion: by butterflysrage · · Score: 5, Funny

    Enrollment in undergraduate computer science courses is at an all-time high at colleges nationwide. But this trend that's been hailed by the US tech industry has a dark side: a disproportionate number of students taking these courses are caught cheating. More students are caught cheating in introductory computer science courses than in any other course on campus, thanks to automated tools that professors use to detect unauthorized code reuse, excessive collaboration and other forbidden ways of completing homework assignments. Computer science professors say their students are not more dishonest than students in other fields; they're just more likely to get caught because software is available to check for plagiarism. 'The truth is that on every campus, a large proportion of the reported cases of academic dishonesty come from introductory computer science courses, and the reason is totally obvious: we use automated tools to detect plagiarism,' explains Professor Ed Lazowska, chair of computer science and engineering at the University of Washington. 'We compare against other student submissions, and we compare against previous student submissions and against code that may be on the Web. These tools flag suspicious cases, which are then manually examined.'"

    --
    the preceding post was not spell checked... suck it.
  17. Code reuse? by Anonymous Coward · · Score: 1, Insightful

    Isn't OO all about code reuse?

    1. Re:Code reuse? by fahrbot-bot · · Score: 1

      Isn't OO all about code reuse?

      True, but students are not taught OO programming at the beginning and not all programming lends itself to that methodology. In any case, students need to learn the skills themselves and have a wide variety of skills. In the specific case of code re-use, without their own skills, properly developed, how can they contribute or even know if the code they're using is appropriate (or even correct)?

      --
      It must have been something you assimilated. . . .
    2. Re:Code reuse? by Monkeedude1212 · · Score: 1

      And isn't a CS degree so that you understand how to program?

      I could copy a wikipedia article on Ancient Rome but that doesn't make me a history major any more than copying my google results for "C# logon control" makes me a good object oriented programmer.

      Albeit, in both cases I'm uses skills that applies to the field, for history I'm learning basic research principles (and how ineffective or horrible a source Wikipedia might be), and in the other example I'm learning code reusage, which may be just as ineffective or horrible as wikipedia. Just because something works doesn't make it good code. This is the kind of thing they need to be teaching in Object Oriented programming.

      Because its one thing to avoid reinventing the wheel. But you should know how a wheel works before you use it.

  18. is this suspicious? by shadowrat · · Score: 1

    all the students had the line

    for(int i = 0; i < 128; i++)

    in their comp-sci assignment.

    1. Re:is this suspicious? by Lobachevsky · · Score: 1

      I always do ++i.

    2. Re:is this suspicious? by spazdor · · Score: 1

      i+=1 isn't taken yet?

      --
      DRM: Terminator crops for your mind!
  19. Why Computer Science Students Cheat? by rodrigoandrade · · Score: 3, Insightful

    For the same reason Psychology students cheat.
    For the same reason Math students cheat.
    For the same reason English students cheat.
    For the same reason Economics students cheat.
    For the same reason Biology students cheat.

    You get the idea...

    1. Re:Why Computer Science Students Cheat? by Anonymous Coward · · Score: 0

      For the same reason Psychology students cheat.

      ... because they are crazy.

      For the same reason Math students cheat.

      ... because they think they can beat the odds after factoring in the time spent.

      For the same reason English students cheat.

      .... because it is the path less travelled by.

      For the same reason Economics students cheat.

      ... because it is in their best interest.

      For the same reason Biology students cheat.

      ... because, even though it's so wrong... it feels so good!

      You get the idea...

    2. Re:Why Computer Science Students Cheat? by Anonymous Coward · · Score: 0

      It was a rhetoric question. The point is that it looks like computer science students cheat more than others but it is speculated that there isn't actually more cheating going on and the difference is in the detection: Unlike the other departments you mentioned, computer science departments use automated plagiarism detection. Which leaves the question: Is the amount of cheating indicative of some fundamental problem with the education or just human nature?

    3. Re:Why Computer Science Students Cheat? by SirLanse · · Score: 1

      The big difference between CS and English, Bio, Eco etc. If you get a 4.0 gpa in CS you WILL have job offers. :) The intro courses when I was in college had 75-90% mortality. By senior year only the strong survived. Send them back to Poli-Sci where Obama will provide.

    4. Re:Why Computer Science Students Cheat? by Anonymous Coward · · Score: 1, Insightful

      Hah! Cheating in math at the university level (by which I mean calculus and beyond) is essentially impossible if you give quizzes and exams in-class. I suppose it is more possible if you allow for take-home. To be good enough to

      1. copy an answer,
      2. modify it enough to not be spotted,
      3. provide enough work for it to be graded correct,
      4. and still have a correct answer

      is not possible unless you already had the skill to do the problem in first place.

      I've graded thousands of university math quizzes and exams. Cheating is obvious. When students complain, you just offer them the chance to do a similar problem on the white-board in your office. Case-closed.

    5. Re:Why Computer Science Students Cheat? by tool462 · · Score: 2, Funny

      I like that you (correctly) left Physics students off that list.
      Physics students don't cheat. Their wave functions become entangled, so when you solve for the eigenvalue of one, the other is necessarily solved as well.

    6. Re:Why Computer Science Students Cheat? by flabordec · · Score: 1

      So... Copying the cool guys?

      --
      "I see undead people" Warcraft III - Necromancer
    7. Re:Why Computer Science Students Cheat? by buddyglass · · Score: 1

      The hilarious thing about this post is that it embodies the same douchey attitude the EE students at my alma mater held towards the CS students.

    8. Re:Why Computer Science Students Cheat? by blair1q · · Score: 0, Offtopic

      And they're still right of center.

    9. Re:Why Computer Science Students Cheat? by Anonymous Coward · · Score: 0

      And Newton doesn't like that.

    10. Re:Why Computer Science Students Cheat? by Anonymous Coward · · Score: 0

      Biology students don't cheat!

    11. Re:Why Computer Science Students Cheat? by TangoMargarine · · Score: 1

      Isn't mortality a rather strong word to use? Maybe for electrical engineers...

      --
      Unity? Screw that: XFCE. Slashdot Beta? Screw that: SoylentNews. Australis? Screw that: Pale Moon. UX developers DIAF
    12. Re:Why Computer Science Students Cheat? by BradleyAndersen · · Score: 1
      Mod this idiot down. Two reasons:
      • a 4.0 in any field no longer guarantees any "job offers", and
      • well, let's face it, the post is idiotic :)
  20. how to not cheat by Anonymous Coward · · Score: 5, Insightful

    I used to cheat in college, and all my friends do. I don't cheat anymore. My secret? I switched to a major I like. For the most part, I enjoy and look forward to assignments, and haven't cheated on any since changing majors. For me the subject is CS, but I'm sure that most people could find something they like well enough to look forward to assignments.

    1. Re:how to not cheat by Merc248 · · Score: 1

      I wish I could've done this earlier; I really really enjoyed CS, but the program I was in at a private university was more about software engineering than CS theory. I still enjoyed coding, however.

      When I went to the local public university (University of Washington), my GPA wasn't up to snuff. I LOVED computer science, but this interest was not enough to actually get me into the department.

      C'est la vie.

      Thankfully, I also liked the other majors I ended up graduating with, which were math and philosophy. But I think I would've loved being in the CS dept. a lot more than either of those two combined...

      --
      "Hegelians, who love a synthesis, will probably conclude that he wears a wig." - Bertrand Russell
    2. Re:how to not cheat by Rich0 · · Score: 1

      Yeah, but when the major you like is goofing off, or the history of art, good luck paying off your student loans when you graduate. There is this lovely concept that we seem to teach kids - that college is about experiences and developing yourself and becoming well-rounded, and we shouldn't be so preoccupied about pay. Well, that only works well if the government is willing to loan you $200k for you to tie a financial noose around your neck for four years. When the loans stop coming, there is a day of reckoning. Those four years of fun can cost quite a few of anguish if you don't find something practical to do with yourself...

    3. Re:how to not cheat by spaceyhackerlady · · Score: 1

      I switched to a major I like.

      Bingo! Doing something you like is always a good plan. If you don't like it, why are you doing it?

      I'm currently learning to fly, and an all-too-common reason to do so is "because my parents want me to". This is a guarantee of failure.

      ...laura

    4. Re:how to not cheat by Merc248 · · Score: 1

      God, you've no idea how annoyed I am of hearing people who end up jumping into a field they don't like.

      Typical conversation between me and various people in college (or who've just graduated from college):

      me: "What'd you major in?"
      person: "X"
      me: "Awesome! What sort of stuff interests you about X anyway?"
      person: "Oh, I'm just doing X because I can make a ton of money with it."
      me: "Oh... okay."

      Bah.

      --
      "Hegelians, who love a synthesis, will probably conclude that he wears a wig." - Bertrand Russell
    5. Re:how to not cheat by electrosoccertux · · Score: 1

      I used to cheat in college, and all my friends do. I don't cheat anymore. My secret? I switched to a major I like. For the most part, I enjoy and look forward to assignments, and haven't cheated on any since changing majors. For me the subject is CS, but I'm sure that most people could find something they like well enough to look forward to assignments.

      this doesn't really work, I fear failure. Assignments give me fear of failure. What if I don't make the grade? What if I can't figure it out?
      When I'm sitting there trying to figure it out, all I can help but think is "man I'm so stupid, this is so hard, I've been staring at this for 2 hours and I still can't figure it out, I'm such a retard, if I can't figure this out it means I'm retarded..."

      In contrast, when I'm on the job it's "here do this" and my choice is
      1). Twiddle thumbs, or
      2). Entertain myself by trying to learn something new.

      There are people I can ask for help, and there really aren't huge deadlines where you have a choice of working or putting it off, you just have to work on it.

    6. Re:how to not cheat by buddyglass · · Score: 1

      While I agree with you in general that people should be aware of practical concerns, I also think that when you find something you're passionate about you can almost always support yourself with it. In the least marketable fields (e.g. "Medieval French Literature") maybe that means earning a Ph.D. and joining academia. But hey, that's still a job. As for college loans, nothing says you have to attend a super-expensive university.

    7. Re:how to not cheat by Anonymous Coward · · Score: 0

      i never cheated because i have integrity.

      also how would i ever know what i was worth if i fuck the numbers up? but that info is just for me

  21. How many ways are there to write a linked list? by RedMage · · Score: 1

    If we're talking introductory courses like Data Structures, then it's pretty hard not to look like everyone else. I don't code most of the basic data structures anymore, but I expect that anyone I hire would have been through the basics at least, so I see the value in teaching these things. But I can imagine that if I were to write basic code to manipulate a hash table or binary search it would look a lot like everyone's else code.

    --
    }#q NO CARRIER
    1. Re:How many ways are there to write a linked list? by meustrus · · Score: 1

      A good CS class nowadays doesn't ask you to program a simple linked list for an assignment. In my CS class last year, students were walked through programming singly-linked, doubly-linked, and circular lists in class, and were given an assignment to construct a doubly-linked list where .next goes three ahead, and .prev goes two back. It's fairly simple to write a .getNext() function as "return this.next.prev" but things can get hairy (and require more advanced and uncharted solutions) when you start implementing every function found in the Java List interface, which was part of the assignment.

      Point is, asking a student to do something that's been done to death is not a good project. I could ask you to write a function which takes an input stream and splits it into an array on certain delimiters, and I can expect a unique solution from everyone. There's bound to be some small difference (maybe a line is out of order or the syntax is slightly different) if there isn't a large difference (using a while {} instead of a for {}, or even a do {} while), and if you were to take existing code and try to change it for those small differences you'd have to have some understanding of how it was put together in order not to break it.

      --
      I sometimes ask revealing, often ignorant-seeming questions. Maybe they're harder to answer than you think.
    2. Re:How many ways are there to write a linked list? by Anonymous Coward · · Score: 0

      As was mentioned above, there's a big difference between code looking similar and being the same. I've seen a number of cases where diff produced absolutely nothing. If you and I were to be given an assignment that would take at least 10 or 20 lines of code to write, there's no way this would happen unless some form of collaboration or cheating is present. At the very least we'd use different variable names, spacing, and comments.

    3. Re:How many ways are there to write a linked list? by Anonymous Coward · · Score: 0

      A linked list node can point to either its child or it parent, or both (doubly linked). Each version has advantages to optimize search or traversal actions. That's 3 ways to design your linked list right there!

      I can implement Binary Search more than one way. The search structure could be a segmented array on disc, or it could be a binary tree in memory. How do I evaluate the keys to decide that A B (the keys better not be complex valued)?

      A good data Structures course will force students to try variations on a theme. There are ways to make sure students are learning the material.

  22. anthropic principle by TimeZone · · Score: 1
    You're looking for it [cheating] more often!

    This is very similar to finding bugs in QA phase of software (or hardware) testing. The only way you're going to stop finding bugs is if you stop looking for them...

    TZ

  23. hacker mentality? by quangdog · · Score: 1

    Perhaps it has more to do with the hacker mentality that seems to be prevalent (or was when I was earning my CS degree) amongst first year cs students. Aren't they just gaming the system for maximum benefit with minimum work?

    The only issue is that the cs depts are able to detect this more easily....

  24. Also intro classes are taken by all majors by Anonymous Coward · · Score: 0

    A CS intro class is often required by other majors, and these generally have the HIGHEST cheating rates. The worst ones at my campus are the non cs-major only intro to cs classes. My girlfriend had to take one and apparently 30 out of the 100 or so kids were caught cheating (with definite positives). They seem to be the most clueless that they WILL get caught by the automation.

  25. Real geeks/nerds never plagarise. by Antony+T+Curtis · · Score: 2, Interesting

    When I ran a tutorial group for fellow students who were taking the Imperative Programming module, I can guarantee that there was no plagiarism nor cheating going on. I helped them learn coursework and each of their assignments were done by them and I only intervened if they had made a mistake. They experienced some frustration because I would not give them the solution: I had them work through it themselves and figure out their own mistake. Only one time, I was concerned that they really were considering throwing me out through the 3rd floor window.

    Only after they had completed their assignments, would I show them how I would complete the same assignment.

    I think a difference was that each of them really did want to learn the material but many students today taking these courses just want a job and have no personal interest in the topic.

    --
    No sig. Move along - nothing to see here.
    1. Re:Real geeks/nerds never plagarise. by Jbain · · Score: 1

      I think a difference was that each of them really did want to learn the material but many students today taking these courses just want a job and have no personal interest in the topic.

      I'm currently a third year at a technical school, and while my major is not specifically CS, it's similar(networking/sysadmin/IT) and I am surrounded by a lot of CS students.

      When I transferred here was I was down right shocked at how many people in any of the given technical departments had little to no interest in their field of study. You are dead on when you say the difference is whether they have a personal interest in learning the topic. It's almost disgusting how many of my fellow students say they are only studying X because it pays well.

    2. Re:Real geeks/nerds never plagarise. by Anonymous Coward · · Score: 0

      "Real geeks/nerds never plagiarize."

      This is not true, if someone has done something better and we are strapped for time we will do so. In theory nerds/geeks will not plagiarize but in practice they do, there is way too much to do/learn in the short span of a human life and the amount of work is endless. Nerds will learn what they feel they need to know and skip/skim/borrow (plagiarize) where they feel they should.

    3. Re:Real geeks/nerds never plagarise. by omglolbah · · Score: 1

      I had the same experience in doing my bachelor... Automations is an interesting field with a nice mix of hardware and software.

      Of the 43 students starting out there were 4... FOUR whom had ever used a soldering iron....

      In 2003.. I had a classmate that had never used a word processor. She couldnt understand why her -hand written- job applications never panned out... in an engineering line of work... *shudder*

      We had people who could not figure out why building a circuit after you designed it was important.
      "But it worked in simulation... no point in building it!"

      *wimper*

      It was fun watching them fail miserably on the final exam though, as there were quite a few questions that could only be answered if you had actually bothered building the things you designed *snickers*

    4. Re:Real geeks/nerds never plagarise. by Antony+T+Curtis · · Score: 1

      If they spent the time/effort to examine why someone else has done something better, it is no longer plagarism: It is now research and they would learn something from it.

      Unfortunately, some people are quite happy to copy code without learning from it and so fun little Easter-eggs which embed the original author's name sometimes creep through: I have seen that happen in real life.

      Plagarism is copying someone else's work and passing it off as your own.
      Research is the careful examination of many works and then passing the result off as your own, with appropriate references.

      --
      No sig. Move along - nothing to see here.
  26. It'll work itsef out eventually by wikid_one · · Score: 2, Insightful

    If you are one of those who cheat in an Intro. to CS class, then chances are pretty good that you won't make it too far with your programming aspirations. Just don't complain when the college keeps taking your tuition money for the same course!

  27. Re:And then they check it? by emurphy42 · · Score: 4, Insightful

    That's taken out of context. In context, it carries a clear implication of "manually examined for the specific purpose of confirming or denying plagiarism", on top of whatever manual examination takes place for the purpose of confirming or denying that the code is any good.

  28. Nope, you are wrong too by Anonymous Coward · · Score: 0

    It should be

    i<=10

    or

    i<11.

  29. CS classes need to be in the real world. by AnonymousClown · · Score: 3, Insightful

    The professors say:

    "Many of our students like to collaborate, but at what point are you copying?" Pitt asks. "The course policy needs to be really clear. Some courses will allow you to work in pairs but not in triples. If you don't follow that policy, we would call that cheating."

    The industry says:

    "In the real world, people write code in teams where they are given pieces of a project to work on," Foote says. "The academic world should be mapping onto the real worldThey shouldn't be handing out assignments where people are coding on their own."

    Ladies and Germs:

    We see here where academia isn't keeping up with industry. I can't tell you how many times I've seen where jobs descriptions demand "team players" and "the ability to work in teams".

    And I'd argue that academia promotes the prima donna. Someone who was a 4.0 CS student is going to have the impression that he's better than everyone else (maybe true) and that everyone else should get out of his way and let him do it all (not good). I worked with the latter. He was a GA Tech grad and he was rather brilliant. Unfortunately, with all his smarts he was a liability to the team. He couldn't possibly do everything himself (2 million+ line project due in 6 months) and he caused a lot of problems to the point where he was slowing the others down even more.

    The geniuses need to be off on their own developing - whatever - that's what we had to do with this guy. He was still miserable, though.

    --
    RIP America

    July 4, 1776 - September 11, 2001

    1. Re:CS classes need to be in the real world. by pclminion · · Score: 4, Insightful

      I disagree. Computer science has never really been about what happens in the real world. What happens in the real world is engineering. And before you scoff that most code you've ever seen is terribly engineered, remember that these people didn't study engineering at all -- they studied computer science. The problem is that people keep trying to glob CS and software engineering into a single idea, when it's not. CS is no more engineering than organic chemistry is chemical engineering. The goals, practices, daily ways of thinking are not the same.

      If I work with CS graduates who can't engineer their way out of a wet sack, I'm not very surprised, because engineering wasn't what they actually studied. And it's not their fault either, because the distinction is never explained in the first place. Students are prepared and told that to be a programmer, they need to study CS. I think CS is something you should study if you want to be a computer scientist. If you want to develop real world code, you need to be on an engineering track.

    2. Re:CS classes need to be in the real world. by oneplus999 · · Score: 1

      This is intro level CS classes that they are talking about. You don't graduate from GT with a CS degree (as I did) without taking several classes working on teams of at least 4, so your coworker has no excuse.
      The purpose of these classes is to teach the basics of programming, not how to reuse other people's code or to work in teams, as those are obviously higher level skills taught in higher level courses.

    3. Re:CS classes need to be in the real world. by serialband · · Score: 2, Interesting

      ...
      We see here where academia isn't keeping up with industry. ...

      The problem here is that people keep thinking that Colleges are trade schools. They are not. Academia never was about training you for industry. That's what trade schools are for.

      It used to be that you got a job after high school, because high schools used to prepare you for some trades. There used to be high school classes that taught autoshop, welding, woodshop, electronics, etc.. and you would be prepared to enter the workforce as soon as you graduated high school. That curriculum has been eroded by budget cuts and now you can't get many job skills from high school any more. You're now expected to get a college degree, but all these students really just need a trade school degree, because they're out chasing money, not knowledge.

      Companies really just want trade school graduates, not college degreed academics. They use the degree requirement as an excuse to bar or limit the candidate pool. The students need to go to trade schools, because all they want to do is ply a trade, not become professors and do research and gain knowledge. They really need to go to community college or junior college or ITT Tech or DeVry or University of Phoenix and get their trade school education and diplomas. The problem is that there has been a misconception about the entire college experience. Nearly half the students in college shouldn't really be in college because they aren't trying expand their knowledge. They aren't going to do research. They could care less about physics or calculus or chemistry or English, which are required of college students. Those subjects don't help most people with their trade.

      And I'd argue that academia promotes the prima donna.

      I suggest that your company stops hiring the geniouses for the regular mundane production coding. He should have been hired to do research, for which he is probably better suited. Code monkeys can be 3.0 or even lowly 2.x students.

    4. Re:CS classes need to be in the real world. by Anonymous Coward · · Score: 0

      When I took CS class in the 1990s most of my professors encouraged us to work in groups and hand in one programme for the group. We probably would have worked together a bit anyway just as we had study groups for our math classes.

      I did do some solo work as a programmer, but most of it was in teams.

    5. Re:CS classes need to be in the real world. by Anonymous Coward · · Score: 0

      This is a beautiful statement of the exact opposite of how I feel.

      I'm currently a junior C.S. and math double major. Putting in a huge amount of effort, I've made it through all of my math major's required courses with 2 Bs. Most of the awesome math majors I know seem to be operating on a completely different intellectual level from me.

      On the other hand, I've had about 2 or 3 C.S. classes that I didn't treat as complete jokes. What's more, most of the C.S. majors are exactly what you say they should be: fascinated by large coding projects, and completely uninterested in the "actual" computer science. They seem to be interested in getting jobs, and nothing else.

      It's a shame that they call the major "computer science" when it really just is software engineering.

    6. Re:CS classes need to be in the real world. by Anonymous Coward · · Score: 0

      I must also disagree. Here we are addressing a debate which is largely hashing words around something every educational institution deals with in a different way. It is a matter of semantics. Software engineering as a practice is largely based on the design and development of software using best practices and optimized procedures based on proven theoretical paradigms. Computer Science studies theoretical techniques of information computation, and practical techniques for their implementation and application in computer systems (thanks Wikipedia!). In a nutshell, we're comparing apples to apples, and arguing about how much crunchier your Macintosh is than my Red Delicious. Both employ theory and practice, both employ a common body of knowledge, and both employ standard design methodologies. The big difference? What ours fathers do for a living and which party in your area boasts the loudest giving you a false impression and elitist mentality that propagates through generations and unfortunately affects hiring decisions, thus becoming self-fulfilling prophecy. Am I a computer scientist? Yes, I use the theory, fundamentals, and applications of computing science. Am I an engineer? Yes, I employ engineering techniques and best practices, as well as work for/with accredited engineers (some of who work for/with me). I have worked with both crappy and awesome engineers and computer scientists. The big difference? Not what they took during college in undergrad to prepare them, but what they took from experience and learned to apply later on based on personal initiative, character, and work ethic. Based on these experience and more, if I was forced to choose between a "scientist" and "engineer"; I'd pick the one who best demonstrates they are capable of teaching themselves, learning from their mistakes, and won''t give up when faced with uncertainty when their prof can't show them the "correct" answer. Just my $0.02.

    7. Re:CS classes need to be in the real world. by bobaferret · · Score: 1

      The problem is that no one has come up with a good way to do software engineering yet. Originally they tried to adapt the waterfall model to project development, but ran into problems because by the time you've finished truly working out all of the design details, you have the finished project. After I graduated extreme programming et al. started showing up as well as unit testing, and test driven coding. These still fall into the art category and do not work far all situations, esp. when users are involved as opposed to rockets and septic tanks. CS, to me, is about being able to understand the code that your reading and learning from, and to give you a background to make informed decisions. The good CS programs make you do projects in groups, as well as giving you a background in different development models so that you can try them for yourself. But as far as I've seen when true engineering is applied and enforced to software development the whole system breaks down. When engineering is left completely out of the equation the system also breaks. So I think your statement, based on my experiences, is a little passed balance, but on he right track.

    8. Re:CS classes need to be in the real world. by Nebulious · · Score: 1

      At my university, the CS department is part of the engineering college. All CS students are required to take the same introduction to engineering as the rest of us.

    9. Re:CS classes need to be in the real world. by Vasheron · · Score: 1

      Most universities (at least in Canada), have a software engineering stream, or a software design stream. There are plenty of opportunities to learn about engineering over the course of an undergraduate career: internships, project courses (many inexperienced students avoid these like the plague), summer research projects, open source projects, or invent your own! Ultimately, it is the student's responsibility to get involved and find opportunities to practice engineering, no matter which programme they are in - you simply can't expect to learn everything in a classroom. Having worked on projects with both CS and engineering students, I've found a roughly equal percentage are completely clueless. Very few have a firm grasp of how to go about working on a large non-trivial project, because they've never done it themselves. How most of these people managed to make it into upper-year courses is beyond me...

    10. Re:CS classes need to be in the real world. by BradleyAndersen · · Score: 1

      You are correct!

      These things have never been 'like' the real world. In the real world, I get to use the internet, co-workers, books, notes, etc. on the 'exam'. Personally, I don't care how a student achieves an answer - i'd prefer a resourceful, mediocre programmer over an asshat prima donna master magician awesome dude programmer any day of the week.

    11. Re:CS classes need to be in the real world. by Anonymous Coward · · Score: 0

      We see here where academia isn't keeping up with industry. I can't tell you how many times I've seen where jobs descriptions demand "team players" and "the ability to work in teams".

      "Team Player" means that you're not an asshole who's impossible to work with. It also means that you're not just covering your own ass, but willing to step up & make up for the shortfalls of others on your team. It doesn't say anything about being able to sit on your ass doing nothing and sharing equal credit (and pay)- if you can't pull your own weight it's going to be recognized and eventually you're looking for a new job.

      You don't go to school for CS to learn to be a "team player", you go there to learn the skills you need to be a programmer. If you want to learn how to work well in a team, then you should take some social studies classes. That's actually the point of going to a college as opposed to a trade school- the electives are there to provide exactly these types of side skills that are useful to employers. Communication is another perfect example- CS professors shouldn't be wasting their time teaching you grammar and language skills so that you can write effective documentation, that's what the English and other Language courses are for, and it's up to YOU as a student to apply that knowledge across disciplines.

    12. Re:CS classes need to be in the real world. by shish · · Score: 1

      Speaking as an acedemic prima donna, a word in my defence: I would love to work in a team with clue, but 90% of compsci students really, really suck. The last group I was forced to work with were two other compsci students who were in their third year of learning java and didn't know the difference between a class and an object, and someone doing the module as an extra from their management course who flat out refused to do any of the programming or documentation (and his management style to say "I don't know what to do, you're a programmer, work it out", then leave the country).

      As a result, the only experience I have from working in a good team is open source projects, which are a somewhat different model :(

      --
      I mod down anyone who says "I will be modded down for this", regardless of the rest of their comment
  30. software sucks by InsprdInsnty · · Score: 5, Interesting

    One of my lecturers decided to test our university's plagarism software as it was coming back with a unusually high number of false positives. As soon as he submitted a sample he wrote it came back positive for plagarism even though he answered a question just using the knowledge he had gained over his 20+ years experience in the industry. He and many other people in the department put hardly any weight on the results that pop up. His issue with using it is that the content of the course changes so little that with every iteration of students passing through the school its more likely to have incorrect results as its saves a copy of the submission to add to its database. I myself have had work come back as plagarised beacuse there arte only so many ways to write the same damn sentance.

    1. Re:software sucks by czmax · · Score: 1

      I myself have had work come back as plagarised beacuse there arte only so many ways to write the same damn sentance.

      Creative spelling does help expand the number of ways 1 can right the same dam sentence!

    2. Re:software sucks by InsprdInsnty · · Score: 1

      Haha good point but you get the gist of it. I do Civil Engineering not CS but some of the lab work we have to do is done every year the same way with the same submission requirements. Its not easy to avoid plagarism when its been done 100's of times before by other people

    3. Re:software sucks by Locke2005 · · Score: 1

      ...there arte only so many ways to write the same damn sentance.

      As sentences go, that one has to be pretty unique! You are correct though -- just because two people use the same algorithm doesn't make one of them a plagiarizer.

      --
      I've abandoned my search for truth; now I'm just looking for some useful delusions.
    4. Re:software sucks by Anonymous Coward · · Score: 0

      I myself have had work come back as plagarised beacuse there arte only so many ways to write the same damn sentance.

      Wel thats onee whey tu distingish yurself!

    5. Re:software sucks by InsprdInsnty · · Score: 1

      Sorry for replying to my own post but there are 3 comments about spelling already. Yes I make spelling mistakes and no I don't give a shit. This is slashdot not an academic paper. Get over it already

    6. Re:software sucks by Wingfield · · Score: 1

      That is very true. However, what are the odds of writing the EXACT SAME THING, with the same wording, punctuation, etc? They are good for checking to make sure a student has not plagiarized, since they bring works the professor may not be familiar with to the attention of the professor. If Johnny has the exact same paragraph as a book in the library, guess what? He probably plagiarized it.

    7. Re:software sucks by poena.dare · · Score: 3, Informative

      "just because two people use the same algorithm doesn't make one of them a plagiarizer"

      The irony - because of skroooie US patent laws - when two people use the same algorithm it makes one of them a IP infringer!

    8. Re:software sucks by Anonymous Coward · · Score: 0

      I myself have had work come back as plagarised beacuse there arte only so many ways to write the same damn sentance.

      Especially with such a delightfully idiosyncratic approach to spelling :P

    9. Re:software sucks by Anonymous Coward · · Score: 0

      I myself have had work come back as plagarised beacuse there arte only so many ways to write the same damn sentance.

      Oh look, you've found another way...

    10. Re:software sucks by Anonymous Coward · · Score: 0

      Ahhh, yes! So terrible spelling is a preventative measure? It all makes sense now.

    11. Re:software sucks by eyrieowl · · Score: 1

      I had a professor who did an experiment with my college's anti-cheating program because it said many people were cheaters who weren't. Immediately after he ran his test it told him he had cheated and copied the test despite the fact that he came up with the experimental sample based on all that he had learned in more than two decades of working in the field. Neither he nor most of his departmental colleagues pay much attention to what the computer program tells them. His main problem with the program is that the curricula for the class hardly varies at all from year to year but the program keeps a record of everything it examines each year. Thus, the probability of someone getting incorrectly flagged as a cheat increases every year. Even I have been told that I am a cheater by the stupid program due to the fact that for a single cursed thought, there are only a finite set of combinations of words which will mean the same thing.

    12. Re:software sucks by Al+Dimond · · Score: 1

      People suck, too. In high school one of my teachers accused me of plagiarism because the writing style was "too mature" for me to have done it.

      There were contributing factors. My previous work in the class really wasn't very good, for one. Oh, yeah, and a bunch of kids in her honors section had just been caught cheating. They'd copy-pasted from the web and left in the font changes and blue underlined text. Oops.

      I'm pretty sure she docked me a few points even though she couldn't prove anything. But that's impossible for me to prove, since there's a large subjective component to grading papers. At least in CS classes there shouldn't be much subjectivity in grading exams, and it's somewhat harder to cheat on exams.

    13. Re:software sucks by Anonymous Coward · · Score: 0

      so the algorithm learns your writing style and lo and behold it declares plagarism because it detects your unique writing style and vocabulary.
      sounds like this system stops working at a certain threshold

    14. Re:software sucks by thegarbz · · Score: 1

      Indeed no. But it would flag them as a plagiariser. If both people were then asked to explain the code, one person replies with perfectly with reasoning behind his decision, and the other sits there with drool coming out of their mouth then that student should either fail for copying work, or fail for not understanding. I don't care which.

    15. Re:software sucks by c++0xFF · · Score: 1

      Maybe CS courses should switch to Perl: "There's more than one way to do it." In fact, I bet each student would come up with a completely unique solution.

      Of course, I'd feel sorry for the TA who has to grade the assignments.

  31. Itch and scratch... by Anonymous Coward · · Score: 0

    Could it be that more dumb people are flocking toward higher paying careers without the slightest bit of ability. Instead of accepting the fact that they don't know where the power button on a computer is they instead turn to cheating to try to skate by.

    No, it's simply the "you scratch my back and I'll scratch yours" nature of human societies at work. You are stuck on some assignment, you have three other assignments to hand in all of which look set to take up about 30% of your available time which leaves you needing more time and you can't afford to spend any more of it than absolutely necessary stuck in a quagmire. What do you do? Most students I know ask their friend who already solved the problem for advice and end up prodcuing a solution of their own that is, at least partly quite similar to their buddy's. The school authorities then let loose their new anti-plagarism software on the student's assignments and to their horror discover that **Gasp** the students "collaborate excessively". Having completely forgotten how things worked when they them selves were studying for their own degrees university staff express extreme concern at the level of "cheating" going on among modern university students. This was of course not the case when they them selves were students... how the world has changed!! I wonder what would happen if you retroactively ran this software on assignments and reports handed in by people who earned their degrees 10 and 20 years ago (some of it, things like BSc and MSc reports must still exist) ??

  32. Sometimes you need smarter Teachers in CS. by Anonymous Coward · · Score: 0

    I remember one class, the stupid teacher would have the program posted to his website, but if you took of the CLASSName.HTML file you could get a listing of the directory, which had the completed programs for all the assignments. I had a friend in class that took the one of Teacher's program and handed it in as his own, and the teacher gave my friend a A on program, and I did it the hard way and got a B even though my program did everything that was needed. He even put a comment in the program saying he was using the teacher's code for the program. I hated the Teacher because he was never on consistent with the grades.

  33. How does a 'caught' student defend himself? by Anonymous Coward · · Score: 2, Interesting

    How does a student defend against a false positive in this environment?

    1. Re:How does a 'caught' student defend himself? by blair1q · · Score: 2, Funny

      You want to speak to the Law School.

      In CS, we just throw exceptions. If someone has written an intelligent handler, fine. If not, there's always a default.

    2. Re:How does a 'caught' student defend himself? by Piranhaa · · Score: 1

      Find the portion that was "plagiarized" and have them redo it. Or find another - similar way to do it?

      But put in those shoes, I wouldn't want to rewrite it. So, the answer is still up in the air. Perhaps it depends on how much is identical.

  34. Re:And then they check it? by pclminion · · Score: 1

    If you're not looking at the code, how are you actually grading?

    The same way code is checked in industry: unit testing. Unfortunately, this leads to a binary "pass/no pass" kind of grading, but at least it bears some resemblance to industry.

    How can you help individual students improve their coding styles?

    I can't believe I'm saying this, but computer science isn't the place to learn coding practice. Good coding style and architecture is an engineering problem, and should be taught as an engineering discipline. Not to mention, most of the instructors in CS aren't very good at it themselves, and wouldn't teach anything particularly helpful anyway.

  35. Peers Pressures & Context by mindbrane · · Score: 2, Interesting

    Our big brains are deeply tied into our social matrix. Our value systems, our ethics and our morals, echo within our social system and inform our actions. Context informs values and actions. If disciplines like the hard sciences advertise their wares as facts and require students approach their studies with a "just the facts" attitude then that context will lend itself to a cut and past approach to homework that will more readily accommodate obvious borrowings from other students. If you're in an arts programme and your task is to display imagination and your core inner values in a medium and venue that accentuates individuality and creativeness then, ceteris paribus, it's more likely that context will not only encourage innovative output in homework but also encourage a more guarded attitude toward a peer borrowing your ideas. If you're a C.S. student and the world around you is rife with computer hacks and the news about those hacks inform you that you should be able to not only understand them but, possibly, be able to come up with something similar or better than to a considerable extent the ethics that inform your homework production will reflect the same ethics that inform the hacker culture.

    If as educators you advertise your discipline as an empirical activity scrutinized by peer review then undergraduates just trying to fill out their curriculum with a few tasty bits for their upcoming resume are likely to think, well it's just facts, cut and paste. Let it wash out in the exams.

    --
    ideopath @ play
  36. I suspect that it isn't just that... by fuzzyfuzzyfungus · · Score: 2, Interesting

    While it is almost certainly the case that comp sci assignments face the best algorithmic scrutiny(CS professors, shockingly enough, are probably more likely and better able than modern literature professors to subject them to such), there are similar algorithmic tools(albeit generally 3rd party contracted stuff) being used against writing assignments at many schools.

    I suspect that there are other factors at work, as well. I'll put out the following conjectures(whether you would prefer to say that I "reasoned from first principles" or "pulled them out of my ass" is at you discretion):

    1. Intro level courses, in all areas of study, will have higher rates of cheating than later courses. Two basic reasons: Intro level courses are much more likely to be mandated under "core curriculum" or "breadth requirements" or whatever the institution's term for the concept is. This makes them much more likely to have a substantial population of students who are deeply disinterested and/or very poorly suited to the subject. People who don't care, or who can't hack it, are the ones with the strongest motives to cheat.

    2. The level of cheating, broadly speaking, will reflect how profitable the area of study is. Other than the accolades of your tiny group of peers, the rewards for being a world-renowned expert in late-middle Assyrian civic structures are basically fuck-all. If you work hard for a decade+, and get lucky, you might get a steady but not-especially lucrative tenured position, maybe a few advances from books, and that's about the best case. Therefore, only people with a genuine enthusiasm for the subject will bother to take more than "Intro to World History 101". There won't be zero cheating(putting your name on the output of your toiling grad students, for instance, is practically a best practice); but there will be less. Things like law, medicine, business, CS(more before the bubble burst than now; but still some) offer relatively good monetary rewards, and so are more likely to attract people who have comparatively little interesting the the subject and just want the diploma. You will therefore expect higher levels of cheating.

    3. The level of cheating, broadly speaking, will reflect the student body's belief about "how relevant" the academic material is to the goals that they seek(this is partly covered by #2; but goes more broadly than that). If you, say, want to make it as an English professor, or in Real Serious Math, cheating is largely counterproductive. You learn to write by writing, so if you skip much of the writing, you won't know how to write at the end of the course. You gain facility in math by doing, so you won't be facile if you cheat rather than work. If, though, you are sitting through CS, with visions of being a .com millionaire(or even just a workaday java monkey) dancing in your head, you'll be thinking "why do I need to know this crap about NP complete Turning machines and O complexity and stuff? I just want to write Facebook 2.0!". People smarter and/or wiser than you may well suggest that you are wrong; but you will still be tempted to cheat your way through the "irrelevant" material.

    I suspect that Intro CS sits at the intersection of the worst of both worlds. On the one hand, since it's an intro course, you get all the people who aren't really cut out for it learning the hard way that programming isn't as easy as playing video games, even though they both involve computers, who then freak out and start cheating(either to pass at all, if they are really hopeless, or to pass without cutting into their drinking time too much). On the other hand, you have all the people who are seeking Technology riches, and don't want to hear this ivory-tower-crap, they just want to write some programs and get a job.

    1. Re:I suspect that it isn't just that... by Zerth · · Score: 1

      The university my sister went to added an Intro to Java requirement to liberal arts majors halfway through her stay. Horrible, horrible idea. Even with rampant cheating, GPAs tanked and they scrapped it after two quarters.

    2. Re:I suspect that it isn't just that... by buddyglass · · Score: 1

      I'd mod this up if I hadn't already commented.

  37. Re:And then they check it? by martas · · Score: 3, Insightful

    wrong. they may still look at the code for grading. but catching cheating is a much harder problem: in terms of complexity, grading is O(n) while verifying for similar submissions is O(n^2) or worse. also, in big classes you may have multiple TA, each grading a subset of the submissions. hence may be impossible for them to find such similarities.

  38. At least we have American Idol (right?) by abbynormal+brain · · Score: 1

    We are arguing for arguments sake without more data. Is this "rise" based off comparisons of data that were gathered in the same fashion (I.e., computerized results vs computerized results or computer vs manual)? Either way, how do you measure the nature of success or growth? (Rhetorical) ... with the revolutionary and tangible results (I.e., transistor, vaccines, space exploration advancements, LHCs, etc).
    It seems we'll reap the reflection of our values down the road when our science hopefuls have a backup career with American Idol.

    --
    L'esperienza de questa dolce vita (The experience of this sweet life) - Dante Alighieri, The Divine Comedy
  39. In the real world by olddotter · · Score: 1

    How much of that would be frowned upon in the real world? If you can find an example on a web site, your manager isn't going to care if you lift it. As long as it doesn't cause a IP lawsuit. In fact, for probably 20 years since the introduction of object oriented design, the industry has preached "code reuse."

    1. Re:In the real world by bieber · · Score: 1

      You're kind of missing the point. Obviously in the real world you're not going to code a linked list from scratch. In school, however, you're there specifically to learn how to do things like coding a linked list from scratch. That's why "plagiarism" and "copyright infringement" are two very separate things. Sharing code back and forth between willing parties is perfectly reasonable and common in real life. In academia it's forbidden because you're supposed to be learning how to do things on your own.

    2. Re:In the real world by Anonymous Coward · · Score: 0

      The industry also preached "don't innovate - buy the startups that do, or copy from Xerox."

    3. Re:In the real world by Vasheron · · Score: 1

      Your comment is essentially correct, but school is not industry. The point of education is the pursuit of knowledge and personal excellence. How does copying code from a website in order to satisfy the requirements of an assignment fit in with those objectives?

  40. Kobayashi Maru by mswhippingboy · · Score: 1

    Cuz Captain Kirk showed them that cheating is not really cheating. http://en.wikipedia.org/wiki/Kobayashi_Maru

    --
    Sometimes the light at the end of the tunnel is the headlight of an oncoming train.
    1. Re:Kobayashi Maru by VGPowerlord · · Score: 1

      The same Kobayashi Maru that nearly got Kirk expelled (from Starfleet Academy) for tampering with in the latest Star Trek movie?

      --
      GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
    2. Re:Kobayashi Maru by mswhippingboy · · Score: 1

      Ah, but "nearly" is the keyword here.
      The end result is that he wound up becoming the youngest captain in Starfleet history - and eventually Admiral. Not exactly an admonition for cheating.

      --
      Sometimes the light at the end of the tunnel is the headlight of an oncoming train.
    3. Re:Kobayashi Maru by unknownroad · · Score: 1

      The same Captain who was promoted straight up from Cadet without even graduating from the academy? What a wonderful role model of entitlement.

    4. Re:Kobayashi Maru by TheRaven64 · · Score: 1

      And it's reflected in the real world. Compiler design, for example, is all about cheating. Optimization is about cheating without getting caught - doing less work that the programmer told you to do, without his noticing by getting the wrong result.

      --
      I am TheRaven on Soylent News
  41. What is this "sense of entitlement"? by Anonymous Coward · · Score: 3, Insightful

    I'm European-trained, but working as a visiting professor in the USA. I hear a lot of people here throw out the "sense of entitlement" phrase, and it's almost always when talking of today's students.

    Based on my experiences here and in Europe, I don't think that they exhibit that at all. Most of the students I work with put forth much effort, and don't expect anything other than to be taught the material properly, helped when needed, and graded fairly.

    The only people I see with a "sense of entitlement" are the Boomers (I think that's the American term for people who are 50 to 65), and Indian students.

    The Boomers always have the most absurd expectations, from getting the best parking spaces (even though they've been at the college for less time than even I have) to getting college-funded coffee makers in their offices to getting raises several times a year, while also getting more vacation time. The unionized folks are by far the worst. Even though some of them are merely janitors, with no special training or education beyond high school, they expect a wage and benefits in excess of those that we get as professors.

    The Indians, and by Indians I mean the children of wealthy upper-class families in India, are perhaps the worst. Back in India they got everything and anything they wanted, I suppose. And they were used to treating others as being "lesser", due to their social classes. They bring this with them to America when they come to study here.

    1. Re:What is this "sense of entitlement"? by techno-vampire · · Score: 1
      The only people I see with a "sense of entitlement" are the Boomers (I think that's the American term for people who are 50 to 65), and Indian students.

      Not exactly, although it's easy to see why you'd think that. Boomers, or, to be more exact, Baby Boomers, are those of us born during the so-called "Baby Boom," the period from 1946-1964 when the birth-rate skyrocketed after WW II. Our parents were "Children of the Depression," and had a tendency to give their children all the nice things they'd never had when they were children, which did give some of us the sense of entitlement that you see now.

      --
      Good, inexpensive web hosting
  42. I see a whole bunch of people by BigJClark · · Score: 1


    I see a whole bunch of people posting the most basic "for loop"

    If this is your opinion of what CS is, and thats all there is to cheat on, then are you ever way off base. Although I grew up a "basement coder", I was pleasantly surprised that my university education consisted, in addition to the top three (programming, networking, databases), philosophy of pirating, algorithm analysis, history of databases, research into certain figures (Alan Turing, among others), future of AI, etc. I still see many areas for potential misconduct.

    It's not about basic flow control.

    --

    Hi, I Boris. Hear fix bear, yes?
    1. Re:I see a whole bunch of people by Nadaka · · Score: 1

      First year cs is the topic of the article. First year cs is c++ or java and calculus with the rest of it filled out with general studies.

      You don't get to the meat and bones of algorithms, design, compilers, operating systems, language theory, ai, ethics, etc utill at least year 2 or 3.

  43. Simple Answer by codepunk · · Score: 1

    Lack of talent, this is a profession that can be taught but unless there is a underlying talent and real interest in it the student will not succeed. The best programmers and system administrators are born with the genetic makeup and thinking patterns required to succeed in this field.

    --


    Got Code?
  44. Methinks many are missing the point by mschuyler · · Score: 4, Informative

    The many examples here of array declarations or variable initializations are not sufficient to get you pegged as a cheater. But when you get multi-line programs of dozens of lines that are precisely the same, even including comments, THAT will ring alarm bells. I don't think anyone writing a simple 'Hello, world' program that is exactly like mine will get called out. If you turn in a hundred line program full of regression equations to plot the Fry Readability Index in a matrix graph that is precisely like mine? Busted!

    --
    How about a moderation of -1 pedantic.
    1. Re:Methinks many are missing the point by Anonymous Coward · · Score: 0

      The many examples here of array declarations or variable initializations are not sufficient to get you pegged as a cheater. But when you get multi-line programs of dozens of lines that are precisely the same, even including comments, THAT will ring alarm bells.

      When did you stop working for SCO?

    2. Re:Methinks many are missing the point by mschuyler · · Score: 1

      When did you stop beating your wife? Oh, wait.... This is /. When did you stop beating your, oh, never mind.

      --
      How about a moderation of -1 pedantic.
    3. Re:Methinks many are missing the point by Anonymous Coward · · Score: 0

      At my school, they used MOSS, which they claimed checked program structure, and completely ignored string comparisons, so variable names and comments were totally irrelevant.

      My point is that, yes, there is a LOC threshold where MOSS will fail because any two approaches will almost invariably be different - BUT, that threshold is probably a lot higher for MOSS than it is for simple string comparison. I would guess that a 100 line C program based on a few simple CLI I/O steps WOULD be enough to trigger MOSS.

      And I don't know what your Fry Readability Index is, but if it is presented in the lecture as a standard algorithm, there may be an even BETTER chance that everybody will be using the same approach.

  45. "Cheating" is expected in the real world by deisama · · Score: 1

    One of the greater contrasts between work and college.

    At work, you're expected to do all the things they consider wrong. If you can save time by finding the solution online, or delegating the task to someone else, than that just gives you more time to work on the things that haven't already been solved.

    In fact if the first thing you do when you have a problem ISN'T googling the problem online to see if there's already a solution, than I'd have to seriously question your skills.

    After all, the whole point of programming is to make life easier. Not over complicate it.

  46. I'll Confess... by vanderbosch · · Score: 1

    I definitely owe at least half my degree to my people skills, rather than to my academic ones.

  47. Much easier to catch by cfulmer · · Score: 4, Interesting

    So, back in the 'day (1989 or so), I was grading for the first data structures course for computer science majors, and wrote a very simple program that stripped comments out of programs and then counted the number of semi-colons, colons, parentheses and so in in each program's source code, then sorted them. When two programs were sufficiently close, I compared them side-by-side and came up with more obvious cheaters than I was expecting. (Including one from two roommates who happened to be alphabetically next to each other.) If those programs have advanced *at all* in 20 years, they're now comparing parse-trees.

    The problem is that computer programs have structure, and it's impossible to copy somebody else's work and then 'only' replace the underlying structure. Instead, cheaters reorder their code, add a bunch of comments, rename variables, change indentation and so on. That sort of thing doesn't change the structure, so it's easy to catch.

    And, yes, this method only works on sufficiently large programs -- there are only a handful of ways of doing "Hello World." But, nobody cheats on "Hello World."

    1. Re:Much easier to catch by HiveMind118 · · Score: 1

      But on the other hand if you restructure the code using different abstraction points (printf outside of the function call instead of inside of it, and looped outside instead of using recursion in the function for example) then this method will bet by most if not all code checkers. This also implies a level of knowledge of the program that is above that required to change comments and spacing. If I can't figure something out, I'll go find a solution, then understand the solution, then rewrite it. This could be considered plagiarism but in the end I still learned what was needed, where is the line drawn really?

    2. Re:Much easier to catch by EMiniShark · · Score: 1

      Instead, cheaters reorder their code, add a bunch of comments, rename variables, change indentation and so on.

      Some do. Others do what what two of our students did, who I will call Tom and Jerry. The project involved writing some unit tests, and Tom had written a test for a function that took a string as its argument. For the test string, Tom used his name. When Jerry copied Tom's code verbatim, he changed a few things around, but made sure not to mess with the test code. It was pretty easy to figure out who Jerry got his project from. I couldn't believe it.

    3. Re:Much easier to catch by cadience · · Score: 2, Insightful

      nobody cheats on "Hello World."

      *Everybody* cheats on Hello World. After all, that IS the point of hello world.

    4. Re:Much easier to catch by dasheiff · · Score: 1

      >And, yes, this method only works on sufficiently large programs -- there are only a handful of ways of doing "Hello World." But, nobody cheats on "Hello World."

      How would you know?

    5. Re:Much easier to catch by truesaer · · Score: 1

      Well there are various approaches to looking for identical code. For example, it's entirely likely that a compiler will generate the same code for a program with source that just adds minor variations like moving a printf from one block to another, etc. If you run your cheat detection on a compiler's intermediate code, or output assembly it's another way of detecting plagiarism. And you could also set a threshold, so that code that is 90% the same gets a review instead of needing to be identical. I'm not sure exactly how different universities go about it, but I'm sure through trial and error they've found pretty good methods. I'd be interested to see studies to see if there are cases that appear to be clear cheating that in fact aren't. But I bet the vast majority of people who are found to be cheating after the combo of automated and manual review did in fact cheat (it's so easy to do after all, and those deadlines just keep coming in engineering school...)

    6. Re:Much easier to catch by Anonymous Coward · · Score: 0

      Believe it or not: when my friend took intro to programing, the first homework was to change the Hello World program to print 42 instead. One student did pay him $20 for a copy of his homework...

    7. Re:Much easier to catch by Anonymous Coward · · Score: 0

      Probably 99% of people cheat on Hello, World!, in the sense that nobody who is actually writing Hello, World really knows how to write Hello, World without copying it out of a book. But that's missing the point of Hello, World anyway, since the goal there is to get someone with a compiling program that does something.

    8. Re:Much easier to catch by Anonymous Coward · · Score: 0

      And, yes, this method only works on sufficiently large programs -- there are only a handful of ways of doing "Hello World." But, nobody cheats on "Hello World."

      Actually, there are more people who cheat on "Hello, World" than on the advanced courses. And most of them drop out by the end of the 1st year.

      In any case, you shouldn't be grading homework in CS in the first place. The Final Exam is all that matters, and the "homework" is really just a series of example questions for the Final which are spread over the course of the semester. If the homework is of value, then those who do it will have an advantage. If someone can cheat on every homework assignment & Ace the Final, then the homework was completely pointless to begin with.

    9. Re:Much easier to catch by Philip_the_physicist · · Score: 1

      If those programs have advanced *at all* in 20 years, they're now comparing parse-trees.

      I know of at least one program which does this, and uses tree manipulation to find the largest possible matches after each move, and giver a higher value to matching tree segments with fewer changes. It was a spare-time project by one of the profs at my university, based on the GCC parse tree so it can be used for C, C++, and Java (students in the advanced subjects with Lisp, prolog and so on were more trusted, on the basis that cheating wouldn't allow them to pass anyway).

  48. yet again... by Anonymous Coward · · Score: 0

    This is not the first time I have seen this article on /. but hope it is the last. As others have pointed out, CS students cheat for the same reasons that every other student cheats. It just makes sense that CS professors have better tools and arguably better material (quickly searchable and compartmentalized source code) for which to catch cheaters.

  49. Peer Help by Ohio+Calvinist · · Score: 1

    When I was a CS student in the introductory classes, I had a lot of prior programming experience. I had a few peers who wanted to work together on projects (more-or-less do our own work, but they needed more hand-holding than was given by the instructor.) Simply by helping debug their code or explain "how-and-why" I tackled a problem in a specific way naturally caused their work be conceptually like mine. Even discussing the problem colored their solution toward my implementation.

    It didn't help that the instructors self-written textbook was for Turbo C++ and we were the first class to switch to Visual C++ either.

    What I found disturbing was how many students could pass CS 101 (with A's even) with rote memorization of the instructors programs and samples. They had no clue what was going on but could regurgitate what the instructor had used in their examples and do well (at least for a while). Students with experience (e.g. me) had issues because we used OOP or stdio, or Hungarian notation when the instructor was looking for iostreams and was hell-bent on variables 8 characters or less with no capitals.

    --
    Forgive my spelling from time to time. I'm often posting during short breaks.
  50. Didnt they just do this article? by Aeros · · Score: 1

    I could swear they did this same article about 3 months ago on here. And yes im to lazy to search for it.

  51. Re:And then they check it? by GrayNimic · · Score: 1

    This was my biggest frustration in college CS. We got zero feedback on our code - you got a numerical grade, and that was it, most of the time. Rarely, you got back a categorical breakdown of that number (the points for 'correctness', 'comments', etc), and only a handful of times in the entire major did I actually get back comments (usually a relatively useless one-liner, such as "good comments", or my favorite, "this is so almost wrong, but not"). Then, as since, I've relied on my highschool experience for external suggestions and feedback - my highschool CS teacher went through and marked up every assignment turned in, giving you huge amounts of feedback on your coding practices. College CS was a huge waste on that front, which was a major dissappointment.

  52. Re:And then they check it? by slimjim8094 · · Score: 1

    In my algorithms class, the code is submitted online and run through a bevvy of JUnit tests that we don't have access to, automatically graded using a custom framework assigning each test a point value, and logged in a database. They do spot-check certain people that they're curious about, outliers, and anything flagged by the cheat program.

    In the TA-run programming labs of about 15 people, they do look at coding style - but they're more of the opinion that if it works and doesn't look like Perl, it's fine.

    In any case, try implementing A* with a poor coding style and then debugging a problem. You learn really fast how to code properly.

    --
    I have developed a truly marvelous proof of this comment, which this signature is too narrow to contain.
  53. Forgive me for pointing out the obvious... by Anonymous Coward · · Score: 0

    "...thanks to automated tools that professors use to detect unauthorized code reuse, excessive collaboration and other forbidden ways of completing homework assignments."

    Anyone working in industry who wants to reinvent the wheel every time they write code is a damned fool. Is it not the goal of a good programmer to write code that can be easily reused, and to work well as a team? These students are just practicing a workflow that reflects reality. If I were teaching a CS class, I would give points to students for reusing code and for collaborating, provided they could explain what each section of code did.

  54. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  55. Replacing varnames does not help by Anonymous Coward · · Score: 0

    A few years ago I was a computer science TA at UW and have used the above mentioned tools to detect plagirism. Replacing variable names and rearranging your methods doesn't help, because the tool builds abstract syntax trees (similar to what a compiler does) and compares portions of the subtrees to each other. When I TAed the Operating Systems course, we had one incidence of cheating on the first project. There were two students whose code was reported to have a 98% match, and it was blatantly obvious that they cheated - their submissions had different variable and function names, and the functions were rearranged, but otherwise their code was exactly the same - to the point of making the same mistakes in the same places. Nobody else's submissions had a match above 50%. And the submissions that did have matches in the 40-50% range were all in the "obvious" parts of the code - i.e. there are only so many ways to write a loop which prints the contents of an array, etc - so they were identified as false positives by manual examination.

    After they were caught cheating and were given the option to be reported to the Dean for plagirism or drop the class (they dropped the class), nobody else cheated (or at least, got caught cheating) for the rest of the quarter.

  56. Quis custodiet ipsos custodes? by Anonymous Coward · · Score: 0

    6 Years ago, when I took my first college course in Java, my professor automated the checking of application output. We'd have a few hundred lines of output and if even one of them was off you started losing a point per line. So if you coded in extra whitespace output in your application you could receive a negative score. I couldn't deal with this guy after a few more courses where in one situation I received a -546 score that he was unwilling to review.
    Now I'm a CCNA...

    Makes me wonder though who is writing these automated checkers. How good are they at coding?

  57. Re:And then they check it? by drekhan · · Score: 1

    This is very much correct. When you have 40+ assignments to grade it's not always easy to remember "Hey paper #37 looks a lot like #2". Likewise extremely large classes with multiple TA's means it's hard for one TA to catch someone that cheated off a student being graded by a different TA.

  58. Why do they cheat? by Locke2005 · · Score: 1

    Programming assignments are very time-consuming, especially if you are unfamiliar with the language. Much more so than any other subject I took in college.

    I was a computer lab assistant, and there was a very easy way to deal with this problem: if you see 2 or more similar programs, ask each of the students to explain how the program works. Typically, only the original author can explain why everything was done that way. If somebody can't explain how and why the program they submitted functions, then they deserve an F.

    --
    I've abandoned my search for truth; now I'm just looking for some useful delusions.
  59. These autodetectors have been around since 1997 by Anonymous Coward · · Score: 0

    Georgia Tech has had cheat-finders since at-least 2001 (some reports suggest 1997) I was at Tech in 2001 and almost 200 students were accused of cheating in the Introductory course. Some of them were acquitted but most pleaded guilty and dropped 1-2 letter grades.These tools are used to compare chunks of code between 2 submissions and check for strong correlations. Also the cheat-finders were not executed on trivial assignments.

  60. Peer Programming by WRX+SKy · · Score: 1

    Isn't this mentality sort of anti-agile / anti-peer-programming? I would think it would be encouraged since a large portion of the industry is moving in that direction? I remember being accused of cheating in an EE class because my lab partner (my roommate) and me had the same graph stapled to our assignments. The reality is that we sat in front of a laptop in the living room assembling the data together... which, to this day, I do not consider cheating.

  61. It isn't necessarily cheating by Anonymous Coward · · Score: 0

    Maybe not with simple problems, but for more complex ones, where code similarities would become suspect, I would not consider it cheating if student collaborate on the solution. This is how things work in the real world. At least it is how they should work. Students who study together and solve problems together are much more likely to come away from the exercise with a good understanding of the course work, as well as valuable real-world people skills.

  62. I've actually seen that happen by Moraelin · · Score: 1

    Well, back when I was in university they didn't use these newfangled tools, or at least didn't advertise it, but I've seen an uncanny example of that in an exam.

    There were these two people who... well, what they handed in, looked _identical_. Not only the same program, but same indenting, same variable names, heck, same line breaks in their text part. Cheating in an exam doesn't come any clearer than this, right? They must have copied from each other, right? Well, the professor thought the same too. Wanted to flunk both of them.

    The problem is that these two guys had sat in the diagonally opposite corners of the room. They had been as far apart from each other as you can physically get within the constraints of the given space. Took a while to convince the professor of that, and I must say, seeing the sheets of paper side by side was enough to not just make the professor's point, but almost make me question my memory too.

    --
    A polar bear is a cartesian bear after a coordinate transform.
    1. Re:I've actually seen that happen by clone53421 · · Score: 1

      Perhaps these are obvious questions, but were the computers networked? was there any way to have predicted the question and brought the work into the class with them (floppy)? etc.

      --
      Alexander Peter Kristopeit bought his basement from his mommy for one dollar.
    2. Re:I've actually seen that happen by Moraelin · · Score: 1

      It wasn't on a computer. It was pen and paper. If it were nowadays, I'd say some kind of phone trick, as that kind of cheating is becoming the favourite kind, but we're talking a year when cell phones were rarer and bulkier and such things as tiny bluetooth headsets didn't exist. Bluetooth wasn't even invented yet, for that matter.

      If there's a simple explanation, I'd love to know it, but it's not as trivial as bringing a floppy.

      --
      A polar bear is a cartesian bear after a coordinate transform.
    3. Re:I've actually seen that happen by Chowderbags · · Score: 1

      Person A takes two test sheets and fills them out the same, one in his name one in Person B's name. Person B takes a test sheet and writes down some random name and scribblings (or just folds it up and sticks it in his pocket).

  63. What's the point? by Anonymous Coward · · Score: 0

    I don't know whether their statistics are correct or not, but computer science is one of those areas where cheating only hurts the cheater. If these people are taking it as an elective, who gives a shit? The only people this should be of concern is to people looking at it as a career option. If you're in it for the long haul and you cheat your way through, then on the other side you're going to be fucked because people will realize you don't know anything. My feeling has always been that schools shouldn't really concern themselves with cheating. The good students will want to learn the material and the bad students will look for shortcuts; this is true from elementary school on up through college. Hell, this applies to life in general. These people are adults and have to start taking responsibility for their actions. If they want to cheat their way through school, I say let them; they're the ones who will end up suffering in the end. Alternatively, life has proven again and again that assholes more often than not rise to the top; why should school be any different? Bottom line is that it doesn't matter; people never hold assholes accountable for their actions and so they will continue to be assholes. Such is life.

  64. Anonymous Coward by Anonymous Coward · · Score: 0

    The truth of the matter is most people enrolling in CS these days aren't the same type of people who used to enroll. I enrolled and didn't goto class because I was actually INTERESTED in programming and was WAY beyond what they were teaching. As a result I got A+s in the class without studying at all.

    The kind of people enrolling these days don't know a damn thing, entered because they heard programmers make money, and generally suck. I've seen these kinds of students before. They cheat and get away with it MOST of the time which ruins it for those of us who actually do their own work. At first I did't care since I was always getting A+s but in advanced courses like computer vision I would get a B and those asshat cheaters would get As and A+s since they submitted stolen material.

    I absolutely hate CS cheaters.

  65. How many are foreign students? by Anonymous Coward · · Score: 0

    "Anecdotally, we see a larger incidence of cheating among foreign students then domestic students, and I think part of that is that they are under extreme pressure to do well and succeed," Pitt says. "That pressure contributes to the idea that they need to do as well as possible even if it means taking some shortcuts."

    From my experience in the 90s, there was always massive cheating among foreign students.

  66. why do you think it would be more efficient? by Chirs · · Score: 1

    Why do you think testing "less than 11" would be more efficient than testing "less than or equal to 10"?

    Many cpus (even risc ones like MIPS and ARM) have explicit instructions for testing "less than or equal to".

    1. Re:why do you think it would be more efficient? by omglolbah · · Score: 1

      Hell, the compiler should optimize such simple things regardless...

      That, and reducing the readability of code is baaaad...

    2. Re:why do you think it would be more efficient? by SwordsmanLuke · · Score: 1

      Why do you think testing "less than 11" would be more efficient than testing "less than or equal to 10"?

      These go to 11. /nigel

      --
      Any plan which depends on a fundamental change in human behavior is doomed from the start.
    3. Re:why do you think it would be more efficient? by blair1q · · Score: 1

      Now they do.

      C is nearly 40 years old, and the microprocessors of today have been evolved to make common software constructs more efficient.

      So things like `=' may be optimized down to single instructions, if your compiler is savvy to the CPU's advantages.

    4. Re:why do you think it would be more efficient? by xZgf6xHx2uhoAj9D · · Score: 1

      I can't think of any that don't. I cut my teeth on PDP-11 assembly, which is 40 years old and has a BLE instruction. I'll admit I've only coded in half a dozen architectures or so, but I've yet to come across one that doesn't do branch on less-than-or-equal.

    5. Re:why do you think it would be more efficient? by blair1q · · Score: 1

      Checked the PDP-8. It will do less-than-or-equal by literally combining the opcodes for less-than and equal in a way that or's them together.

      So okay. I have no idea why Ritchie didn't know that, and chose to do things the way he did. Probably momentum from some other system he'd worked on before he came up with C.

    6. Re:why do you think it would be more efficient? by blair1q · · Score: 1

      Wait. Check that. The comparison operators for PDP-8 are all microcoded. I bet that if you combine two of them together it takes more cycles to get through the microcode. So a less-than-or-equal might take 2-3X as long as a less-than, while both occupy only one instruction in your object code.

    7. Re:why do you think it would be more efficient? by dudpixel · · Score: 1

      in many cases it is better to use "less than or equal to 10", or more specifically, to use 10.0 - where you are dealing with floating point numbers.

      This is even more important when using dynamically typed languages such as python or perl.

      --
      This seemed like a reasonable sig at the time.
  67. Who is plagiarizing? by Anonymous Coward · · Score: 0

    And where did THEY get the code to look for cheaters? Probably plagiarized!

  68. When I was a TA.... by grumpyman · · Score: 1

    I caught in numerous occasions that student copied code from others, in some cases they bother to change the variable names, some change indentation, and others without even bother to change the header (name, student ID).

  69. why didn't you talk to the prof/assistant/instruc? by Chirs · · Score: 1

    Most people in a teaching role have office hours. Why didn't you go talk to them about what should have been done differently?

  70. Totally misleading article (possibly troll) by Anonymous Coward · · Score: 0

    I don't want to burst your bubble guys, but most programs (biology, physics, liberal arts, etc.) require their students to take 1 (one) introductory course in computer science. Most students in these "introductory" classes are not even taking computer science... and since they suck at it, the incentive for them to cheat is greater.

    The person who wrote the article hasn't pushed his reasoning far enough.

  71. Some cheaters get caught the old fashioned way... by Anonymous Coward · · Score: 1, Funny

    Me and a friend had taken a class on operating systems and gotten very good grades in it, especially the project, so we were invited to become graders for next semester. We accepted.

    So one night we're grading a project, and my friend comes over and asks me "Hey, doesn't this look a bit familiar?".
    Turns out a group had managed to get their hands on OUR code (it was a group of 5, and now we know who probably leaked it out) and plagarized it line for line. I am not sure if that class had automated plagarization checking, but if not, only we would have caught this since, well, we wrote that code.

  72. Is this a joke? by Anonymous Coward · · Score: 0

    Seriously? The exact same article, word-for-word, has been published before. Now let me go find it...

  73. What's Plagiarism by Anonymous Coward · · Score: 0

    Reusing open Source or free software code snippets is the hallmark of modern coding. Is it plagiarism to re-use something that is meant to be re-used and for which the author asserts no proprietary right?

    It seems like there needs to be a new standard here.

  74. Automated tools stink by russotto · · Score: 1

    Yes, they'll catch the obvious cheaters. They'll also catch a lot of honest people. When I was an undergrad, there were class requirements for formatting, and quite a few of us knew about "indent". So spacing and indentation would be the same. Variable names tended to be the standard i,j,k which the texts used, along with the ever-popular "answer", "sum", "result", etc. And even the some of the errors people make are pretty common -- fencepost errors, for instance. So I think you're going to catch three classes of people

    1) Stupid cheaters (who copy obviously wrong programs which don't even compile)
    2) Smarter cheaters (who copy perfectly good programs and change the identifying information)
    3) Honest people who know what they are doing (who write programs similar to each other).

    I don't see any way an automated system (or a human, even) could distinguish between 2) and 3) just by looking at the code.

    1. Re:Automated tools stink by An+Onerous+Coward · · Score: 1

      That's only a problem if "identifying apparently similar code" is the end of the cheater-catching process, not the beginning. If it is, then the instructor is dropping the ball.

      There are ways to distinguish between groups two and three. The most straightforward is to simply ask, "Is this your own work?" Many cheaters will admit that it's not. If they insist that it is, you can ask for witnesses or source control logs, ask them to explain how the program works and what variables i, j, and k are doing. If the results don't satisfy you one way or the other, you can ask them to modify or reimplement some part of the code in a controlled environment.

      I don't think that these plagiarism checkers have caught up a large number of students who actually did their own work. Were that happening, I think a few such people would have written "it happened to me" stories in these very comments.

      --

      You want the truthiness? You can't handle the truthiness!

  75. Re:And then they check it? by Anonymous Coward · · Score: 0

    Good coding style and architecture is an engineering problem, and should be taught as an engineering discipline.

    Why?

    The engineers don't care, so long as the code works. The structuring of the code is a CS problem. The code monkeys can worry about that. The engineers only care that the math works.

  76. Easy assignments... by Oxford_Comma_Lover · · Score: 1

    > It's the easy assignments where that might be tempting--they're so mind-numbingnly dull.

    Compilers! Supposedly one of the hardest courses in the department, it was boring and wrote and no more than long lines of code implemeting a particular compiler with nearly no room for creativity. We even had to remove some of the only cool stuff we did on the project--where by cool I mean insane and kind of awesome--like dynamically rewriting class instance pointers. It was wonderful, but of course it made the code helpelessly compiler-defendant. So we were drones.

    Yes, it's not what you'd call robust code, but we weren't going for robust code. We just wanted to write fun code that happened to do what the assignment was.

    --
    -- IANAL, this isn't legal advice, and definitely isn't legal advice for you. Also, Squee!
  77. Desperation by Anonymous Coward · · Score: 0

    In English or History, you can submit an essay full of BS and expect to get a passing mark. In Programming 101, you are out of luck if your program doesn't work.

    You will submit an English essay and not know that it is BS and won't pass. In Programming 101, it is painfully obvious that your program doesn't work and you won't pass. The desperation factor for programming is higher than just about any other course I can think of. If you copy someone else's code, you might not be caught. It's worth a try. If they catch you, you flunk the course but you were going to fail anyway.

    1. Re:Desperation by darkwing_bmf · · Score: 1

      I always liked CS because you knew before you turned in the assignment whether or not it would work, and if it didn't work you could try to figure out what was going wrong and fix it. With English or History you weren't always sure which "key words" the professor was looking for.

  78. Why NetworkWorld cheats by PwnSnake · · Score: 2, Funny

    I've seen this exact same article, at least parts of it word-for-word, around before... no joke.

  79. There are cheaters in every field by izomiac · · Score: 1

    As the summary mentions, every field has cheaters, and there probably aren't tremendous differences in percentages between them. It makes sense evolutionarily, since it's beneficial to be a stealthy cheater. I've observed it personally at all stages of my academic career, and while it's more shocking at higher levels, I don't think the prevalence is decreasing.

    I don't understand the mentality, but apparently some people just don't see a problem with academic dishonesty. The only justification that I have heard is that "everybody" [uses stolen tests / steals lunches / copies assignments / lies about credentials / "pirates" audio lectures, textbooks, and software / etc.]. It's sickening, but this trend continues even into professional careers.

  80. But that's the it should be! by mimiru · · Score: 1

    Why redo the computation when you can utilize the Cache? I thought that's the we should do things in CS.

  81. Go professors! by Seor+Jojoba · · Score: 1

    Please catch all of these sucky programmers before they graduate, my company hires them, and I have to work with them. Make them change their majors early to philosophy, animal husbandry, underwater basketweaving, or anything else. Especially, weed out the diligent and responsible types that have no knack for solving technical and logical problems. They can become project managers, which is also a high-paying job.

    I remember when programming was a calling, not just a career. Those were better days.

  82. MOD PARENT UP by Fastball · · Score: 1

    The freshman and especially sophomore level courses I took were far and away the most difficult. They also caused me to pursue a minor in C.S. as opposed to majoring.

    This includes curriculum requirements where grading on the curve meant scoring 40 on a test was an A. Yes, I'm staring at you sophomore physics. After my sophomore year, I didn't know up from down.

    Challenging coursework should still be engaging and stoke a young mind. Unfortunately, mine was more of the demoralizing kind.

  83. Re:And then they check it? by Ma8thew · · Score: 1

    Posting to undo incorrect moderation.

  84. Re:And then they check it? by nedlohs · · Score: 1

    Whereas when I taught, every single one of the 600+ student's submissions were hand marked for style (as well as machine marked for "gives the right answers to the hidden tests").

    Of course style was pretty damn simple - use a loop instead of copy pasting the same line 20 times, actually use functions and not one large main(), use sane variable names. Could probably have been mostly covered with some lint variant, though feedback from a person marking is useful in itself.

  85. Umm... it's required now? by drumcat · · Score: 2, Informative

    No one is saying that almost every major makes "Intro to computing" compulsory now. Why is it that we are surprised? The more you require people that aren't interested, the more they'll cheat. The more widely compulsory you make these courses, the more dumbed-down they are; the kids that are good are going to be lazy on purpose. Why not? Finally, you have tools to check that your History prof doesn't. Three very compelling reasons why there would be more cheating, not even taking into account the ease at which it is done. Yet, when these same kids get out in the real world, we call them EXAMPLES and REPURPOSING, and we tell them to COPY things out of books and sites that are KNOWN TO WORK. In reality, there's not enough cheating going on.

  86. Re:And then they check it? by Herms · · Score: 1

    When you're grading a large number of students you may not notice duplicated code unless you happen to go over the duplicates relatively close to each other. Furthermore, in the classes I TAed we had multiple TAs, and we would split the students amongst us. So even if two students' assignments were identical we still wouldn't necessarily notice, as different TAs might be looking at each one. Automated tools help even when you're already going over all the code manually.

    --
    ~Herms
  87. A one-liner, you say? by Logic+and+Reason · · Score: 1

    print "$_\n" for 1 .. 10;

  88. Re:And then they check it? by omglolbah · · Score: 1

    My teacher in "Introduction to programming, VB6.0" just required us to turn in the apps compiled to .exe files so he could just run those to verify that they worked.

    Oh god how much fun we had. "someone" *cough* wrote a little thing into their turned in work that installed a coo-coo clock.

    A piece of code that would, every whole hour, go "coo coo" and open/close the cd-rom...

    He did not figure out where it came from *cackles*

  89. Work smarter, not harder by Anonymous Coward · · Score: 0

    I knew I didn't want to be a programmer a week into my IT degree, so when I had to take an intro to C++ I paid a friend $5 for the homework, changed a few terms, then resold it to someone else for $10.

  90. Zero Tolerance by anorlunda · · Score: 1, Interesting

    I have a big problem hiring anyone who ever cheated on anything anywhere. Cheating on a test, padding an expense account, driving with a radar detector in the car; they all indicate lack of integrity. I need to be able to trust my co-workers.

    Therefore, I'm doubly horrified to contemplate the possibility of false positives. It is very hard to reconcile harsh treatment of cheaters, with the possibility of some being falsely accused without adequate opportunity to defend themselves.

    1. Re:Zero Tolerance by blair1q · · Score: 1

      This is different from the criminal justice system exactly how?

      Evidence exists before charges are laid. The machines don't create the evidence, they just highlight it; and the machines don't testify as to its accuracy, the teacher does.

      If you want the evidence impeached, you have to gut the teacher's credibility and competence. Hint: if the teacher says, "it's evidence because the computer says it's evidence," you win on competence, especially in a CS class.

  91. Devil's Advocate by element-o.p. · · Score: 1

    OK, TFS is saying this is an introductory comp sci class, so maybe I'm giving the students too much credit. There is value in learning to walk before you can learn to run, but...

    I personally would probably give extra-credit to such students. Researching the problem, finding an "open source" solution to the problem and writing modular code that can reuse already existing code is a big plus in The Real World (tm). One of the best pieces of professional advice I ever received was from a senior sys admin when I was but a wee green jr. sys admin: "Laziness is a virtue for a sys admin. Don't reinvent the wheel, and build things to be robust so you can do fun, new things rather than spend all of your time maintaining the things you have already built."

    --
    MCSE? No, sir...I don't do Windows. Yes, I am an idealist. What's your point?
    1. Re:Devil's Advocate by hockeyc · · Score: 1

      Yeah, but if you can't write the things you learn about in your introductory CS class you won't understand what you're copying anyway. People love preaching how The Real World (tm) works, but if people are coming out of college not KNOWING anything they can't even copy code correctly. Knowing how to do it is important. Actually doing it _again_ is not.

    2. Re:Devil's Advocate by element-o.p. · · Score: 1

      Agreed, which was the point of "TFS is saying this is an introductory comp sci class, so maybe I'm giving the students too much credit."

      --
      MCSE? No, sir...I don't do Windows. Yes, I am an idealist. What's your point?
  92. easy to spot by cowdung · · Score: 2, Interesting

    Cheating is usually easy to spot. Because not only do they use the same algorithms and the same sequence of code, but also the same spacing. For example:

    x = x +1;
    printf(" %d", x);

    Notice no space between +1, and 2 spaces between " , x". When you see this combined with the same essential algorithms. A high degree of similarity in the strings and in the comments.. the user has copied the code.

    Most students don't do a great job of covering it up.

    The article also mentions foreign students as being more likely to cheat. Note that cheating is fairly commonplace in high schools and even in Universities in many countries. Not all countries penalize students very harshly when caught. In some cases they only get points deducted or get an F in the assignment. So a culture of cheating emerges.

    (I know.. I'm an instructor in South America.. :) )

  93. Re:And then they check it? by LanMan04 · · Score: 2, Insightful

    That's why you use a token analyzer. You think CS profs do this BY HAND? They run all their students' source through a token analyzer looking for matching chunks. It's not hard.

    --
    With the first link, the chain is forged.
  94. Analysis of Algorithms, circa 1981 by Rene+S.+Hollan · · Score: 1

    I remember well an analysis of algorithms course I took around 1981. I also took the advanced graduate version of that course, from the same professor, in 1982.

    In the undergraduate course, much of the the work dealt with sequences, series, mathematical proofs, and, yes, analyzing algorithms in "big-O" notation (which required competence in the former).

    We were told up front that half the class would either drop out or fail. The professor would not accept assignments handed in late (even five minutes), and assign an automatic zero. We could collaborate on homework, but, if (say) three of us collaborated (and secret collaboration was likely to be detected given the nature of the assignments), we were expected to provide three novel proofs, implementations, etc.

    The course text was Donald Knuth's "The Art of Computer Programming". As I recall, much of the coursework for the undergraduate course was drawn from "Fundamental Algorithms" and "Seminumerical Algorithms" and the graduate course from "Sorting And Searching" (volumes 1 and 2, and 3, respectively), though there was some overlap.

    All this was disclosed early enough in the semester for students to reconsider another course.

    This particular professor was taken to making intentional errors in presenting the material, and berate students who did not catch them and speak up. Of course, pointing out an error that wasn't would be worse. Assignments in the graduate equivalent of this course always contained an unsolved problem in the field.

    We learned to study and analyze algorithms as if our very lives depended on it.

    This was not a required course for the Honours program. (Canadian Universities of the time typically had several specializations for undergraduate degree programs, and "Honours" was a particularly inclusive and difficult specialization among all the others -- basically, "all the other work and then some". One was also required to maintain an 80 or better course average over three years: the equivalent of being able to graduate "with honors" in other programs, either magna cum laude or summa cum laude. So to graduate "in Honours" meant you automatically graduated with honors.)

    But, a handful of us were real masochists for which a 4.0 GPA alone was not enough to distinguish ourselves. (Crap, you could get that in the much maligned "business" major.)

    I submit one does not see this "love of the art" anymore.

    --
    In Liberty, Rene
  95. Oh how I have waited for an article like this! by PmanAce · · Score: 1

    Back in the day when I did my Computer Science degree, (around 60 students, small department) there was a eastern european girl that was notorious for copying stuff. By the end of my first year, her new nickname was CopyMe.pas (first year code was done mainly in Turbo Pascal) given to her by me which stuck around till she left. I wonder if she graduated.

    --
    Tired of my customary (Score:1)
  96. How many of the cheaters aren't CS majors? by livid_gnome · · Score: 1

    When I was working on my mechanical engineering degree I was required to take the intro CS class as opposed to my department having our own programming class. We did everything in C++ and I have not written a single line of C++ since I completed the class, in fact I haven't written anything more complicated then some simple Excel macros. I didn't personaly cheat in the CS class but I know at the small school that I went to there were more mechanincal eningeers in my class then CS majors.

  97. The funny thing is (not haha funny)... by gestalt_n_pepper · · Score: 1

    I cheat all the time. I rework my old code. I steal code from the internet and copy and paste it into stuff I'm writing, sometimes only changing the comments, variable names and a few other tweaks to make it work in my infrastructure. I've reworked entire applications, morphing them to my purposes. Admittedly, they're unrecognizable by the time I'm done, but is that cheating?

    --
    Please do not read this sig. Thank you.
  98. Cheating? by Anonymous Coward · · Score: 0

    I didn't really think this was cheating, at least in the programming classes I am in/have taken the teachers encouraged using code databases and asking the TA or other students to give input on your code, as long as in the end you made the computer/microcontroller etc do what they asked then you got points for the assignment...

  99. Lab Instructor, this is true by Anonymous Coward · · Score: 0

    I have been a lab instructor for 5 years in my universities two first year comp sci classes. We submit more than 15-20 people each term to academic dishonesty. Classes usually range in size of 100-150 in first year.

    We have had some odd cases of cheating. Sparing the details, some people are very creative in how they will obtain students work. The problem is they often 100% copy if and assume nobody will notice. I had one student who was cheating, somehow he stole a students assignment (the guy walked away from his PC unlocked) but did not bother to change the name at the top of each source code file the original student used. The ultimate of laziness I suppose.

    The system is not stupid and the system simply flags papers and then a human analyzes the results. Don't be stupid and assume the professors think everyone should have a unique answer every time. Human analysis is always the next step after the machine says "This paper is X percent like another."

  100. Re:And then they check it? by Anonymous Coward · · Score: 0

    LOL, it's funny how you missed his point, and think you're smarter!

  101. Plagiarism predates computer science . . . by NicknamesAreStupid · · Score: 1

    . . . by a few years, perhaps a few millennia. There have been similar tools used by English departments for over a decade. It might just be that the CS departments are better funded or get more press. It would be easier to spot plagiarism in a thesis than a code base, as originality often trumps concise prose in written works bound for humans.

    Linus Torvalds was once accused of copying Andy Tanenbaum's MINIX to create Linux, a charge that both Linus and Andy deny. Many open source programmers have told me that it is 'easy' to refactor code without copying it. Everything from changing the naming conventions, dependencies, source ordering, and logic (e.g., a do-while instead of a for loop) are so obvious that I am sure someone has written a program to automate the process.

  102. Funny shorthand. . . by Anonymous Coward · · Score: 0

    Isn't the point of shorthand to reduce the number of characters?

    "c/p-ing" and "copying" have exactly the same number of characters, with the latter being easier to ready, so why shorten it with a just-as-long 'shorthand' version?

  103. They must learn when they are young. by bersl2 · · Score: 1

    It's only an anecdote, but...

    The first–and only–time I have ever plagiarized was for a project in the fifth grade. We were doing a project using the HyperCard clone HyperStudio, and instead of spending my time understanding the material, I copied a bunch of encyclopedia articles, substituted in some synonyms, changed some word order, pasted the resulting text into the project, then spent most of my time finding sound clips. Basically, I viewed the project more as a technology demonstration than an actual academic exercise. I'm not sure that it ever crossed my mind that I was doing something I should not have done.

    Needless to say, my teacher was not amused. He informed me (correctly) that this sort of thing would have gotten me in serious trouble if I had done this the next year. The idea of cheating in my favor has never received consideration since then, and I would rather fail silently than turn in something in dishonesty; the experience was just that traumatizing. Of course, I respected the man, so disappointing him was much more likely to have had an effect on me.

    Although our academic environments (ideally) attempt to convey the fact that cheating is wrong, the sad reality is that it happens all the time in the real world, and people who are able to lie, cheat, and steal yet get away with it are celebrated and envied, so people who are less gifted at the lie-cheat-steal game will doubtlessly try to duplicate these efforts with varying amounts of success.

    My guess is that most teachers at the junior high / middle school level aren't detecting plagiarism at anywhere near the frequency with which it happens. Probably because they don't get paid enough to put up with teaching children of that age.

    Meh, I'm just going to end up ranting aimlessly. I was not a typical student, so I should not expect that those things which worked for me will work for others.

  104. What is your quest? What is your favorite color? by proarchist · · Score: 5, Interesting

    It has always bothered me why CS assignments in some classes are so strangely off from what is supposedly being learned. Often there is some trick and the solution can be found only by not being deceived by the weaselly wording of the assignment, nor by being misled by the current subject matter in the class.

    If you are already a successful programmer, these CS projects seem especially surreal given that "cheating" is the label given for all those things you would do in real life to learn and solve, including collaboration and seeking example code.

    As an assignment in a computer ethics class I gave a talk on how the internet was going to bring college level CS education, especially self-education, to global masses. (Some universities even put their class materials online and available to everyone.) The idea was that once these useful information and materials got out there, they become part of a more advanced world culture.

    During Q and A the teacher criticized that I didn't account for how hard it was to come up with new problems year after year to test and grade CS students, and that putting everything online made this only more difficult. The teacher was actually advocating holding information back to make it easier to rate students.

    I answered by saying that there are two competing motivations for teaching methods in university classes: one is to enlighten, feed and grow minds, especially all the minds that paid through the nose for the service; the other was to "weed out," and to grade--like putting the class into a series of sifting screens--the course objects getting removed first and labeled low grade, and the finest ones coming out the end and getting labeled "academic excellence." I asked how much the former was to be sacrificed for the latter.

    Didn't finish that class.

  105. let 'em cheat on assignments by ncohafmuta · · Score: 1

    I say let 'em cheat on assignments/homework, and assign no grades to such work. Have all of the student's grade come from quizzes/tests.
    If they cheat on their assignments/homework, they'll fail the quizzes and tests 'cause they didn't learn anything. If they don't cheat, they'll do good on the quizzes and tests.
    Seems like 2 reasonable outcomes. Problem solved.

    -Tony

  106. Not just in CS by pruss · · Score: 1

    As the article notes, there does not seem to be any reason to think that CS courses have more cheaters than other courses--just that more get caught. The article cites 1-2% cheaters in CS classes. When I teach lower level philosophy classes, I have the papers get handed in through turnitin.com. Result: About 2% of my students are found cheating. How many cheat and don't get caught, I don't know. It's really frustrating, because there is a lot of work with each case, and one wonders why someone would bother to lift a few sentences from a website when they're going to be uploading their paper to a plagiarism-checking service.

    Anecdotally, it seems to be a bit worse in the classes where I have poorer rapport with the students.

  107. Re:And then they check it? by SatanicPuppy · · Score: 1

    In many places, the code is graded via automatic testing routines. The reason for this is that many big coding houses use automatic unit tests on their OWN code, so learning how to deal with automated testing helps you in the real world.

    Why would you bother grading it by hand? If you're building a program that does anything other than "Hello World" complete testing is non-trivial.

    Can you imagine hand grading and checking for cheating, when you're dealing with 1,200 submissions? For one class? That's not uncommon at big schools.

    --
    ad logicam Claiming a proposition is false because it was presented as the conclusion of a fallacious argument.
  108. Is it even possible... by AthleteMusicianNerd · · Score: 1

    that even shittier programmers infect the already shitty pool?

  109. lazy professors / teachers by farble1670 · · Score: 1

    course work should be designed to test if a student understands the material, not if they are memorized (or copied) code. if a student turns in a complex program but can't explain how or why it works then it doesn't matter if they copied it or not they should fail.

    i chock this up to lazy professors. it's oh-so easy to ask students to turn in a compiled program + the source code. the professors then just needs to run the program and see if it gets the right output, and churn the source through their favorite plagiarism checker. all of that can be scripted so they probably don't need to do anything at all to get the papers graded.

  110. Re:And then they check it? by pclminion · · Score: 1

    I must work with a very different sort of engineer than you.

  111. Pfft. by Anonymous Coward · · Score: 0

    print *,(i,i=1,10)

    Props to who can figure out which language that is ;)

  112. Simple by aj50 · · Score: 1

    1) Cheating is easy. Copy, Paste, Done.

    2) When you start programming, it's hard. After a while things start to click, you understand how to use a loop to iterate through a list, you get how function calls work, why you should avoid side-effects and how powerful recursion can be in the right circumstances. Until you get to that point you feel surrounded by people who are talking gibberish and seem to be able to pull solutions out of the air (because they've been introduced to programming before).

    3) On top of this you're having to use new tools which you've never seen before. Whether it's a unix shell or an MS Visual IDE it's a very complex piece of software with many options you don't understand the meaning of. If at any point you deviate from the tutorial you've been given then all hope is lost and you're stuck and confused with a very powerful tool that you have no clue how to use.

    4) Half the class has done it all before. Basic programming is something that many students will have tried in their own time because they like it. They've already put in the hours with online tutorials or books and have learned how to break down a conceptual solution into something that's realisable with the tools their programming language gives them. Teachers rush through all this basic material in a bored voice without giving enough examples or explaining things in a way that someone who has no clue about programming can understand.

    It's no wonder that students without any programming background who are finding the "introductory" courses hard are tempted to cheat. (Not that cheating will help them in the least. The skills required to do well in introductory programming are vital to most of the rest of the course.)

    --
    I wish to remain anomalous
  113. Real interest is important! by Anonymous Coward · · Score: 1, Insightful

    What I've noticed is that a large percentage (50-60%) of students aren't really into computers(programming, hardware, or engineering), they just like playing computer games and think they can get by with that [Hmm, what should I do for a living, I really like computer games, maybe I can do something with them]. Then when they start getting into the real subject matter they just can't cut the work/understand the technology and panic. And don't give them that much credit, some of them can't even figure out how to change their names in a file.

    A real entrance exam for these programs should ask the very simple questions: Have you ever built your own computer? Have you ever created your own webpage(facebook/myspace/"the like" don't count)? Do you know why "Hello World" is a joke?

    Simple questions but I find that those people who have taken the initiative and gone out and learned on their own tend to make far more competent and worthy programmers, techs, admins and the like.

    For what it's worth.

  114. Re:And then they check it? by Anonymous Coward · · Score: 0

    you seem to not understand that the cheating check is done by a computer. O(n^2) (wherever you got that arbitrary function, real cheating detection isn't so simple. . .) is done BY A COMPUTER. I don't know about you, but searching is fast, comparing is fast, and CS departments have available power that can be used during off peak hours.

    So yeah, grading takes time, but you imply that it takes the same amount of time O(1) for a TA to grade a program as it takes a computer to compare it to another for similarities. no. wrong. fail.

  115. Was I cheating? by Sosetta · · Score: 1

    I took a CS course some time ago in C. The instructor told us that it was perfectly okay to get help from another student on the assignment, because of how he constructed the exams: He would give you one additional feature to add to the program in class, and you had until the end of class to complete it. That way he would know if you really knew what you were doing, or whether you really copied someone else's work.

    I helped another student with some of the assignments, including the last one. I knew what I was doing, they didn't. I went to check my grades a couple of weeks after the end of the semester, and there was a notification to come into the departmental office. It seems that the final assignment I turned in was very similar to another student's. My implementation of the final project was clean and quick, and adding the final feature took all of about 5 minutes. I said that the other student had cheated off of me, and I knew what I was doing: they didn't. Unfortunately, the other student had left town, already having a BS from another university (not in CS). This was a community college. The teacher himself never confronted me or made any comments that what was going on wasn't okay. In fact, he had specifically stated in class that it was okay, but the department chair said that he was 'on vacation, so unavailable'. I was furious, and fought it, but lost. I got an F on the final project, and my grade in the class was lowered an additional letter. It's been more than 10 years, and it still makes my blood boil.

    I was talking to a friend who still lives in the same town recently and he told me that he has now heard this story 7 times from 7 different people who all had the same thing happen: no comments were made during the semester, and so while the teacher was on summer break, they had cheating charges leveled against them. It was the same teacher. His name is Scott Badman. He taught at Parkland Community College in Champaign, IL, and I think he's now finally retired.

    So, did I cheat?

  116. The limits of observation by deuterium · · Score: 1

    This strikes a chord with me. I program training software - modest stuff - and recently have gotten into more detailed user tracking. Every click a user makes is a web service call whose return value is required for the program to continue (without notifying the user). Previously, I would say our audience was used to software without an Internet component. They watched material and took a test. The PDF printout was the proof of use.

    We get calls saying "the computer ate my homework." This can only be true for one transaction, but varying claims are made which don't agree with reality. I'm asked to inveigh in some circumstances, and it's hard to say "they're lying." Can I unequivically state (and logically convey) that they're wrong? Do I know every possible path of the program? I feel that I do, but I've had genuine glitches in the past.

  117. So in a sense the profs are cheating too by SilverJets · · Score: 1

    "There's a lot of infrastructure that needs to be built and a lot of effort that goes into creating a homework problem. There's a disincentive for professors to change those problems every semester. So we tend to reassign similar problems, and that causes cheating because past solutions are available," Pitt says, adding that the University of Illinois checks homework against a repository of past solutions.

    So the profs are lazy and don't want to make new assignments and re-use old ones. Slightly hypocritical to then penalize lazy students that do basically the same thing. If a prof can't be bothered to show an interest in the subject material and come up with new and creative ways of getting the ideas across, why should the students be expected to perform any differently?

  118. From my experience as a student and a teacher... by sm284614 · · Score: 1

    The CS assignments I was given in University were never 'very' simple. The first assignment in JAVA was to simulate an x team football league, each team playing every other twice and randomly determining match scores, printing match results and final league table. The C and VB assignments were of similar complexity. It's very implausible that two people could write very similar programs, in face, exponentially more unlikely with each additional line of code. In relation to collaboration as cheating, as a teacher teaching CS at A-level (16-18 year-olds), I would absolutely love to do a big real collaborative project: break the students down into teams, assign roles, distribute modules, whatever, but it's not a good idea for several reasons: 1. Assigning roles. How do you divide responsibility equally to be fair, motivate the weak and strong students, and ensure that a project will actually produce some results? 2. Marking: how do you really know who did what? Has a weak student just rode on the backs of others? They might cover for him, they might not. There's no way to tell, and examiners don't like that. 3. Different ability and demotivation: if you're working with someone who can't write code and is destined to fail, how would you feel about your project? Yes your audio module might be perfect, but if you had nothing functional to plug it into you'd still be unhappy. There's more of course, but the idea of teaching students how to program (and at the same time how to manage a project) almost forces them to work individually. The best I can do is teach them how to write efficient, maintainable code and hope that they end up working with others who can do the same.

  119. Aaargh! It buuuuuuuuuurns! by martin-boundary · · Score: 1

    This comment is intentionally left blank.

  120. Why not? by SuperKendall · · Score: 1

    So how do you suggest we check student's coding ability? Assign every one of the thousands of students a new, unique task?

    Actually, that seems like a really good idea. You can have variants of a project that differ enough to make copying not practical. If you had a hundred or so different ones it would be more than enough to vary for every student, for at least a few generations of students before you had to repeat.

    I used to be a CS lab assistant in college, helping out CS students with class work. I would not have had a problem helping people with a variety of different projects. Grading would be a little harder but not really, because you can easily tell the difference between stuff that is not working, only just works, works well, and guys that went way beyond the scope of the assignment just for fun.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  121. what the hell? by kiddygrinder · · Score: 1

    Why are people enrolling in comp sci? they should have a grizzled veteran try to scare them off before they enroll, it's only humane.

    --
    This is a joke. I am joking. Joke joke joke.
  122. Two vital issues... by Genda · · Score: 1

    So as usual, this is blowing one aspect out of proportion to make headlines and virtually ignoring other issues. Working in groups to answer homework questions is at best a yawner... especially when these very same kids pass their exams gloriously. Who gives a feathery, how you do your homework as long as you grasp the material, and can demonstrate mastery of the subject. At this particular level, as long as you are actually doing the homework and can so demonstrate by passing tests both written and oral, then who cares if they working in a 20 person study group.

    In point of fact, the real concern is ethics and instilling a rich and lasting sense of personal integrity. This is so important (and from the article, it's clear the problem is just as bad or even worse in other disciplines), that a significant ground-work of ethics and personal integrity should be a required part of every discipline taught in our colleges today. Rather than teaching kids that cheating is bad for some vague ideological reason (or equally impotent for some religious reason), it should be made abundantly clear that integrity immediately equates to workability. That the lack of honesty, communication, discipline, forthrightness, compassion, and integrity, is directly responsible for the greatest and least problems facing humanity today, and that bringing ethical rigor to one's day to day practices (scholastic or professional), provides a foundation upon which one can build a future worth celebrating. Teach students not to cheat. Have them confront the schools' presumptions and regulations based in false presumptions, but have them aware that the world demands a high level of performance and that performance is ultimately built on integrity. A breach in integrity may provide short-term gain, but it invariably costs more in the long run.

    This should be especially important to this crowd. These are the future professionals who will either honor Open Source Licenses or in the name of short term expedience, claim copyrighted code as their own, and try to stonewall legal IP holders through courtroom maneuvering. Big business has been ripping off inventors for a very long time (Flash of Genius) and we need only look at our current economic woes to see the depth and breadth of the ethical crisis facing our nation. We either do a better job teaching our children, or we face a dark and frightening future indeed.

  123. Re:Do it for him by TaoPhoenix · · Score: 1

    "It'd be as if you told your kid to paint a room that had just been painted last week so that he'd learn how to do it, but instead he paid a guy down the street to do it for him."

    Sounds like an A to me. Oh wait, this isn't Business 101?

    --
    My first Journal Entry ever, in 8 years! http://slashdot.org/journal/365947/aphelion-scifi-fantasy-horror-poetry-webzine
  124. Where do you think IT managers come from? by VampireByte · · Score: 1

    Student cheats way through college CS courses. Then cheats way into getting first software development job. Soon after that, colleagues discover he can't code worth a damn, but but bullshits with the bosses, gets promoted into management. Company pays for evening/weekend MBA program. Repeat cheating exercise, complete MBA. Get promoted to CIO.

    --

    Run and catch, run and catch, the lamb is caught in the blackberry patch.

  125. Re:And then they check it? by TheRaven64 · · Score: 2, Insightful
    I gave quite detailed feedback for all of the assignments that I marked, but I found teaching too depressing. On one assignment, I put a complete solution worth a high C or low B grade online, linked to it in the 'further reading' section of the assignment sheet. No one downloaded it. In another, I wrote the complete solution to the last question on the back page of the hand-out notes. Only 10% of the students attempted that question. Mind you, one of my students, when I suggested a good book on the subject for further reading posted this on the student forum:

    I'm paying £3,000 a year for this degree! I don't expect to be told to read something in a book!

    --
    I am TheRaven on Soylent News
  126. college the new HS because HS education failed by electrosoccertux · · Score: 3, Insightful

    Leaving aside the usual nonsense that kids today are worthless and can't do anything right, the problem is more complicated than that. Many universities have stepped away from the idea of going to college as a way to get a well-rounded education and have positioned themselves as places to get a piece of paper that will let you get a good job. Combine this with the increasing number of positions requiring a college degree, and you get a lot more people more interested in just getting through and getting that piece of paper as quickly as possible than they are with actually learning anything.

    College is quickly becoming like high school: It's a base requirement that everyone has to go through if they don't want to spend the rest of their lives picking lettuce, so people are going to go and try and get through it as quickly and painlessly as possible. There have always been people who do this of course, and cheating is certainly not a new problem, but the above-mentioned issues may make it more prevalent than it once was.

    Remember, though, that our generation cheated as well. Every college in the country has an honor code, and many of them have been in place for decades (or longer). These codes wouldn't exist if no one was cheating before.

    Undergrad diploma is the new HS diploma because companies can't depend on people having a HS diploma to mean that they are capable of critical thinking.
    That's what happens when you give them out willy-nilly (big thanks to the folks that implemented no-child-left-behind, and the liberals that won't let us fail students; but both of these are passing the buck-- the real problem is the parents not engaging in their childrens' lives.)

    So now an M.S. is the new B.S., but this whole education thing is approaching unsustainability due to the exorbitant cost, both fiscally time required. Quick example, my MicroEcon test that I aced today had 20 questions, took me 20 minutes, and if they gave me all the slides up front I could have learned the entire course in 2 days or less of studying. But this amount of work was spread out over an entire semester. Is that economically feasible? No, we do it for the paper that gets us a well-paying job. With the cost of post-secondary education running away from us, the supply of students getting degrees from legit schools (aka not DeVry, ITT Tech, or your local community college that passes everyone for the same reason the high school does-- because they need the money) will dwindle. Eventually the cost of employing those with legit degrees will be so high that it will be economically feasible to consider employing someone straight out of highschool and just train them yourself. The two requirements for this to work are
    1). student is smart enough to teach self things if you gave him a book and the internet
    2). student is either a). self-disciplined, or b). can be managed to do work.

    You can devise a test for 1), and if you just hire people you know and trust (and have people you know and trust who can refer you to people that they know and trust) then 2) is solved as well.

    The point I'm making is I could have learned all my circuits stuff a lot faster with proper documentation and material written down than it took me in the classroom. Further, frankly I didn't need chemistry and Calculus I-III & DiffEq to help me design circuits or code. And I certainly didn't need a semester each to learn the applicable parts. A much more efficient solution (and it's much more motivating) is to worry about that stuff when you need it-- when you run into the term "eigenvectors and eigenvalues" while learning on the job about applying neural networks to power systems, you go teach yourself the linear algebra. It's much more motivating when you're stuck at the job for 8 hours, can't surf the web all day, and the most entertaining thing you can do (and it's actually quite entertaining) is learning things. Even better, it's always need-based, never an arbitrary "you have to learn this so that y

    1. Re:college the new HS because HS education failed by Anonymous Coward · · Score: 0

      I hope that you realize that not all students are as quick-to-learn as you seem to be. There are some that can ace organic chemistry from just reading once on an off-day, though many usually struggle for their lives. On the same token, there are some that just GET data structures regardless of complexity and others that DON'T.

      There is a reason why a "simple" curriculum might be spread out over the course of three months. There are people that need every day of those three months to grasp it. I'm sure you clicked with linear algebra with no problems; I suffered for the entire class and was well behind everyone else, even despite having thought I understood it in the first few weeks.

      I agree that many colleges are degrading themselves to high school environments, but colleges with a SOLID academic foundation have stood solid even despite the many, many, MANY changes in American high school education. Harvard/MIT/Columbia/et al still grab the top of the top HS students in the US and somehow still churn out lots of really successful people in all sorts of walks of life. Their flagship programs are still mostly dumb hard, or at least that's what I heard. I thought my school (Stevens Tech) would have been really hit hard over the course of my time there, since the engineering curriculum changed (four less credits), the school pushed business and technology hard and the wave of freshman seemed to be more annoying and intelligently vapid kids than we were. But they are doing fine and are doing great things.

      The more things change, the more they stay the same. Sometimes.

    2. Re:college the new HS because HS education failed by electrosoccertux · · Score: 1

      I'm actually quite slow I think, compared with most of the people at my school. I've always been behind.
      I've also noticed that my brain has improved dramatically while I've been here. Exercise your brain and it adapts-- very, very, very well.

    3. Re:college the new HS because HS education failed by electrosoccertux · · Score: 1

      also, the school I'm graduating from _is_ in the Harvard/MIT/etc. club for pretty much all the engineering majors we offer. I'm just saying there's a ton of inefficiency. The MicroEcon class is not hard-- test question I had-- "what does the shaded box represent?" The shaded box was at the quantity of production where profit is maximized (they told you that), and it extended from the demand curve down to the average total cost curve-- basically just two lines on a graph. In other words, Quantity * ([price people are paying for 1 unit] - [cost of production of 1 unit]) is what? It's profit, duh, you didn't have to sit through this class to figure that out. None of the questions were more difficult than this.

      Much of this material can be condensed into two weeks. They could do both Micro and Macro in 1 half semester no problem.

      Now, the circuits classes are the classes where I'm always behind. I usually can't keep up in class and that's because the best I can hope for is to try to write everything down in the intervals where the teacher isn't walking or standing in front of what he just wrote, and then go home and stare at it until it makes sense. This stuff I do very badly, it is very challenging, but the point I'm trying to make is none of it is necessary for the job I've got lined up.

    4. Re:college the new HS because HS education failed by HornWumpus · · Score: 1

      I was going to reply to your original post.

      This one is better.

      Do you see why Calc 1-3 and diff eq are needed while you are in circuits?

      Just wait till you get to control systems. Even better digital control systems. It's been 20 years for me. I can't even remember the name of the domain. Like Laplace but with discreet time steps. I once implemented a 'deadbeat controller' in lab.

      Linear algebra with Laplace domain functions as matrix elements. It's joy to unwind and get an answer.

      Coding and digital design are much easier. Damn analog world.

      --
      John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
    5. Re:college the new HS because HS education failed by purpledinoz · · Score: 1

      What the hell's a rant?

    6. Re:college the new HS because HS education failed by An+Onerous+Coward · · Score: 1

      You're right about the education process being shockingly inefficient in lots of areas. I'm looking forward to the day when computerized, adaptive instruction can quickly gauge your current understanding of a subject and present precisely the material that will allow you to advance your understanding.

      Speaking as a liberal, I think that teachers (and institutions, in fact) would have a much easier time failing students if they knew that doing so didn't amount to a death sentence for the student's hopes for a decent, middle-class-or-better life. Much easier to give them a barely-passing grade and hope it serves as a warning to them that they need to buckle down next time.

      Middle schools pass the buck to colleges, colleges pass the buck to the job market, until the job market finally passes the buck to the manufacturers and distributors of government cheese.

      You can't even say that the strategy is wrong. Many people who floated through high school go on to do impressive things in college. Many people who do mediocre work in college go on to have excellent careers. Like you said, most of what you learn there doesn't add much value to your abilities as a participant in the economy. The only thing that suffers is the ability to distinguish productive from unproductive hires based on academic record, and that wasn't all that discerning to begin with.

      We need some sort of verifiable, competence-based reputation system to replace (or at least supplement) the degree system. Something fine-grained enough to say, "he can do algebra and a bit of trig, but only has a rough understanding of calculus. She is fluent in oral but not written Spanish. He knows how to write control structures for eight programming languages, yet somehow recursion still eludes him."

         

      --

      You want the truthiness? You can't handle the truthiness!

    7. Re:college the new HS because HS education failed by Chris+Mattern · · Score: 1

      Further, frankly I didn't need chemistry and Calculus I-III & DiffEq to help me design circuits or code.

      Um, if you think you don't need differential equations to design circuits, I can only conclude you know nothing about designing circuits.

    8. Re:college the new HS because HS education failed by byteherder · · Score: 1

      Just wait till you get to control systems. Even better digital control systems. It's been 20 years for me. I can't even remember the name of the domain. Like Laplace but with discreet time steps.

      It's called the Z-transform. I haven't used it in 20 years but I still remember it from college.

      My general thoughts on the matter is that we never know what we will need in the future but it is good to start from a solid base. I would never have thought I would need diff eqs. but once a year or so I do. Glad I had that solid base.

    9. Re:college the new HS because HS education failed by c++0xFF · · Score: 1

      So now an M.S. is the new B.S.

      That explains why my master's thesis was just a bunch of BS.

      I think you have a point, though. With the popularity of coursework M.S. degrees (no thesis necessary), I wouldn't be surprised if the dumbing down continues to on to graduate degrees. Maybe it already has.

    10. Re:college the new HS because HS education failed by electrosoccertux · · Score: 1

      I know why they CAN be needed but the point I'm making is we're wasting all these resources educating everybody in a million things they don't need. My career path is now set in embedded software and in 3 years I'm going to need to relearn everything anyways if I have to use it. It's been a wasted journey all for a sheet of paper that says I can teach myself what I need to know. And that will have to change.

    11. Re:college the new HS because HS education failed by electrosoccertux · · Score: 1

      Further, frankly I didn't need chemistry and Calculus I-III & DiffEq to help me design circuits or code.

      Um, if you think you don't need differential equations to design circuits, I can only conclude you know nothing about designing circuits.

      Sheesh you guys fail at reading comprehension. Of course you need it for designing certain circuits. The point is, I'm not doing that for a living. And if I were, I was going to have relearn it all anyways because it was years ago that I took DiffEq.

    12. Re:college the new HS because HS education failed by electrosoccertux · · Score: 1

      "masters thesis was just a bunch of BS"

      I see what you did there ;)

      Yes, it's about staying ahead of the curve. That curve will eventually shift to the MS program, and then everybody's going to have to have PhD. But we can't play this game forever, and company's can't afford to pay the salaries people who took on this debt for the education need to pay it all off. So eventually I think they'll short-circuit and go straight to highschool students again. How would you get someone to skip college? Become known for running your company for the benefit of the employees, not for the benefit of the company. Then people won't have a problem with skipping their degree-- if they know that they'll have a job if they continue to work hard, then they won't ever need to that B.S. degree-- because they won't be leaving your company, ever.

    13. Re:college the new HS because HS education failed by electrosoccertux · · Score: 1

      Those are great points and that's a great idea.
      But even those competence systems won't tell you if they're a hard worker and how capable they are of teaching themselves new things. Nor will it tell you how determined they are to succeed.

      In short, you need people you can trust that have morals (ie, that aren't spending 6 hours a day figuring out how to get away with 2 hours of work) and that you can teach.

    14. Re:college the new HS because HS education failed by electrosoccertux · · Score: 1

      you're a 5xxxxx UID and don't know what a rant is? it's a fuss.

    15. Re:college the new HS because HS education failed by HornWumpus · · Score: 1

      Hopefully you will remember some of it in 20 years.

      Maybe enough for your eyelid to twitch, just a little, at the mention of the Z-domain.

      I was working as a software engineer at a engineering consulting shop serving the global electric power industry. (The 'sun never set on our software' which scared me, most of it sucked real bad.)

      One day out of the blue the company president came into my office and asked me 'what is the first derivative of 1/x'.

      I answered correctly. (not pedantically)

      He put a mark on his list, didn't say a word and went to the next office.

      Never did get the back story to why he ran his poll.

      I'm guessing a few Phd applied mathematicians where in a meeting with him and couldn't come up with the answer. Just a WAG.

      I can say I used Calcuseless at least once in a professional environment.

      That said I find real value in the engineering core curriculum (which is most of what you are complaining about).

      Calc, Physics, Chem, Diffeq, Statics, Thermo, Circuits is a grind for 2 years. But it's what all engineering majors share and it does weed out the future business/CompSci majors well.

      Taught well you come out of those courses with the start of an 'engineers approach' to problem solving. Also needed to pass the E.I.T.

      --
      John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
  127. Dogs too... by toboldh · · Score: 1

    It's the same reason dogs lick their balls.... Because they can.

  128. Nothing New Here by CaptainBJones · · Score: 1

    Is this really something new? The problem is not just limited to "entry level courses" In one of my midlevel CS courses (Advanced Java Programming) we were given a half semester long project to develop a complex software program using some aspect of Java we had not learned in class previously. Of the twelve groups that formed,h nine presented & turned in programs that were example programs from a previous java programming course I audited from another college. Being the only single person group and having written the most complex program in the class I was kinda agitated when I learned about some of the programs so I "helpfully" showed the Professor, the programs I had already written, before the groups presented them... The real kicker was, several of the groups did not even bother changing the source code/comments and still had the old course/assignment numbers (and in one case other students names!. In the end I think the professor was way too lenient and no one actually failed the course...

  129. Re:And then they check it? by Khashishi · · Score: 1

    In most the CS classes I took, grading was mostly done by some automated case testing program. No looking at code style.

  130. I once caught students cheating by purduephotog · · Score: 1

    Our course was easy. Given some inputs, make them match exactly via the diff command to the outputs. It was really pathetically easy to pass, unless you mis-implemented something (happens).

    Code review was checked via a number of methods- usually more hype than reality, but it still happened.

    I had a couple of different students submit the same code- different names, variables, orders, etc. What gave it up? They had extra spaces at the end of the lines. Usually two, sometimes three- as if the tab was replaced and rounded up. This matched, space for space, for each function regardless of the name of the function or the variables.

    100$ fraudulent. Global search and replace.

    Prof passed them both. No warnings, no nothing.

    I stopped being a TA at that point.

  131. THAT'S RACIST: language skills are the cause by Anonymous Coward · · Score: 0

    CS courses by far have the highest rate of English as a Second Language speakers to Native English speakers. It usually takes most ESL students a year or two to get the language right where they can actually participate in the classes, by which time they are usually having to play catch up and because they've already fudged the fundamentals of the course they pass with unacceptably lower skills. This is why a lot of ESL CS graduates make mediocre workers. Yes, I know there ARE shining stars among them but I'm talking about the bottom end being much more over-represented than their English speaking native counter-parts.

    Universities must be more strict on language criteria before accepting $tudent$.

  132. students cheat because it is easy by Anonymous Coward · · Score: 0

    The main reason students cheat is because they are under pressure to produce ... and it is ultimately easy and rarely caught. When they are caught, the penalties are rarely serious, typically no worse than a zero on the homework or exam. The universities have an obvious conflict of interest here ... they accept ~$50k per student in tuition per year, and it is my opinion that they consequently simply cannot take serious actions to stop this epidemic. Of course, this is not new. At this point, there are even professors who have cheated as undergraduates, so that, sometimes, the fox is guarding the hen-house.

  133. Nostalgia by Anonymous Coward · · Score: 0

    This also extends to students who are doing a double major (for example in Math) and don't really care about the second major as much. In my last semester of undergrad a friend of mine copied his take home final from me and was caught coz he had the same mistake as me in an extra credit problem. What's funny is that the code of ethics requires the professor to expel the student. Of course that did not happen and he ended up in Columbia for graduate studies. As for me, I am here, posting my sad story on /. ;^)

  134. Cheating should be encoraged by cuttheredwire · · Score: 1

    I never write from scratch anything I can call from a liabrary, or re factor from existing code, or cut and paste, or down load from open source, for find an example of via google. The whole reuse paradigm says don't re invent the wheel. I have been "cheating" sucessfully for 20 years! the more you program, the bigger the liabry of your own code you can cheat from without worrying about the idot original devloper ;-)

  135. Self-harm by Anonymous Coward · · Score: 0

    Cheating will only hurt oneself in the end. Cheating is simply covering up the fact that the perpetrator doesn't know shit and fortunately, for rest of society, doesn't fly with those of us who do. Message to cheaters: you might not get caught now, but when I ask you to code something and you can't do it, or learn how then: a) you won't even get hired in the first place; and/or b) you'll be out so fast your head will spin...

  136. Roman_Mir, how come you are SO stupid? by Anonymous Coward · · Score: 0

    Answer the question above Roman_Mir, you illiterate GOOF!

  137. Why is CS unique? by Anonymous Coward · · Score: 0

    They are simply ignorant of reality if they are claiming because they are in CS dept they somehow have access to anti-plagiarism resources other departments do not have. This is just as absurd is saying other departments don't have access to computers. Its quite common for submitted works to be checked against automated databases to check for commonalities between works. I guarantee you noone in the CS departments had a hand in writing any of this stuff..Its all cots/outsourced services.

    Is the origions of source code easier to cloak than a few paragraphs of an eassay?

  138. CS curricula are the problem, not the students by Anonymous Coward · · Score: 1, Insightful

    Isn't the fundamental problem in the way CS is taught? What if the coding were tested AS SOON as it's taught - with NO time to look things up -- and kept to a very short part of the course work. Once the basics are in their heads, quickly get them to learn how to assemble software in small teams. What if the students shared and collaborated ON PURPOSE? We could even them find code for algorithms on the web the glue things together for their projects - maybe even entire class projects? Only lazy teachers would find this approach abominable.

    Wouldn't it be great if Test-First and Source Code Control and Documentation were all taught at the same time?

    It's been said a million times - no decent programmer learns how to code in the classroom - they learn by doing. The classroom is where they learn how the algorithms work, not how to translate them into code. The classroom is where they should get to ASK questions about code not ANSWER them.

    Every plumber learns their trade by learning to read and analyze blueprints and learning the math, the principles, the parts and supplies and walking through real buildings from new construction sites to run-down ghettos. The hone their pipe-cutting and soldering skills during the apprenticeship, NOT in the classroom.

    In my nearly 30 yrs and some 17 computer languages I've hired the highest GPA students from CS and some know shit about code and others are brilliant -- the latter are the ones who learned coding by DOING, not by INSTRUCTION.

    My grey-haired 2c worth.

    1. Re:CS curricula are the problem, not the students by bellwould · · Score: 1

      Finally, a view from outside of the box.
      Teaching computer technology as if it's a science, engineering or art is elitist. It's a trade and the most difficult trade there is where the tools, designs, requirements, all aspects of the job are in continuous flux. What other job can present a whole new world with each project?

      Software development is the worst, son-of-a-bitch, uphill battle of a job in the entire world -- but I wouldn't trade it for anything!

  139. No way, I don't believe you by linzeal · · Score: 1

    Where the hell did you go that had a 90% drop, so I can remember never to hire someone from that University? The highest drop I have ever seen in 10 years of academia, at least in a CS dept is ~80% and that was when they were already losing their accreditation. Anything beyond 75% is a sign to GTFO before they lose their cred. You do realize that high of a drop rate has nothing to do with the students being dumb but it sure is a sign that the program is dysfunctional, the professors are sadistic/suck or the water is filled with neurotoxins.

  140. Re:What is your quest? What is your favorite color by Anonymous Coward · · Score: 0

    >If you are already a successful programmer, these CS projects seem especially surreal given that "cheating" is the label given for all those things you would do in real life to learn and solve, including collaboration and seeking example code.

    The mantra of the cut-and-paste code monkey. Coding assignments simply aren't that hard, Mr. "Successful Programmer".

  141. Re:And then they check it? by Anonymous Coward · · Score: 0

    This implies that actually looking at the code turned in is not common practice. There's your problem. If you're not looking at the code, how are you actually grading?

    Given the dreadful shape of much of the code I've inherited from alleged "professional" developers, I can only assume the stuff created by many students is truly painful to read. While what you say about reading the code is true, I can understand how someone who's just waded through his 27th unreadable listing might be tempted to just check the output on the rest of them and call it a day.

  142. excess collaboration by epine · · Score: 1

    In the modern world, where nearly every problem has a collaborative dimension (even rootkit developers exchange tips of the trade) the phrase "excess collaboration" reminds me of the line from Jack Nicholson's character in One Flew Over the Cuckoos Nest, "Who ever heard of a man getting too much poozle?"

    [http://www.mtc.mb.ca/WorkArea/linkit.aspx?LinkIdentifier=id&ItemID=4786 McMurphy spars with the untroubled Dr Spivey]

    It makes you wonder about the rampant NIH that has long existed in the software profession.

    Maybe they should instead be teaching students to *never* work from scratch if they can source a more suitable starting point. Maybe they should deep six sitting in front of a droning professor. You can do that online these days from the close proximity of your residence bar fridge.

    Maybe nearly 100% of computer class time should be having the students conduct group walk-throughs of proposed designs, algorithms, and implementation fragments. Maybe the CS professor should be assessing how the students are interacting rather than mindlessly reciting prepared solutions (if you can find enough CS professors with a facility for eye contact).

    Maybe an obstacle-course education in emergency wheel-reinvention should be regarded as a commando level training option for elite troops only.

    Maybe the curriculum should include a course in outsource management, where your project group is graded on the work quality of its very own team of docile and compliant Indian math geeks.

    Maybe the education system as it now stands is part of the problem, rather than part of the solution.

    1. Re:excess collaboration by An+Onerous+Coward · · Score: 1

      I once had to implement Bresenham's line drawing algorithm for a graphics course. There are already thousands of implementations of that algorithm out there, but by writing my own, I proved the following:

      1) That I understood the algorithm very well.

      2) That I could write code well enough to embody a relatively complicated idea in software.

      You need to have those sorts of assignments in your course of study. Maybe fewer, but certainly at some point in your academic career you personally need to show that you can implement a specific algorithm.

      --

      You want the truthiness? You can't handle the truthiness!

  143. Uhh... by Anonymous Coward · · Score: 0

    "Enrollment in undergraduate computer science courses is at an all-time high at colleges nationwide."

    It's not. Go check.

  144. That's why by garompeta · · Score: 1

    I encrypt all my essays...

  145. Re:And then they check it? by meatmanek · · Score: 1

    You're underestimating the way the brain remembers things. When grading assignments in an intro level programming class, you come across weird ways of solving the problem that technically work, but are bad style, etc. These things stick out in your mind, and you notice when you see the same thing twice. For example, as a TA for an intro programming class, I once graded an assignment where a student had written code something like this:

    while (x == 0) {
        if (x == 0) {
            do something;
            x = 1;
        }
    }

    When another assignment used the same construct, I thought "hey, this kid is using an if statement inside of a while loop with the same condition; didn't I see one like this before?" I didn't have to look at every previous assignment to know that this kid was cheating, I just remembered. Maybe this breaks down for larger classes, but it worked fine for my section of ~30 students.
    In other words, checking a list for duplicates is O(n) if you use the right data structures (hash table or 10^10-unit neural network).

  146. Computer Science Students Cheat ... by Anonymous Coward · · Score: 0

    because Barak Hussain Obama is a dick sucking homo pervert.

    His best Dick in the Guberment ... Dick Gates.

    How did this Dick fucker get elected?

  147. Re:And then they check it? by someSnarkyBastard · · Score: 1

    Is is sad that the first thing that comes to my mind reading this is "huh, sounds like a problem from my parallel processing class"? Incidentally, I wonder what the parallel speedup is over sequential execution (i.e. just one poor bastard grading everything)? In your analysis please remember to factor in locking over red pens and doritos. Dining philosophers eat your hearts out! :-D (yes I still sometimes get handwritten comments on code I turn in)

  148. For some it's because they're idiots. by Anonymous Coward · · Score: 0

    I had a student a few years back who had obviously copied some work as it had the same blindingly obvious error that I'd seen earlier. As my purpose wasn't to test their programming skills, only their understanding of the algorithms and concepts within image procesing, I'd award those who'd copied the work a 50% if they could explain to me what was going on and that they showed a general proficiency with the material and could understand what was wrong with the program. Oh, and this was on the provision that they admitted to copying the work. Anyway, one student steadfastly refused to admit the work had been copied or was involved in any frowned upon activity. His claim was that he wrote the program and it was coincidence that anyone else produced the same error (basically impossible). So to prove his claim I asked him to explain, line by line, what the program was doing. He insisted on skipping the first line before admitting he didn't know what it did while still insisting that it was his code. The first line in the program was clrscr.

  149. Kick out the money grubbers by Anonymous Coward · · Score: 0

    Every cheater needs to get caught so that the industry stops being flooded with money grubbing assholes, rather than people who actually love coding and would be doing it even if they worked at a gas station or some other unrelated job.

    Too many people see programming as the current hip job trend with which they can cash in. It's rather infuriating to those of us who actually give a shit.

  150. good riddance by zivan56 · · Score: 1

    As a computing science major, I have seen a number of people with absurdly high GPAs and work experience at major corporations (RIM, Business Objects, etc) that couldn't code a simple app if their life depended on it. So I would have to agree with the article...I hope more is done to catch such people who jeopardize honest peoples degrees.

  151. Non-CS Don't Care by rhunex · · Score: 1

    As the article states, the classes being analyzed are just computer science introductory courses, and not necessarily introductory computer science majors[students]. At my current university, a whole batch of non-computer science students are given the ultimatum of CoSc 1010(Intro Cosc) or usually something that *sounds* much more difficult. Engineers can take a rigorous intro to all engineering topics with a heavy emphasis on physics, or intro to computer science. Also, math educators, varying scientists, business, and other majors are advised to take an introduction to computer science, or are otherwise required.

    While I agree that a well-rounded person in the 21st century should be able to use a computer, I also understand that learning how to program is an up-hill battle at best for a lot of people -- Even some CS people have problems with it in the beginning. On top of that, the intro computer science course here fills two sections in a lecture hall of ~300 students(~600 students on a full semester), and the average amount of computer science majors(undergrads) is around 120 -- Freshmen through Senior!. Most of the people in these intro courses aren't computer science majors, possibly have little to no interest in programming, and probably expected it to be much easier than it is.

    As if making a program to solve a sudoku board isn't stressful enough for these people(or other homework assignments), the word from the professors around here is that the upper class-men have no idea how to program, and the solution is to make the introductory courses more difficult.

    Either more universities need to dial down the difficulty of these intro courses(for non-cosc majors), or offer alternative intro to computing courses...because I suspect my university isn't the only one doing this. Otherwise, these people will just keep getting pressured into cheating, will continue cheating, and will continue to get caught. As an example, the cs department here offers a class that is advertised almost exclusively as a business major class, where people learn the parts of a computer, do some Microsoft Office labs, and possibly learn a thing or two about computers.

  152. From my experience... by 3seas · · Score: 1

    ...it has become obvious that cheating and lying has become the way of the world.

    Anyone else notice this?

    Well?

    Do I need to repeat the question?

    Perhaps I should rephrase that.

    Liars and cheats please raise your hand.

  153. Hard assignments ? by nerdyalien · · Score: 1

    EEE major here... but I did few programming modules in my undergrads. I abhor cheating, plagiarism, collusion and any form of illegal activities. But at the end of the day, we have to have allies within the class especially when big group projects come along. As a result, sometimes I had to give away my codes to others and change my own code to avoid getting caught. It was appalling, but given the circumstances, I didn't have much choice.

    And now as a Graduate TA, I don't need a sophisticated plagiarism detection system to spot who is cheating and who is not. Moment you start talking with the particular student or read their code, it is quite visible who is breaking the rules. (One time I marked down a student, because he managed to get the code running and obtain the result. But before the official demo, he requested me to explain what's happening inside the code. Obvious right! However, later he complained to the lecturer and I was forced to give him full marks under the grounds "he did finish the lab assignment and got the right answer". I deliberately avoid TA-ing that class after that incident).

    Also I agree that plagiarism detection systems are NOT "bullet proof". They can be mislead as well and all depends on the threshold you choose.

    Despite all this frustration, I think I have a solution. Why not make the assignments darn-super-hard ? My 2nd year C-programming unit had this horrible 4 page long assignments. Essentially, the lecturer wanted us to write a fully functional MIPS emulator using C/C++, which can take in machine-code and churn out the results. It was a tough assignment (especially when you haven't ever used C/C++ before). But that assignment had two major merits, 1) you will try all possible tricks in C/C++.. hence a good hands on programming experience, 2) you will learn processor architecture pretty well. I completed the advanced version of that course in the final year, which required us to introduce memory heirarchies and pipelining to the existing code base.

    When you are given such a massive assignment, only handful can finish the assignment. Rest have to fall-back halfway through.. as the assignment is not all about programming. Underneath there is lot more (in the above case, processor architecture) you must know to finish the assignment. On top of that, massive assignment enable student to learn more things than a small ones. And most of all, it is the most fair system for all the hard working honest students!

  154. Re:Roman_Mir, enough w/ your 100 below bacteria IQ by roman_mir · · Score: 0, Offtopic

    I love You too.

  155. Why? Because the assignments aren't marked by huma by TheSeer2 · · Score: 1

    And therefore the smallest error results in zero marks.

  156. FTW by hesaigo999ca · · Score: 1

    Seriously, when I was in IT school, you could not go on a website without seeing at least 3 if not 4 times the same code for your problem. If the app they are using does a compare var to var instead of name of var to name of var, i can say that 99% of code is plagerised. Why....because if I need a function that adds x to y or x to z and returns an integer, no matter how i write it, at the base of things...you will end up having x = ...., y = ...., x + y = .... retutn ...., so if everybody has the same project , think of how many variations you really can have for that function.

    Instead I would ask to have a working application that does what it is supposed to, then change the code up in that person's project then tell them to find the problem and fix it....or better yet, have some projects that other students have made, have a second student change the code all around, and then send it back to the first one to fix so it does what it is supposed to....

    You have to remember in this case that the position one will fill in the REAL world is simple, if they do not know the answer, know where to look to get it. If the hardware,software does not work, fix it, and if you can't get a consultant in to help you....
    not everyone knows assembler or how to configure an old pbx system, does not mean the programmer or network admin is useless because he does not know EVERYTHING.

  157. See Roman Mir FAIL BADLY here by Anonymous Coward · · Score: 0

    Roman_Mir didn't do so well here http://developers.slashdot.org/comments.pl?sid=1622780&cid=31904240 just judging by his lame off topic trolling reply, as well as his inability to disprove what was written there.

  158. Roman_Mir FAILS BADLY here by Anonymous Coward · · Score: 0

    Roman_Mir didn't do so well here http://developers.slashdot.org/comments.pl?sid=1622780&cid=31904240 just judging by his lame off topic trolling reply, as well as his inability to disprove what was written there.

  159. We failed by Anonymous Coward · · Score: 0

    at making clear to newbies what distinguishes programmers from script kiddies. They're used to copypasting code, and in their narrow use cases and minds, that's good enough. Beware letting them anywhere near a production system because they will apply the same logic.

    They all need to watch this. "You don't learn by gliding". I'm in love with that guy.

    1. Re:We failed by Anonymous Coward · · Score: 0

      (replying to self)
      Just to be clear, that quote isn't by Nunemaker, it's out of "The Talent Code" by Daniel Coyle.

      As to where exactly we have failed, read the second comment by a Peter:

      Students (or their parents) pay for a degree and treat struggle as something negative: “just tell me the answer so I can get my degree and move on”. When students stumble on a problem, they come to me asking for the answer immediately. I always send them back empty handed, unless I know they have struggled genuinely. I give marks for wrong answers if I know the student struggled! In every case, I see students that have struggled do much better than all the rest.
      I should not blame the students only. I see every day lecturers and teachers bending over backwards to make learning as trouble-less as possible so that they don’t get a bad review at semester end or who knows what else.

      Every time we answer a "give me teh codez" question on stackoverflow with anything other than a flame, we promote that mindset. Kittens will die.

    2. Re:We failed by Anonymous Coward · · Score: 0

      Just to be clear, that quote isn't by Nunemaker, it's out of "The Talent Code" by Daniel Coyle.

      Quoting Jim Stigler.

  160. If you're going to cheat, do it right! by Anonymous Coward · · Score: 0

    When I was in college, we had to turn in our assignments by dropping off a floppy disk on the professor's desk with the source code and compiled executable on it. Our teacher was and older gentleman, and would frequently leave the class to go to the restroom, leaving the collection of floppies vulnerable to anyone wanting to grab one.

    When it came time for our class to turn in our final projects, I was asked to stay after class. The teacher handed me two stacks of paper and told me to take a look at them, The first stack was the source code from my final project. The second stack was the source code of one of my classmates.

    For the exception of a few changed variable names and comments, the code was exactly the same.

    The teacher wanted to hear my side of the story before confronting the other student. He recognized my programming style and knew that I would never do something like this, and if I did, I wouldn't be stupid enough to use the same ascii drawings as code separators. I told him I turned in the assignment over a week ago, and assumed that at some point during that time the disk was taken from his desk. He agreed, and told me I was free to go.

    The other student was dropped from the course.

  161. The instructor used my code to check... by Teunis · · Score: 1

    Back in introductory CS - I'd been programming already for a few years and had read through all of the local college CS texts (not many - but the music ones were neat). The instructor used my code as a basis to spot both cheaters and those who would ask for help. Apparently he could always tell both....
    I still don't know what was so distinctive about my code.

    I will say though that my favourite instructor marked based on how I planned out, documented and finished my code regardless of how well it fit the course. 1989, first year CS while I was finishing my grade 12 - and my final project was a fully functional text-based word processor with built in simple encryption (variation of playfair cypher).

  162. Dubious conclusions by Nabbler · · Score: 1

    How many unique ways are there to write a hello world program? And the whole idea of programming is to use code examples, everybody does and is suppose to do that, even the biggest companies, in fact everybody including mayor distributors of SDK's and compilers andsoforth, they also create whole dedicated sites to providing plug-in example code for people to use. That's what programing is, composing the parts into a whole and building on cleverness of the community.

  163. Once a TA by Anonymous Coward · · Score: 0

    I used to TA a compiler course and 50% of students cheated. I caught them without using code analysis tools.

    A very simple way of doing so is to create lots of test cases. In my case, I created 130+ test cases that tested all aspect of the program. It made both grading and catching cheaters incredibly easy.

    I just needed to look at the scores and compare the scoring matrix. People having the identical score and the scoring matrix are very likely having the same code. Then I did manual inspection to confirm. Except two people who had the same score with different scoring matrices, all other people with the same score pretty much copied one another.

    The funny part was, I gave them the tests (and the testing script) before hand, but none of the students even tried to using simple "printf" statements that mimic the test results :) Instead, they tried more complicated stuff like fake variables, string replacements etc.

  164. Reasoning by Boyne7 · · Score: 1

    I feel like along with the obvious reason that more CS students get caught in entry level classes due to such automated systems that check for duplicate code, etc. the main reason that students cheat in these classes is because many of the people who may or may not be computer science students have no idea how to write code and are therefore absolutely confused. They try to find someone in their class who has a better idea of what they are doing than they do and then use that student's code as an example or simply copy it. Some people simply have a higher aptitude for understanding programming and code than others and that causes the issue.

  165. And by mahadiga · · Score: 1

    I think standing on the shoulders of giants is NOT plagiarism.

    --
    I'd like to buy homeland for our 10 million people. http://twitter.com/mahadiga
  166. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  167. Re:And then they check it? by gr8dude · · Score: 1

    I once made an experiment: the assignment was to write a program that downloads a file via HTTP. Prior to that, they had another assignment which illustrated how one can send and receive stuff via a TCP socket (see Lab#1 and Lab#2 on this page http://info.railean.net/index.php?title=List_of_SIPC_labs%2C_2010).

    Assuming that people are lazy and they don't like to read, I decided to make a video tutorial that explains how HTTP downloads a file. The difference between the first assignment and the last one was very small - it is the same "send and receive stuff via TCP sockets", but this time what you send is a string specified by the protocol. I told them about the RFC, of course, but again - I assumed they wouldn't look at it.

    The video tells one everything they need to know to download a file and implement resume support. Unfortunately, there were quite a few of those who didn't add that feature, even though it was an easy thing to do (especially that I explained everything in class, in much more detail).

    My conclusion is that it is not a matter of lazyness (I can understand not reading a 200 page RFC, but watching a 10min video is easy), it is a matter of making the right choice when going to a university. Most people simply don't belong here. They should have taken another course in another field, one they would be genuinely interested in.

    An alternative explanation is that people are afraid to ask questions; I invest a lot of efforts in reducing the distance between us, to make them feel free and express their curiosity. Sometimes I make lists of FUQs - "Frequantly Unasked Questions", where I offer responses to questions they didn't ask, but which I did ask myself when I was in their shoes. Sometimes I also ask them to write anonymous feedback about the classes, an example can be seen here: http://railean.net/index.php/2010/04/18/metafeedback_on_education

    A feature that I use is a special grading policy (you can see it in the description of those assignments). One has to do X to get 80%, and the extra effort needed to get to 90% is usually very small. And the delta between 90% and 100% is also trivial.

    In other words, if you really worked on the assignment, you'd figure out that if X if "effort points" got you to 80%, X+eps will get you to 90%.

    So I know that if someone went just for the 80% result, they most likely cheated, because if they didn't - they'd obviously go for the 90%, and eventually 100%.

    For instance, the only difference between "downloading a file via HTTP" and "downloading a file via HTTP with resume support" is a "Range: offset-length" string in your GET request. If a student doesn't realize that, I sincerely doubt the fact that they implemented the "usual download" themselves.
    Here's the video I'm talking about, if you're patient enough, you will see how the part about "Range" is explained: http://www.vimeo.com/10011691

    So - if people fail to write a nice program after getting so many hints, they don't deserve any credit.

    My final "feature" is that they can only get their grade after I interview them - they have to walk me through their code and answer various questions I ask them about their implementation.

    This approach takes a lot of time and it doesn't scale well (my group is made of 20 students, so I can afford to dedicate a lot of time to each of them), but it allows me to make sure that those who really know what they are doing will be rewarded, and that those who don't will get a chance to improve.