Slashdot Mirror


As Computer Coding Classes Swell, So Does Cheating (nytimes.com)

An anonymous reader shares a report: College students have flooded into computer science courses across the country, recognizing them as an entree to coveted jobs at companies like Facebook and Google, not to mention the big prize: a start-up worth millions. The exploding interest in these courses, though, has coincided with an undesirable side effect: a spate of high-tech collegiate plagiarism. Students have been caught borrowing computer code from their friends or cribbing it from the internet. "There's a lot of discussion about it, both inside a department as well as across the field," said Randy H. Katz, a professor in the electrical engineering and computer science department at the University of California, Berkeley, who discovered in one year that about 100 of his roughly 700 students in one class had violated the course policy on collaborating or copying code. Computer science professors are now delivering stern warnings at the start of each course, and, like colleagues in other subjects, deploy software to flag plagiarism. They have unearthed numerous examples of suspected cheating.

250 comments

  1. Nothing new here by Anonymous Coward · · Score: 2, Interesting

    Borrowing, or reusing code, has always been the norm and is the basis for libraries of routines and procedures. Blatant ripoffs should be obvious but smaller scale plagarism (your word) is hard to determine.

    1. Re:Nothing new here by gweihir · · Score: 4, Informative

      Often it is extremely easy to determine, namely from patterns of mistakes. I once, as a TA, had a case where I refused points for some exercises to several students. They complained, and then I showed them how a comma had become a dash and then had become a quote over several generations of copying (with the dash and the quote making absolutely no sense in the given context). That shut them up pretty fast.

      Of course, for simple and correct code fragments you cannot actually detect cheating reliably. The easy solution is to make the exercises more complex. Students are coddled far too often in coding courses anyways.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    2. Re: Nothing new here by Anonymous Coward · · Score: 0

      Basically that.

      Copying, reusing, and not constantly try to reinvent the wheel is what computer science is about. That's why open source and copyleft are at the core of our daily jobs.

      100 points for the cheaters from Slitherin.

      But then again, it never was, in this case, about being a good CScientist, and more of a good cash cow student.

    3. Re: Nothing new here by Anonymous Coward · · Score: 4, Insightful

      Sums it up. Or they get a friend to write it for them. I remember in college I was the only one in my computer science class to get a week long project right and have unique code. Everyone else either got it wrong, or all had the same code.

      But I agree, kids are coddled in class. This is a very tough mental field. The campaigns to teach everyone to code make it seem like it's house work. Anyone can do it. I think they are finally realizing it's not so.

    4. Re: Nothing new here by gweihir · · Score: 1

      This is a very tough mental field. The campaigns to teach everyone to code make it seem like it's house work. Anyone can do it. I think they are finally realizing it's not so.

      I sure do hope so.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    5. Re:Nothing new here by XxtraLarGe · · Score: 4, Informative

      Often it is extremely easy to determine, namely from patterns of mistakes.

      It's even easier when it's a direct copy. I've had students who copied homework directly, including the same errors, and the same comments. One time, I had a student use another student's file and they didn't even bother to remove the other student's name out of the comments section. They both got 0's for the assignment, and it was a pretty hefty assignment to get a 0 on.

      --
      Taking guns away from the 99% gives the 1% 100% of the power.
    6. Re:Nothing new here by XxtraLarGe · · Score: 4, Interesting

      Borrowing, or reusing code, has always been the norm and is the basis for libraries of routines and procedures. Blatant ripoffs should be obvious but smaller scale plagarism (your word) is hard to determine.

      In my classes, the students are expected to complete the assignments using the techniques covered to date. That is because what we learn in the next class often relies on understanding what we covered in the previous when. So when they use a solution that is beyond what they have already learned, they are putting themselves even further behind the curve.

      You can't imagine how many times I've had students make a hamfisted attempt to insert something they found on Stack Overflow that uses techniques not yet covered in the course. Since they don't understand what that code is supposed to do, it often doesn't work correctly, or crashes because they thought they could copy & paste without even compiling. I have no problem giving those students a 0 on their assignments.

      --
      Taking guns away from the 99% gives the 1% 100% of the power.
    7. Re: Nothing new here by Anonymous Coward · · Score: 2, Interesting

      Anyone can code, it just needs to compile. Almost no one can program. Crap code is breaking in odd ways because of huge amounts of undefined behavior. Most of the time the programmer can't even tell you why their code worked in the first place, yet alone make it work against once it breaks. Large amounts of determinism allows most to plow through their lack of understanding by throwing code at the wall and seeing what sticks.

    8. Re: Nothing new here by pr0fessor · · Score: 1

      Today everything is color coded and can't be installed in the wrong place or backwards, not like years ago when installing a stick of ram could fry everything if you put it in backwards... The barrier to entry is much lower for just about everything computer related and as kids now grow up with computers in their pockets from the time they are little, that barrier is going to just get lower. Eventually there will be few real programing jobs and a bunch of drop in ide code everywhere and it's not far off at all.

    9. Re: Nothing new here by Anonymous Coward · · Score: 0

      Coding isn't a tough mental field. It's just nobody wants to do the easy training exercises. Then when they skip all of that they run into real trouble when they have a harder problem to do.... too late to learn, so they just copy.

    10. Re: Nothing new here by DuckDodgers · · Score: 2, Informative

      Bullshit. This is not a tough field. When CS101 and CS102 classes are hard, all you're doing is weeding out the kids who didn't have any coding experience in high school.

      My family didn't own a fucking computer before I got to college. I wanted to work in the industry, but I new nothing. I passed my first three classes by cheating. The kids that aced had taken programming classes in high school and owned computers since they were in elementary school. By junior year I was all caught up. I'm still working as a developer, almost twenty years later. Java, Python, Perl, Scala; git; Maven; Jenkins; shell, vim, sed, piping. And I would have never got here if they did a better job catching cheaters at school.

      All you're doing is weeding out the people that didn't start young.

    11. Re: Nothing new here by Anonymous Coward · · Score: 0

      My parents worked hard to give me these advantages over students with less educated parents. Sounds like the system is working. :P

    12. Re:Nothing new here by A.+Craig+West · · Score: 1

      Really? When I was doing programming in university, I had already been programming for six years before that. I started very young...

      --
      It's not a bug, it's a feature...
    13. Re:Nothing new here by timholman · · Score: 1

      In my classes, the students are expected to complete the assignments using the techniques covered to date. That is because what we learn in the next class often relies on understanding what we covered in the previous when. So when they use a solution that is beyond what they have already learned, they are putting themselves even further behind the curve.

      And unfortunately for them, once they start down that path it is nearly impossible to turn things around. Every semester, I warn students not to copy homework answers from a downloaded textbook solutions manual. Inevitably I wind up giving failing grades to several students with excellent homework grades who have miserably failed every exam.

      Some students start out with the best of intentions, then get behind and copy an assignment while promising themselves they'll catch up later. Of course, it never happens. Every assignment is simply more incomprehensible than the one before it. A month later, they're hopelessly lost.

    14. Re: Nothing new here by gweihir · · Score: 1

      While I thing that this will still require quire some time and I think most frameworks make application coding actually more difficult (at least if anything goes wrong), I do agree that eventually only a few real coders will be left. But that is the same in other fields. For example, there are much more electricians than EEs (working as EEs), and the like. Of course, the only good jobs will be the ones where you write real code and everybody else will be easily replaceable.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    15. Re: Nothing new here by gweihir · · Score: 1

      That, if true, is very far from the standard case. The standard case is that the "coder" is clueless because of lack of capability for insight. That is not a question of "doing the exercises".

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    16. Re:Nothing new here by gweihir · · Score: 1

      Ah, yes. Some students truly aim to attain new heights of incompetence. Leaving the name in is pretty "special" ;-)

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    17. Re: Nothing new here by steveg · · Score: 3, Insightful

      Reusing code for some sort of production is good sense.

      Reusing code that you are supposed to be writing in order to learn *how* to write it using certain techniques short circuits the learning process. You may get the code to do what you want, but the important result (you learned how to do it) doesn't happen. Nobody needs a program to pick from a menu to multiply two numbers, or to print out a Fibonacci sequence, or whatever. What they do need is a programmer who can create these things, because that programmer is on their way to create things that will actually be useful.

      So reusing code for school assignments is stupid. You may or may not get caught, but either way, you didn't learn anything. So why even take the class?

      --
      Ignorance killed the cat. Curiosity was framed.
    18. Re: Nothing new here by Anonymous Coward · · Score: 0

      Maybe the college method of 'teaching' simply is not a conductive environment to learning to code. Maybe a large number of college students are not there to learn a profession, but to receive a stamp of approval.

    19. Re:Nothing new here by Anubis+IV · · Score: 4, Informative

      Same here. I used to have a group of students (from a part of the world where plagiarism is more culturally accepted) sit in the lab and work together. With me sitting just a few feet from them, I watched them as they copied code back and forth from each other's screens, so I made it clear that while they could work together in figuring out the algorithm, it was up to each of them to actually implement the algorithm. They nodded, made a gesture of following what I said, and then went right back to it again.

      So, since their code ended up being identical, I gave them 0s.

      After that, they stopped copying from each other while sitting in the lab, and instead took their cheating out of class. Thankfully, that was even easier to detect, since they'd have signature traits, such as the same number of irrelevant trailing spaces at the ends of specific lines. They started changing variable names and intentionally adding whitespace in irrelavant places, just to make their code look distinct. What they didn't know is that I had a plagiarism detection tool that accounted for those sorts of changes, and sure enough their code always came out as a 100% match for someone else in the class, while everyone else's would be around 20-50% (which was expected, given that there are only so many ways to implement simple tasks).

      Much to my disappointment the professor refused to act on any of it, so the best I could do was give them 0s when it was abundantly clear they were cheating. Eventually they started changing the implementation enough that the tool I used no longer showed a 100% match, but at that point they were effectively re-implementing it themselves anyway, which was exactly what we wanted from them in the first place.

    20. Re: Nothing new here by Anonymous Coward · · Score: 0

      ...require quire some time...

      Wow, the use of that old unit brings back memories.

    21. Re:Nothing new here by Dan+East · · Score: 1

      Back in the early 90s I was an assistant to a CS instructor, and one of my jobs was to grade assignments (if you ever have the opportunity I strongly recommend doing so - it's amazing to see the very different ways students go about solving a problem, as well as the vast difference in coding styles, etc). It was blatantly obvious when students had collaborated, and I would point out to the instructor which students appeared to have shared code with one another.

      Also at this point in time in the 90s, the ability to find source code for use in very specific programming assignments was very difficult if not impossible. The WWW was in its infancy, and the only real options were gopher or Usenet. In the case of the latter, it was very clear when people were asking others to do their assignment for them, and typically several posters would call them out on that.

      --
      Better known as 318230.
    22. Re: Nothing new here by pr0fessor · · Score: 1

      The use of frameworks, ide, and markup is common already and you don't need to be a rocket surgeon just need to have played with a model rocket... it's easy and fast though you are right if anything goes wrong only someone that really knows what they are doing can fix it.

    23. Re: Nothing new here by rogoshen1 · · Score: 1

      "if they made computers easy to use like the TV then people in the community could compete against the whites and the chinese" -- some random dude in oakland complaining about the lack of diversity in IT.

      Apparently reality does not meet up with that gentleman's (or the idiots pushing the idea that everyone should code! #kodewithkarlee -- aka, ls ls ls ls cd .. ls ls) perception.

      Because coding IS hard, and is something you have to be passionate about to be worth a god damn; cheating is the logical outcome. (don't even get me started on 22 year old snowflakes who gimped their way through school, and finally land an entry level job, then proceed to complain about how hard for loops are.)

    24. Re:Nothing new here by istartedi · · Score: 1

      Yeah, it was about 4 or 5 years for me before university. If somebody is using techniques that weren't taught, they might be copy-pasting or they might be more experienced. I couldn't pass the AP test to get out of CS, so I still had to take it but I knew more than beginners.

      I have mixed emotions about some of the down-grades I got. One time I got marked down for using the "wrong" kind of state machine by a TA. He showed me a cookie-cutter process (that we hadn't even been taught) and told me it was the expected procedure to use for generating the machine, and marked me down for not knowing that. Thinking about that still pisses me off. I deemed it unwise to waste the prof's time arguing about it. That's about as much politics as you get in engineering school.

      OTOH, I turned in a program one time with self-modifying code because I thought it was elegant. I got slammed for that, and it was the right call. When I was that age, I thought it was "cool" that a program could modify itself. I guess it still is in a game or something; but not in secure, maintainable code.

      --
      For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
    25. Re:Nothing new here by Hognoxious · · Score: 2

      plagarism (your word)

      Wrong. His word was plagiarism.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    26. Re:Nothing new here by Anonymous Coward · · Score: 0

      In my classes, the students are expected to complete the assignments using the techniques covered to date.

      That is the worst sort of professorship. Once I had an SQL class that required a right join returning exactly three rows in an arbitrarily large dataset, sorted by specific descending index and date range values all before we were taught how to do right joins, indexes, date ranges, and top selection.

      Everyone failed the assignment.

      The actual solution was to do four nested left joins, dump to a new table, create a new column that is functionally an index without being an index, then select from there.

      How could that possibly be valuable to know? Why would anyone need to know that a series of well-crafted, nested left joins can be substituted for a single right join and common filters?

    27. Re:Nothing new here by Anonymous Coward · · Score: 0

      Me too.
      The Professor Wrote "You Did Not Learn This Yet" and handed it back.
      His Class, His Rules. I did it the hard way, and resubmitted it.

    28. Re: Nothing new here by The+Snowman · · Score: 3, Insightful

      Eventually there will be few real programing jobs and a bunch of drop in ide code everywhere and it's not far off at all.

      If Salesforce is any indication, the "drag and drop" model of designing a system is nowhere near ready for prime time. Even simple implementations require a real programmer to make them work, despite what they promise.

      --
      24 beers in a case, 24 hours in a day. Coincidence? I think not!
    29. Re:Nothing new here by maestroX · · Score: 1

      It's even easier when it's a direct copy. I've had students who copied homework directly, including the same errors, and the same comments. One time, I had a student use another student's file and they didn't even bother to remove the other student's name out of the comments section. They both got 0's for the assignment, and it was a pretty hefty assignment to get a 0 on.

      All nice and dandy, I remember getting this "copy" mark once without foul play (some frequency analysis flag) and it was, to say the least, pretty fucked to get at least the *opportunity* to redo the assignment, let alone the effort. . Be fucking sure it is foul play before condemning students--

    30. Re:Nothing new here by TimHunter · · Score: 1

      With that level of stupidity a 0 for the assignment is letting them off easy. I'd just show them the door.

    31. Re:Nothing new here by pjt33 · · Score: 1

      Sounds like you started quite old. I'd been programming for ten years when I started university, and I'm sure someone's about to one-up me...

    32. Re:Nothing new here by Anonymous Coward · · Score: 0

      Touche! OP here, you are correct so I fail too. In my defense my attempts as a CS student at plagiarism fell short of these students but I didn't have the web at my disposal back in the mid 80's. Code reuse is still good.

    33. Re:Nothing new here by Anonymous Coward · · Score: 0

      I suspect the difference is that it's now easier to detect. I remember lab reports being handed down from one year to the next and classes where most of my fellow students copied at least some parts of their assignments, but that was before we had turn-it-in and the like, so markers would only catch the gratuitous cases and the very stupid.

    34. Re: Nothing new here by pr0fessor · · Score: 1

      I was thinking more along the lines of visual studio... but yeah some the drag-n-drop stuff out there is a nightmare.

    35. Re:Nothing new here by OzoneLad · · Score: 1

      When I was a marking assistant, I would be assigned a portion of a class assignments to mark. Once, I had to mark two assignments where the code was identical, save for variable names. Both assignments had full documentation and printed out (this was the early 90s) test runs, which was a neat trick because one of the assignments had missed a variable when doing the search and replace, and shouldn't have been able to compile at all.

    36. Re: Nothing new here by barbariccow · · Score: 2

      IDE? How the hell does anyone program anything without vim? I don't get it. Like... once you learn how to record (either via 'q' for complex recording, or '.' for "repeat last action" simple recording).... how do you ever go back to basically a colorful notepad?

    37. Re: Nothing new here by barbariccow · · Score: 1

      Programming is just a dictation of logic. If you understand how you think and solve problems, you recreate it for a computer to do much quicker. Encapsulate like your mind encapsulates objects as distinct and concepts as distinct. Then, interact between the objects.

      It's double-ended too. The more I program, the more I understand thought patterns. The more I think about thought patterns, the better I understand code. Hell, I can look at someone's code and know exactly how they see the world and interpret transformations.

      Remember... all the knowledge of the universe runs on any wire at any time. It's only useful to us if we follow transformations and display information that a person can then understand. That's the core of programming.

    38. Re: Nothing new here by serviscope_minor · · Score: 1

      Because coding IS hard, and is something you have to be passionate about to be worth a god damn;

      No it ain't and no you don't. Being a great coder is hard and to be the best you generally need passion.

      You don't need to be the best or great to be useful however. In fact there are plenty of people who have no particular love of coding but see it quite reasonably as a means to an end. For example the coding is required to control this or that piece of kit or to perform the right kind of data analysis etc etc.

      --
      SJW n. One who posts facts.
    39. Re:Nothing new here by barbariccow · · Score: 1

      That always got me bad grades. I had already been programming professionally for many years before I decided to try for a CS degree. I already knew everything, and often did things in ways the TA's didn't understand, or that was beyond where we were, and would get marked down for it. The ONLY CLASS IN THE WORLD where you can get marked down for over-achieving. In fact, I used to sell my work to girls, I'd put errors in my code and change things around. They'd get better grades.

    40. Re:Nothing new here by Anonymous Coward · · Score: 0

      No, what it is is that millennials are lazy, lying little sacks of shit that deserve a serious ass kicking.

    41. Re: Nothing new here by K.+S.+Kyosuke · · Score: 3, Informative

      How the hell does anyone program anything without vim?

      Using Emacs, obviously. ;)

      --
      Ezekiel 23:20
    42. Re:Nothing new here by Anonymous Coward · · Score: 0

      In the CSCI usability class that I teach, we spend the first half of the semester learning about usability testing and the second half practicing it. Then the students do a final project, and write a final paper based on their work. The paper is in the form of a journal article. I give them a template for the paper, similar to how many journals expect you to follow their templates.

      In reading one paper, I recognized two paragraphs from a journal article I'd assigned during the semester. And I wrote that journal article.

      Student and I had a discussion, and the end result was he scored very poorly on the final paper, which reduced his final grade by an entire grade level, from a low- to mid-A to a B-.

    43. Re:Nothing new here by Anonymous Coward · · Score: 0

      one-up me

      Exactly one, 11 years here. But then again, I'm a filthy early millenial. Now if you'll excuse me, my attention span is over.

    44. Re: Nothing new here by Anonymous Coward · · Score: 0

      You haven't programmed enough then.

    45. Re: Nothing new here by Time_Ngler · · Score: 1

      What's a "fucking computer"?

    46. Re:Nothing new here by Anonymous Coward · · Score: 0

      I once, as a TA, had a case where I refused points for some exercises to several students.

      The problem is that the exercises have points associated with them.
      It's not high school, it's college. Points should only be awarded for in-class exams, where you can ensure that nobody has the opportunity to cheat from online posts.
      Giving points for homework is a bunch of bullshit. If someone can pass the class without doing any homework, then they deserve to pass the class. Homework is supposed to be a tool to help the students learn, not an objective.

      Let the idiots cheat off each other on the homework, they won't learn anything and then they'll get a nice failing grade.

      Students are coddled far too often in coding courses anyways.

      On that point I fully agree with you.

    47. Re: Nothing new here by Anonymous Coward · · Score: 0

      When CS101 and CS102 classes are hard, all you're doing is weeding out the kids who didn't have any coding experience in high school.

      No, you're weeding out the adults who don't have the right kind of mindset to be programmers.

      I'm still working as a developer, almost twenty years later. Java, Python, Perl, Scala; git; Maven; Jenkins; shell, vim, sed, piping.

      Case In Point.

      All you're doing is weeding out the people that didn't start young.

      The same argument could be made about any Major. Go try being a Lit Major without having a strong background in Reading and Writing. Go try to be a Music major without having played at least one instrument growing up. Try getting on the College Sports team without years of practice.
      CS is the same thing. It's not a place for beginners, unless you have the raw talent to pick it up fast. College isn't supposed to be a place where you learn everything starting from absolute Zero. That's why it's called POST-secondary education, and not "primary school."

    48. Re: Nothing new here by Quirkz · · Score: 1

      For sure. I've written code in order to solve word puzzles, or to create them. Realizing I could apply programming to a dictionary file was an eye-opening experience for me.

    49. Re:Nothing new here by networkBoy · · Score: 1

      My ex got flagged for plagiarizing from *herself*.
      Basically a sophomore class and later graduate class on the same topic assigned the same writing prompt about the same historical site.

      While my ex *did* write a new essay, the source material didn't magically change in two years, nor did her writing style or propencity for fscking up affect/effect, then/than, their/there/they're in the same ways, so...

      FLAGGED!

      --
      whois gawk date unzip strip find touch finger mount join nice man top fsck grep eject more yes exit umount sleep dump
    50. Re:Nothing new here by networkBoy · · Score: 1

      Secure? yes*, maintainable? not so much.

      *WRT polymorphic viruses.

      --
      whois gawk date unzip strip find touch finger mount join nice man top fsck grep eject more yes exit umount sleep dump
    51. Re: Nothing new here by mallyn · · Score: 1
      Hold on!!!! You might be correct with some connectors. But you forgot about static sensitivity and power supply voltages.

      In the old days, TTL logic was 5 volts and components were larger and more robust.

      Now, I understand that some components are either 3 volt or even 1/5 volt logic. You put 5 volt logic into a 3 or 1.5 volt logic device and you have just lost the device. This has happened to me.

      Try using the Raspberry PI with some 5 volt components. You just lost the GPIO of the Raspberry if not the entire Raspberry device.

      With many devices, you must wear the static electricity handcuff. If you don't, and if you are careless on a carpeted floor, you can kiss the device good bye.

      I do agree that devices are less likely to kill you. Lethal voltages (anything over 12 volts) are mostly gone from newer devices.

      I hail from the vacuum tube days where you quickly learn to keep one hand in your pocket and do not work in a damp basement with a concrete floor. In fact, I am still practicing those procedures at the Spark Museum while working on their vintage radios and electronics!

      --
      Most Respectfully Yours Mark Allyn Bellingham, Washington
    52. Re: Nothing new here by DuckDodgers · · Score: 1

      You're weeding out the people whose secondary education program didn't have adequate computer science offerings. Even in 2017, that describes most secondary schools in the US.

    53. Re: Nothing new here by DuckDodgers · · Score: 1

      How do you know what the standard case is? My oldest kid at eleven was writing better code than I could at 19. He had access to better teaching materials and an experienced mentor. If he ever takes CS101 at a college, he'll sleep through it. That doesn't mean he's got some special 'capability for insight'.

      We take for granted all of the concepts you have to handle to be a developer. We do abstract visualization of algorithms - and not just the fancy O(n logn) stuff but even simple things like "open the file, read each line, extract the entries between the third and fourth commas, convert from string to integers, sum the values". We know syntax rules, and won't get tripped up by errors like "if (condition);" (the semi-colon means the if condition has no result). We understand concepts like explicit and implicit type conversions. We understand variable scoping. We understand passing by value and passing by reference. We understand compilers and interpreters. We understand static types and dynamic typing.

      And none of those concepts are difficult. Really, they're not, as long as you learn them one at a time, in isolation. If you throw three or four at a novice at once, that person is going to choke even if their raw intelligence is really high. I had a tough time with the learning process and cheated to pass the first few classes. When I was in my 20s, my father tried to make a career switch into software development. His CS101 class had C++ with some libraries and web services. The old guy had a full scholarship to college the first time around and graduated with a degree in math, so he's not stupid. But the only people who passed that class were the ones that were experienced developers that just wanted to put a degree on their resume. Every true novice flunked.

    54. Re:Nothing new here by XxtraLarGe · · Score: 1

      In my classes, the students are expected to complete the assignments using the techniques covered to date.

      That is the worst sort of professorship. Once I had an SQL class that required a right join returning exactly three rows in an arbitrarily large dataset, sorted by specific descending index and date range values all before we were taught how to do right joins, indexes, date ranges, and top selection.

      I think you may have misread what I wrote; it sounds like the assignment you're describing is the exact opposite of what I do.

      --
      Taking guns away from the 99% gives the 1% 100% of the power.
    55. Re:Nothing new here by XxtraLarGe · · Score: 1

      That always got me bad grades. I had already been programming professionally for many years before I decided to try for a CS degree. I already knew everything, and often did things in ways the TA's didn't understand, or that was beyond where we were, and would get marked down for it. The ONLY CLASS IN THE WORLD where you can get marked down for over-achieving.

      At the start of every semester, I give my students a survey that goes over their computer & programming experience. None of my copy/paste all-stars have ever had the kind of experience you have.

      --
      Taking guns away from the 99% gives the 1% 100% of the power.
    56. Re:Nothing new here by SandWyrm · · Score: 1

      Yeah, by the time you've seen the third project with the exact same spelling, spacing, and punctuation mistakes, you know you have a problem. In my case six students out of 24 had copy-pasted their code. Cue crying and angry parents saying that it was supposedly OK because they all got together as a study group and manually copied their 100 lines of code verbally (yeah right).

    57. Re: Nothing new here by SandWyrm · · Score: 1

      "This is a very tough mental field. The campaigns to teach everyone to code make it seem like it's house work. Anyone can do it. I think they are finally realizing it's not so."

      Yeah, nobody outside the field understands that the language is only part of it. The real work is breaking down a problem into a series of logical steps. A vast majority of the population simply will never be able to do this.

    58. Re: Nothing new here by Anonymous Coward · · Score: 0

      Or any of a gazillion other text editors....

    59. Re: Nothing new here by Anonymous Coward · · Score: 0

      Or who aren't motivated enough to learn on their own

    60. Re: Nothing new here by peawormsworth · · Score: 1

      In high school, I wrote code that was copied by 3 other students. The teacher said he would take the 90%ish grade on it and divide it between all of us. I stood my ground and said it was unacceptable to get dinged because others cheated and the teacher told me that it was my fault for not protecting my own code and didn't really have a way to tell it was mine. But I was the only one that was so adamant about it.

      Later in the year, it was discovered that one of the students had written a fake login screen for the computers and was collecting user passwords. He was also selling commercial software and games that he had "cracked" to other students.

      I couldn't understand why someone so obviously smart in computing would not just write the code for the assignments. But some people are just drawn to the dark side of computing. I would imagine that he is working for the government now, breaking into yours and my computers and phones right now. That is where the darkest of darkest people get jobs.

    61. Re: Nothing new here by K.+S.+Kyosuke · · Score: 1

      There are other text editors?!

      --
      Ezekiel 23:20
    62. Re: Nothing new here by DuckDodgers · · Score: 1

      How many biology 101, history 101, or Mandarin 101 professors expect the students to enter the classroom with a decent background in the topic? "101" course levels imply introductory material. Until computer science classes are a standard, non-optional part of high school education in every school in the country, college CS101 students should be expected to know nothing about programming when they get to their first class.

    63. Re: Nothing new here by Hognoxious · · Score: 1

      Fucking twaddle. How many highschools run classes in medicine, law, accounting, engineering...

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    64. Re:Nothing new here by Hognoxious · · Score: 1

      Fucking softy. I'd have given the little sadpacker an F.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    65. Re: Nothing new here by Anonymous Coward · · Score: 0

      Quit teasing him.....nobody gets anything done in emacs

  2. How many different ways to solve problems? by grasshoppa · · Score: 1

    How many different ways can you solve a college level problem in a course assigned language? If you have 700 students, I guarantee successful assignments are going to look like they copied each other to varying degrees.

    --
    Mod me down with all of your hatred and your journey towards the dark side will be complete!
    1. Re:How many different ways to solve problems? by Anonymous Coward · · Score: 4, Informative

      There may be a limited number of ways to solve the problem, but there are an unlimited number of variable names that can be leveraged to solve a problem.

      No two should be identical. Though all will be similar.

    2. Re:How many different ways to solve problems? by king+neckbeard · · Score: 1

      Yes, there are unlimited possible variable names, but ideally, variable names make sense. The number of variable names that make sense is much more limited.

      --
      This is my signature. There are many like it, but this one is mine.
    3. Re:How many different ways to solve problems? by Anonymous Coward · · Score: 0

      Bah. Students who use 1 letter variable names will have a terrible collision rate. There's documented cases of two students known to do their own work having turned in byte-identical files except for their names at the top.

    4. Re:How many different ways to solve problems? by pr0fessor · · Score: 1

      There also some commonly used variables for loops with int i and st as stream and they are repeated all over but generic variables are a different problem.

    5. Re:How many different ways to solve problems? by beelsebob · · Score: 4, Informative

      The key is that there's nearly unlimited ways to solve a problem incorrectly, but when the exact same incorrect solutions keep coming up within the same sets of students it becomes very obvious to the teaching assistant what's going on.

    6. Re:How many different ways to solve problems? by grasshoppa · · Score: 2

      The key is that there's nearly unlimited ways to solve a problem incorrectly,

      Point of fact, there are a very small number of ways to solve simple, college level problems. Obfuscation is not a coding methodology we want to be encouraging, afterall.

      You have a valid point about incorrect assignments, however.

      --
      Mod me down with all of your hatred and your journey towards the dark side will be complete!
    7. Re:How many different ways to solve problems? by Anonymous Coward · · Score: 4, Funny

      if something like that happens, you just pull both students in independently and ask them to explain how the code works and ask a few pointed questions. In general the students who copy do it because they don't understand the problem or how to solve it, some won't even understand the language they are supposed to be working on.

      Funny story in college I had an instructor end class early because he was so enraged by a cheating student. I think it was the complete lack of effort that did it, the student turned in the 1st assignment from last year for this years first assignment, despite the fact that the problem had changed.

    8. Re:How many different ways to solve problems? by Anonymous Coward · · Score: 0

      This! When in school a few of us were accused of cheating because our code was too similar. The same person taught us how to design write code and designed and gave us the same problem, OF CAUSE THE CODE WILL BE SIMILAR! We were trying to please you by using your coding rules! Now I name every variable i and iii and iiiii... Because naming them something like iTargetTempCelcius will get you in trouble!

    9. Re:How many different ways to solve problems? by Anonymous Coward · · Score: 4, Insightful

      I used to run diffs on everyone's code, piped to wc -l to see who had the smallest number of different lines. I'd check those. Usually they were identical down to the whitespace with only variable names changed. Sometimes only comments. Rarely, but it happened, no changes except the filename. Students heard that I automated grading so they assumed I wasn't checking. it was more work to make their code look different than to write it from scratch.

    10. Re:How many different ways to solve problems? by grasshoppa · · Score: 4, Funny

      Heh, I'd have been the dick who wrote an automated obfuscator. Flip the indentation from spaces to tabs ( or tabs to spaces ), randomly change ctime/mtime ( within acceptable range ), camelcase to underscore ( or reverse ), use a dictionary to change variables to their synonyms, add generic comments ( ala "palm reading" ), randomly placed returns ( where language appropriate ).

      Figure that wouldn't take more than an afternoon to code up.

      Could get even crazier by adding the ability to swap out loops ( foreach to while/for ), but those can impact overall grade and is language specific so it'd have to wait for v2.

      --
      Mod me down with all of your hatred and your journey towards the dark side will be complete!
    11. Re:How many different ways to solve problems? by twistedcubic · · Score: 4, Insightful

      Some things you only realize when you have to grade students' programs. Clueless programmers cheat in clueless ways, of course, because if they were clever at hiding that they copied, they could just use this skill to write the programs on their own. Also, the anti-cheating programs we use are way more sophisticated than inept programmers. I use the excellent VPL Moodle plugin (https://moodle.org/plugins/mod_vpl) which has this built-in.

    12. Re:How many different ways to solve problems? by computational+super · · Score: 3, Funny

      an unlimited number of variable names

      What? There are only 26 letters. a = b; b = c; and now I've already used up 3 variable names.

      --
      Proud neuron in the Slashdot hivemind since 2002.
    13. Re:How many different ways to solve problems? by Anonymous Coward · · Score: 0

      It's pretty easy to tell unless they've been copying since the beginning. Deprecated functions from the standard library appearing out of no where. Suddenly the code is very concise. Or the code they hand in has never been tested. This hurts our students the most. They find a "solution" on stack overflow, but it has so many problems they end up missing a lot of points.

    14. Re:How many different ways to solve problems? by Anonymous Coward · · Score: 0

      Not to mention that learning how to "cheat" effectively is actually a key skill for a programmer to have. If you don't know how to copy/paste a code snippet from GitHub, StackOverflow, Google, or whatever and make it work in the context of what you're doing, then you're probably not going to get very far in most programming jobs.

    15. Re:How many different ways to solve problems? by pr0fessor · · Score: 1

      I like how you point out it's the assistant that is doing the grading of assignments.

    16. Re:How many different ways to solve problems? by uncqual · · Score: 1

      Back in the day, we all used i , j , and k and none of us got accused of copying because of using the same variable names.

      Get off my lawn.

      --
      Why is there an "insightful" mod and why isn't it "-1"? If I wanted insight, I wouldn't be reading /.
    17. Re: How many different ways to solve problems? by Anonymous Coward · · Score: 0

      Yes and no. If you understand it, yes. Its the idea of frameworks and libraries.

      But school is not the regular job. School is where your job is to learn and create original none-time efficient work.

      People trying to simplify concepts so much they confuse themselves.

      School is where you do spend your time learning and understanding then code by practice.

      Work us where you already understand it so you know what you are copying.

      Don't confuse these. Students will always fail out when they don't study.

      I see it over and over. Its so easy to see the students that do not study. They have trouble on the same concepts that other students do not.

      Even typing

      Public static void main(string[] args).

      You need to type this and have it memorized.

      Or the written test you will be so stupid, you can't even start a program.

      And yes. It is absolutely STUPID.

    18. Re: How many different ways to solve problems? by Anonymous Coward · · Score: 0

      If you could do that as a student - you are a good student.

      The problem is lost cheaters can't even cheat.

    19. Re:How many different ways to solve problems? by HornWumpus · · Score: 1

      Back then, the type was implicit in the first letter of the name and only two characters counted.

      --
      John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
    20. Re: How many different ways to solve problems? by grasshoppa · · Score: 1

      I was a horrible student, but CS courses were where I excelled ( except, notably, in the MS courses. Go figure ). I never pulled the auto-cheater thing outlined above, but I did other things throughout my college life which rivaled it.

      I got the distinct impression that my professors were glad to see the end of me in their classes. One actually flat out told me so ( he later hooked me up with a great job ).

      --
      Mod me down with all of your hatred and your journey towards the dark side will be complete!
    21. Re:How many different ways to solve problems? by freeze128 · · Score: 1

      The summary doesn't mention what language the classes are teaching, but I wonder if there really is an unlimited number of variable names. In Microsoft C++, the variable names are limited to 2048 characters.

    22. Re:How many different ways to solve problems? by freeze128 · · Score: 2

      If you were a student, and you wrote that obfuscator just so you could copy someone else's code, then I would say that you deserve to pass your programming class.

    23. Re:How many different ways to solve problems? by Dan+East · · Score: 1

      Point of fact, there are a very small number of ways to solve simple, college level problems.

      From a algorithmic sense yes, from an implementation sense, no. You are to write a function to calculate the nth number in the Fibonacci sequence, using only operators inherent to the language (IE no math libraries). What will you name the function? What will you name your variables? Will you use an iterative method, and thus will you use a for loop, or a do...while loop. Will you count up or count down? Or will you use a recursive function? Or perhaps you do some research and discover Binet's formula which calculates a Fibonacci number without iteration.

      I guarantee you if you ask 20 developers to write that function, you will get 20 different implementations that differ quite enough to tell they are not copies of one another.

      --
      Better known as 318230.
    24. Re:How many different ways to solve problems? by Anonymous Coward · · Score: 0

      And they still don't. However, it's a combination of the variable names used, the comments, the spacing and so forth. No instructor is going to take points for using i, j or k for as a loop variable as it's largely standard. Sometimes it's nice to use something descriptive like line or word, but if it's just th ith or jth term, then there's no point in that.

      If two pieces of code look identical, the student that wrote the code should be able to explain the code and why they made those decisions. If both students can do that, then just give them the points as they know the necessary information to do the work.

    25. Re:How many different ways to solve problems? by kleinesRaedchen · · Score: 2

      Heh, I'd have been the dick who wrote an automated obfuscator.

      Your obfuscator would be entirely useless against professional plagiarism programs.

      Flip the indentation from spaces to tabs ( or tabs to spaces ), randomly change ctime/mtime ( within acceptable range ), camelcase to underscore ( or reverse ), use a dictionary to change variables to their synonyms, add generic comments ( ala "palm reading" ), randomly placed returns ( where language appropriate ).

      spaces to tabs: whitespace usually is ignored
      ctime/mtime: why should this be considered anyway?
      camelcase to underscore: identifier names are ignored
      change variable names: identifier names are ignored
      add generic comments: comments are ignored
      randomly placed returns: whitespace usually is ignored

      Professional-grade plagiarism programs see
      int a = b
      + 2;

      as token sequence
      INT INDENT ASSIGN INDENT PLUS 2 SEMICOLON

      All of your obfuscations are snake oil.

      Figure that wouldn't take more than an afternoon to code up.

      Could get even crazier by adding the ability to swap out loops ( foreach to while/for ), but those can impact overall grade and is language specific so it'd have to wait for v2.

      Swapping code parts woul indeed challenge plagiarism programs. But, as you conceded, this is hard to implement without introducing errors.

    26. Re:How many different ways to solve problems? by grasshoppa · · Score: 1

      ...and now I'm back to wondering how you might hope to catch cheaters when you have a program which starts by abstracting away the minutia when you're dealing with simple college level coding problems.

      There are only so many ways to solve the same problem.

      --
      Mod me down with all of your hatred and your journey towards the dark side will be complete!
    27. Re:How many different ways to solve problems? by rhsanborn · · Score: 1

      I like the anti-cheating programs, but I never saw that they stopped much cheating, it just helped me identify the students who did (a lot). I switched my classes to have challenging, hand-written programming. Simple mistakes weren't punished (missed semi-colons) but it forced the students to do the work without the aid of the internet or their peers in a controlled environment. The students who cheated all semester failed out on the tests. The students who completed the homework usually breezed through the tests.

    28. Re:How many different ways to solve problems? by beelsebob · · Score: 1

      Well, I used to be said TA, so... yeh :P. It was really fucking obvious when people plagiarised. Not always easy to prove it, but very easy to tell.

    29. Re:How many different ways to solve problems? by kleinesRaedchen · · Score: 1

      ...and now I'm back to wondering how you might hope to catch cheaters when you have a program which starts by abstracting away the minutia when you're dealing with simple college level coding problems.

      The "minutia" are worthless because they can easily be altered for fraud. However, it is not easy to change the overall structure of a program. The effort is similar to write the program by oneself from the start. We use professional-grade plagiarism software (throwing away "minutia") and it works very robust. The most important parameters are maximum length of identical token sequences and percentage of identical n-gram token sequences. The main difficulty is to find a balanced parametrization. A low levels of false positives leads to a high level of false negatives and vice versa. Following "in dubio pro reo", a low FP-level is prefered.

      There are only so many ways to solve the same problem.

      Ca. 20 code lines with freely to be written logic are required. You would be astonished of how many ways there are to solve even small programming problems.

    30. Re:How many different ways to solve problems? by dgatwood · · Score: 1

      What will you name the function? What will you name your variables?

      Proper cheating detection has to ignore function and variable names, because changing them is the most obvious way to cheat.

      Will you use an iterative method, and thus will you use a for loop, or a do...while loop. Will you count up or count down? Or will you use a recursive function? Or perhaps you do some research and discover Binet's formula which calculates a Fibonacci number without iteration.

      In college programming classes, the Fibonacci sequence is invariably being taught as an example of how to write a recursive function, which eliminates all the iterative implementations right off the bat. It also eliminates Binet's formula (and also, because you said no math libraries, computing a square root isn't really possible, at least in C, making that solution unavailable anyway).

      In an introductory programming class, catching cheaters is useless, because their code should always be pretty much the same; if it isn't, they're probably doing it wrong and will fail at the end of the term anyway. And if they're just copying and aren't learning from what they're copying in the process, they'll fail at the end of the term anyway. This is why it is so important to require students to actually write code in class for the final exam. You immediately know with certainty who learned the material and who didn't.

      I guarantee you if you ask 20 first-year CS students to write that function, given the usual criteria for a first-year college test question, even without cheating, the differences will be whitespace, variable names, function names, comments, and function order (whether function A is before function B or vice versa), none of which tell you anything about whether the student understands how to write code. And that's one problem with CS; by the time you get to the point where students either truly get it or don't, they've spent a lot of time in classes—at least a semester/quarter, and arguably more.

      What we really need to do is come up with some sort of aptitude test for computer science, in which we somehow magically determine whether a person is going to be able to wrap his or her head around writing software. I don't have any idea what that might be yet, though, or else I'd have written it already, and I'd be rich, so there you go.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

  3. always been that way by Anonymous Coward · · Score: 0, Troll

    There was a foreign kid who used to sit in the comp sci lab and offer to buy my coursework to turn in at his own.

    I reported him and was accused by the department head of being racist and threatened with expulsion.

    What I'm saying is, you should read this article as 100 WHITE MALE students were caught collaborating. The non-white students were given a pass.

    And don't send a resume to me if your name includes mohammad.

    1. Re:always been that way by computational+super · · Score: 1

      buy my coursework

      Wait, for how much? I may have found a new avenue for employment...

      --
      Proud neuron in the Slashdot hivemind since 2002.
    2. Re:always been that way by Anonymous Coward · · Score: 0

      Bro, you have NO IDEA. These kids will pay $40-50/hour to write "Hello World" level shit. Shit is so cash.

    3. Re:always been that way by Anonymous Coward · · Score: 0

      In college, long long ago, I was a TA for a introductory programming class in the Engineering department. I gave multiple choice quizzes in my 'lab' section of about 30 students. The quizzes were fairly easy and only accounted for a small portion of their course score but did require reading simple code utilizing concepts introduced in the preceding week or two. My intent was to identify students who needed more help as well as find out which concepts were not being understood so I could spend more time on them with everyone.

      I had just one version of each week's quiz and I printed out copies on the line printer (as I said, it was "long long ago").

      During the quizzes I noticed a lot of sounds reminiscent of 'bird chirps'. At first I thought it was just because it was so quiet during the quiz that I noticed sounds that were normally masked. Then I watched a little closer and realized that some students were making the noises -- and then I noticed it seemed to be the Vietnamese students (of which there were a LOT in Orange County, California where I went to school and over 1/3 of the lab section were Vietnamese) who were making the sounds.

      The next quiz was just a little different -- in fact every quiz was different (mostly slightly different constants in programs, slightly different orders of multiple choice options, and/or slightly different selections of multiple choice options) and was generated by a program that I wrote to produce them.

      There seemed to be a bit more "chirping" during that quiz.

      When I graded the quizzes, the students who were not Vietnamese generally performed in a manner consistent with their past performance. However, the Vietnamese students' scores, as a group, plunged as compared to earlier quizzes.

      When I returned the quizzes, there was substantial unhappiness as the Vietnamese students shared their results with each other and slowly realized that none of them had had the same quiz. I then had a discussion with the class as a whole, without naming names or singling individual students out, about cheating and the consequences of it. I didn't even mention communicating with chirping sounds and how stupidly obvious that was (I assume this 'language' they were using was based on some form of communication they used in Vietnam). Of course, the Vietnamese students knew they were guilty and were quite uneasy. In the next couple weeks, most of the Vietnamese students in my lab section had dropped the class.

      And, no, I'm not being racist. Different cultures are different and have different standards. There's no reason to refuse to acknowledge that just because sometimes race and culture are correlated.

  4. You say cheating, I say cargo cult programming by Opportunist · · Score: 1

    It's not like that's something new. Nor is it new that those that do it are not really the ones that will become the 7-digit-earners at Google or found million dollar startups.

    All we get is more code monkey squeezing out insecure code. Or in the terms used by IT security consultants, job security.

    --
    We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    1. Re:You say cheating, I say cargo cult programming by gweihir · · Score: 2

      Ah yes, for example the Java "programmers" that can only call existing functions and methods and can only do it with code copied from the web. The job-security aspect for IT security consulting is correct though, I am benefiting from that. Although when I have to explain to a web application programmer how to find out what his code does that is really demented. It is much more satisfying to do this in an academic setting, there I can just fail those that do not understand what they are doing.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    2. Re:You say cheating, I say cargo cult programming by Opportunist · · Score: 1

      In a consulting environment I can make sure that his boss notices that the dud should be fired. Out of a cannon, preferably.

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
  5. Just kick them out by gweihir · · Score: 1

    Just give them two warnings and on the third time caught kick them out. And of course even on the first time caught, fail them for that course.

    Oh wait, this is education for money, i.e. that form were even the most stupid cheater has to make it in order to keep the money flowing. Well, why not make all courses optional and just sell that degree directly?

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  6. So many students... by Infiniti2000 · · Score: 1

    ...of his roughly 700 students in one class...

    Can you effectively teach a class with that many students? That's a ridiculously high number.

    1. Re:So many students... by Anonymous Coward · · Score: 0

      ...of his roughly 700 students in one class...

      Can you effectively teach a class with that many students? That's a ridiculously high number.

      It's very likely an online class. Lectures will be prerecorded videos and assignments will be graded by software. It's probably fairly easy at the end of the day.

    2. Re:So many students... by HornWumpus · · Score: 2

      Pretty standard. Large lecture (likely two times), small labs. TAs do 99% of the teaching.

      --
      John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
    3. Re:So many students... by phantomfive · · Score: 2

      At Berkeley they have a professor who lectures a huge class, then a bunch of graduate students who work more closely with the individual students. So you rarely talk to the professor, but you frequently talk to your graduate student advisor.

      I can't speak to the effectiveness of this system, but the purpose of course is to save money.

      --
      "First they came for the slanderers and i said nothing."
    4. Re:So many students... by frank_adrian314159 · · Score: 1

      You can teach that many if you divide the class into multiple sections with a main lecture and the sections led by junior faculty or teaching assistants. Lower-level classes have been handled this way forever in large universities. Or you just teach it online with multiple instructors covering various subsets of the students. You don't think educational methods scale, too?

      --
      That is all.
    5. Re:So many students... by gweihir · · Score: 1

      Welcome to industrialized "education" for money. Where I teach (on the side), they have an absolute class size limit of 30 for all classes, enforced by there simply not being more space in the classrooms. With that, you get actual interaction and that is incredible valuable. I think that somewhere beyond 150 participants or so you lose basically all of the advantages of direct teaching. But the university makes more money and that seems to be key here.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    6. Re:So many students... by Anonymous Coward · · Score: 0

      Then why does it cost so much?

    7. Re: So many students... by Anonymous Coward · · Score: 0

      So they charge high dollars to goto college, and then don't even give you the time you deserve. They basically get free labor from the TAs who do more teaching then the god damn professor.

      Tuition>
      In state: 34k
      Out of state: 61k

      Yea fuck that noise.

        If my class was 700 students I'd walk out and complain. The most students I've had in one class was 100 and that was for Econ 101.

    8. Re: So many students... by phantomfive · · Score: 2

      Yeah it's a problem. You are likely to be better off going to UC Merced and getting more personal attention at a lower cost.

      On the other hand, I've known some good programmers to come out of Berkeley, so maybe they're still getting the basics right. If you're learning a linked list, a graduate school advisor can probably teach it almost as well as Donald Knuth.

      --
      "First they came for the slanderers and i said nothing."
    9. Re: So many students... by Anonymous Coward · · Score: 0

      That was my philosophy, apart from the elbow rubbing with the rich and/or talented Ivy League schools are kind of useless for a computer science undergrad.

      I heard that in one of his last semesters of teaching Donald Knuth was teaching an introductory programming class. Which would have been cool for the students, but is still a horrific misuse of the man's abilities.

    10. Re:So many students... by Anonymous Coward · · Score: 0

      Only if you're a rock star, like Malan.

    11. Re: So many students... by parkinglot777 · · Score: 1

      If my class was 700 students I'd walk out and complain. The most students I've had in one class was 100 and that was for Econ 101.

      I highly doubt that 700 students meant to be in a class room at one time. I believe they are in different time schedules; thus, they are in different classes but all are in the same course. To me, the way TFA (and summary) is written is to exaggerate what is going on, so it looks more interesting to read...

    12. Re:So many students... by Anonymous Coward · · Score: 0

      For trivial shit like American History Rehash 101, a huge lecture hall filled with newbies is fine. Or, better yet, just don't make it a pre-req, since we've already covered a half-dozen times in K-12 already.

      For actual useful, college-level stuff, 50 should be an absolute maximum for the class size.

    13. Re: So many students... by steveg · · Score: 1

      s/free labor/cheap labor/

      This doesn't really change your point much, but TAs *are* paid.

      --
      Ignorance killed the cat. Curiosity was framed.
    14. Re: So many students... by phantomfive · · Score: 1

      If you go to a 'lesser' university, it's a good idea to get a feel for what a graduate in your major is supposed to learn. That way you can supplement your education by reading books from the library or doing personal projects, in case one of your professors turns out to be a dud. Then you truly can get a world-class education at a lesser university.

      --
      "First they came for the slanderers and i said nothing."
    15. Re:So many students... by Obfuscant · · Score: 1

      Welcome to industrialized "education" for money.

      To be fair, there are some courses that are core requirements for a large number of degrees, like Math 101, Chem 101, Physics 101, etc. There are so many people that need to take those courses every year that it only makes sense to have "classes" of several hundred people. I think the lecture hall used by Chem 101 held 300 people when I was an undergrad, and it was used for several sections per term.

      Trying to have enough staff for such large classes would easily drive tuition up to where it was unaffordable. It was much cheaper to have one professor and a dozen TAs instead of a dozen professors.

      CS101 certainly fits that mold.

    16. Re:So many students... by Anonymous Coward · · Score: 0

      Large University coding classes are basically puppy mills. Most will not survive to 'graduation' and many that do are of dubious quality.

    17. Re: So many students... by Areyoukiddingme · · Score: 1

      I heard that in one of his last semesters of teaching Donald Knuth was teaching an introductory programming class. Which would have been cool for the students, but is still a horrific misuse of the man's abilities.

      You do realize he chose to teach that class, right? Nobody told Donald Knuth he had to teach an intro course against his will. College administrators are greedy and dumb, but they're not completely blind stupid (yet). I'm sure he wanted to teach the class in order to get in touch with the novice perspective again. Lots of smart people who do something revolutionary for the field forget what it was like not to know all the things they know. Donald Knuth is smart enough to know about that problem, and do something about it. You don't write textbooks for expert programmers (most of the time). You write them for programmers who are learning. As a legendary textbook author, Mr. Knuth needed to keep his finger on the pulse of the novice, and teaching an intro course is a good way to do that.

  7. It is no coincidence that the problem has grown by Anonymous Coward · · Score: 0

    ...as the number of Chinese and Indian in the US have grown.

    1. Re:It is no coincidence that the problem has grown by Anonymous Coward · · Score: 0

      yes their superior intellect has made available cheating by copying very plentiful.

  8. I caught a student plagarizing "hello world". by Anonymous Coward · · Score: 0

    I know because his code compiled.

  9. Paired by Archangel+Michael · · Score: 1

    Paired Nicely with the article just below it. Excellent placement of plagiarized example articles.

    A+

    --
    Agent K: A *person* is smart. People are dumb, stupid, panicky animals, and you know it.
  10. CHEATERS! by Lumpy · · Score: 1

    All of them steal my code!

    function main()
    {

    }

    and even using IF statements and DO WHILE! The freaking copycats!

    If an instructor expects 30 students to do a bubble sort 30 different ways, he needs to be fired as a CS instructor.

    --
    Do not look at laser with remaining good eye.
    1. Re:CHEATERS! by Megane · · Score: 1

      I'll show them!

      int main(int argc, char * const argv[])
      {
      printf("Hello world!\n");
      return 0;
      }

      (WTF? &nbsp; doesn't work anymore? Even in <code> mode?)

      --
      #naabhaprzrag, #sverubfr-000, #agi-fcbafberq, negvpyr[pynff*=' negvpyr-ary-'] { qvfcynl: abar !vzcbegnag; }
    2. Re:CHEATERS! by Anonymous Coward · · Score: 0

      This. A hundred times. This.

      Far too often in "plagiarism" cases we wind up with false positives. (Especially anything that's been done to death, like Abortion, or the Civil War.) Heck we even have "self-plagiarism" now. (No, that's not an oxymoron you hear, but the sounds of a lazy instructor turning the screws so there's one less paper to grade.)

      Now, how much code do you think gets reused on a daily basis??? How many ways can you write a bubble sort, or "a program that displays the contents of an array. Which may optionally allow the user to set it's contents. If it crashes with a NullPointerException (or it's equivalent for the language used) you get 2 points taken off the assignment." ? (Yes that's a real assignment. I've had it myself 4 different times, for the 4 different language classes I had to take.)

      This is only going to flag people for no reason.

    3. Re:CHEATERS! by lgw · · Score: 1

      int main(int argc, char * const argv[])
      {
          printf("Hello world!\n");
          return 0;
      }

      Assuming preview isn't lying to me, you want tt, not code, and just use two spaces for indent.

      --
      Socialism: a lie told by totalitarians and believed by fools.
  11. lol @ "coveted" jobs by Anonymous Coward · · Score: 0

    I have zero interest in working at those places and I know plenty of people who share my thoughts. Money isn't everything :-)

  12. Not Cheating! by Anonymous Coward · · Score: 0

    I hate to say it: the current culture encourages this type of mindless copying.

    Sites like Stack Overflow and the like lure people with the promise of a quick "copy & paste" solution for all of their coding problems. Many devs have become accustomed to copying and pasting stuff from the 'net because it is simple, fast, and requires little thought. This type of problem solving approach has permeated the culture to such a degree, that even people in colleges - at all levels - turn to this to solve their problems.

    I see too many times people posting chunks of their homework assignments on Experts Exchange with a plea for help because they are stuck. A lot of the time, a complete solution is never posted, but an EE expert takes the time to do some tutoring. But, there are times, when a complete solution is requested, and at times provided.

    So, until we encourage people to use their brains rather than googling every little piece of information, I am sad to say that this is going to be very very difficult to change.

    1. Re:Not Cheating! by computational+super · · Score: 1

      encourage people to use their brains rather than googling

      Heck, I'd settle for just not actively discouraging people from using their brains and doing some actual research before just "asking the guy who knows this stuff".

      --
      Proud neuron in the Slashdot hivemind since 2002.
  13. It doesnt matter by freak0fnature · · Score: 0

    They paid for there degree, they can have it. When they get into an interview and get asked to write FIZZBUZZ on the whiteboard, they will regret their decision.

    1. Re:It doesnt matter by Anonymous Coward · · Score: 0

      so people who can't loop or use %?

    2. Re:It doesnt matter by Anonymous Coward · · Score: 0

      While I do agree with you, if some universities did a better job stopping cheating, then those universities may put their graduates on fast-track for job interviews.

      However, right now demand is so high many companies will phone interview anyone with a half-way decent resume.

      From my experience, most people who fail the whiteboard test came from a crappy Indian university (there are good ones, it's just no one researches which ones they are prior to the interview).

    3. Re:It doesnt matter by HornWumpus · · Score: 1

      IIT is an exception. Some of their grads are competent, but not all. Much better than the average Indian diploma mill.

      I've never interviewed a moron from CalTech or MIT, but aside from those two schools they _all_ let some 'bad ones' through. I bet they do too, just very few.

      --
      John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
    4. Re:It doesnt matter by Anonymous Coward · · Score: 0

      That's easy to write on a whiteboard. If provided with multiple colors I'd even write it out all rainbow colored.

      Winning!

  14. One in seven at Berkeley by Anonymous Coward · · Score: 0

    If one in seven Berkeley CS students cheat, that throws serious doubt on the quality of instruction given to the other 6.

    There are plenty of talented people in very good programs around the nation. Next time I am hiring, I will be skipping over Berkeley alumni.

  15. Isn't it all cargo cult programming? by Anonymous Coward · · Score: 0

    Show me someone doing something creative today in code. You'd be hard pressed. It's all just repeating stuff from Knuth, mostly.

    People pretending a science is an art is the problem.

    1. Re:Isn't it all cargo cult programming? by zlives · · Score: 1

      the issue is not of creativity but of understanding. same applies to math.

    2. Re:Isn't it all cargo cult programming? by davidwr · · Score: 2

      Show me someone doing something creative today in code.

      Those obfuscated- and underhanded-programmer ng contest entries come to mind.

      --
      Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
    3. Re:Isn't it all cargo cult programming? by Anonymous Coward · · Score: 0

      I'll grant you that. It's such a small slice of the work going on, though.

    4. Re:Isn't it all cargo cult programming? by Opportunist · · Score: 1

      Sorry. No.

      Yes, more and more high level programming languages abstract away more and more complexity by offering standard libraries. That doesn't mean that you needn't understand what's going on under the hood, though, if you want to write secure code.

      The question "does it work" can easily be determined even by a novice programmer. Run the program, see if the output matches the expected output, if yes, it works. The question "is it secure" is more tricky, for if you don't know what would make it insecure, if you do not understand the implication of, say, creating a static character array on the stack and fill it with variable user input, you cannot even determine whether it is safe. Actually, you cannot even define a test case that could determine whether it is.

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    5. Re:Isn't it all cargo cult programming? by Anonymous Coward · · Score: 0

      You could test for certain classes of vulnerabilities - that's why things like Valgrind exist. But testing for every one? Impossible, unless the code in question is trivial to the point of uselessness.

      Do you understand all the underlying code and its assumptions, though? Are you sure? I'm not, and i'm a very careful programmer. Some of it is in binary blobs that are opaque short of disassembly.

      On a related note, the term 'software engineer' is laughable. Real engineers must understand the things they create to be competent, including externalities, Software 'engineers' do not, and can not.

      Our hardware is much more reliable than when I started doing this. Our software still sucks.

  16. Practice vs proving knowledge by davidwr · · Score: 1

    The purpose of labs and other homework is to practice. If you cheat, it's a waste of time.

    Proving your skills to the instructor needs to be done in a controlled environment. "Controlled" doesn't always mean audited: In a perfect world a student's sense of ethics would be enough self-control that take-home tests or graded projects would be allowed as nobody would collaborate or use others' work beyond the bounds imposed by the instructor.

    If ethics is a problem, either do a better job of teaching ethics, make your program and admissions process such that unethical people won't want to apply, or arrange the material so all work that makes a significant contribution to the final grade is audited in a very-hard-to-defeat manner.

    --
    Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
  17. Name and Shame! by h4ck7h3p14n37 · · Score: 3, Interesting

    Any student caught cheating should have their name announced/posted in a prominent location so all of their classmates know who the cheaters are.

    The rest of the students work too hard to allow cheaters to remain anonymous. They deserve to know who's trying to screw them over.

    1. Re:Name and Shame! by JeffTL · · Score: 1

      It sounds like an effective idea in theory - until someone sues the instructor and institution for violation of student records privacy (in the United States, FERPA is the relevant federal legislation), depending on the jurisdiction and details, potentially libel.

    2. Re:Name and Shame! by Anonymous Coward · · Score: 0

      Any student caught cheating should have their name announced/posted in a prominent location so all of their classmates know who the cheaters are.

      We're not allowed to do that. Federal law dictates that a student's "educational records" are private, and cannot be shared without written consent from the student. See

      https://www2.ed.gov/policy/gen/guid/fpco/ferpa/index.html

    3. Re:Name and Shame! by Anonymous Coward · · Score: 0

      Fine. So don't publish the name, but here is what should happen. The student gets an automatic F grade in the course and receives a strike on their record. Three strikes and you're expelled without degree or possibility or readmission. Furthermore, this policy should be clearly stated up front to all incoming freshman who must then agree to abide by the policy and agree to suffer the consequences of cheating if charged and found guilty by due process.

    4. Re:Name and Shame! by Anonymous Coward · · Score: 0

      When students go through orientation (which is generally "mandatory", but often easy enough to skip), they are generally told about the academic misconduct policies. These are also usually written down in a student handbook which is distributed (often even in hard copy!). I use a lot of weasel words, because policies are usually set at the institutional level, but a well publicized policy on cheating is SOP everywhere I've been.

  18. The x and y of cheating... by __aaclcg7560 · · Score: 1

    When I was learning to program after the dot com bust, we had a class assignment to pair up and work together. But the code had to be written individually. A pair of students submitted identical code except one used the x variable and the other used the y variable. That got a good laugh out of the class when the instructor mentioned. The students got a slap on the wrist for not submitting their own work.

    1. Re:The x and y of cheating... by Anonymous Coward · · Score: 0

      That is an absolutely enthralling story. Somebody ought to write an ebook about this, and put it on Amazon - it'd be a guaranteed best-seller, and we all know how profits from that sort of an ebook title just tinkles down like rain.

  19. I had an instructor "cheat" decades ago by macraig · · Score: 1

    Back in the early Eighties, I took a programming course from a particular instructor who I later learned from a friend had "cheated" and used some of my work from the class as an example in later classes. Humor aside, cheating is hardly a new thing. Neither is programming.

    1. Re:I had an instructor "cheat" decades ago by i.r.id10t · · Score: 1

      Why is why I submit my homework with a copyright header and GPLv2 it. Written works like term papers are submitted and released under a CC license with no commercial use, explicitly being kept by TurnItIn.

      Honestly, I don't think it will do any good, but it makes me feel just a little tiny bit better.

      --
      Don't blame me, I voted for Kodos
    2. Re:I had an instructor "cheat" decades ago by macraig · · Score: 1

      That's great, but the GPL wasn't even a gleam in anyone's eye at the time of my anecdote. Copyright certainly existed, but trying to exercise it in that fashion back then would have been nothing but trouble.

  20. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  21. asian culture is geared so that test / school chea by Joe_Dragon · · Score: 2

    asian culture is geared so that test / school cheating is very common and the schools really don't want to kick out full cost paying (some time more then out of state rates) foreign students.

  22. Big Deal by diesalesmandie · · Score: 1

    So what if they cheat; if they ever apply for a coding job they'll get caught out in the technical interview, moving on...

    --
    This is my sig, there are many like it but this one is mine
    1. Re:Big Deal by sizzzzlerz · · Score: 1

      And even should they get through the interviews and receive an offer, their lack of ability will become quickly known with their first assignment. Unfortunately, you will always have other companies down the food chain who'll hire the dregs because the good people won't work there. It's my theory that this is how companies who make IoT devices get their programmers and why those devices are the shits.

    2. Re:Big Deal by PPH · · Score: 3

      And after the third or fourth applicant from that college is found to be an incompetent fuckwit, HR will stop looking at any applications from that institution. Pretty soon, word will get out and a degree from there won't be worth squat. And nobody will enroll in their CS program anymore.

      That's why colleges worry about stuff like this.

      --
      Have gnu, will travel.
    3. Re:Big Deal by ausekilis · · Score: 1

      While not cheating per se, my old employer stopped looking at my alma mater purely because they stopped teaching C/C++ and moved to Java. Makes sense too, since one of my professors wasn't happy with the change either. He calls Java a "training wheels language".

    4. Re:Big Deal by diesalesmandie · · Score: 1

      And after the third or fourth applicant from that college is found to be an incompetent fuckwit, HR will stop looking at any applications from that institution. Pretty soon, word will get out and a degree from there won't be worth squat. And nobody will enroll in their CS program anymore.

      That's why colleges worry about stuff like this.

      Good point, didn't think of that

      --
      This is my sig, there are many like it but this one is mine
  23. Some things should be more team based as some of t by Joe_Dragon · · Score: 1

    Some things should be more team based as some of this goes back years of the ivory tower ways of being be hide the times and with professes who at times have little idea of the real world uses of what they are teaching.

  24. Example code by fahrbot-bot · · Score: 1
    From TFA, two students submitted work with the following lines of code.

    boolean done = true;
    while (!done) {
    ...
    }

    In a class of about 450, they were the only ones who made that fatal mistake. “This is pretty strong evidence that one had copied the other,” Mr. Dunsmore said. “They later both confessed to collusion.”

    --
    It must have been something you assimilated. . . .
    1. Re:Example code by davidwr · · Score: 2

      boolean done = true;
      while (!done) { ...
      }

      In a class of about 450, they were the only ones who made that fatal mistake.

      That's no mistake, that's a test of the compiler's optimizer.

      --
      Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
    2. Re:Example code by parkinglot777 · · Score: 1

      If you really read a bit further down, you would see that the professor you are talking about is from another college. The one which is talking about 700 students is just a paragraph or two down...

    3. Re:Example code by Anonymous Coward · · Score: 0

      They were probably copying off somebody else and missed the "do" part before the "while not done" clause. Whoops.

  25. so, which is it? by Anonymous Coward · · Score: 0

    Everybody can code... oh, wait, that's not true.

    "The experts and elites ruin everything!" ... oh wait, the experts and elites got there by being expertly elite and spending the necessary time in the books...

    I guess we better revive the coal industry!

  26. Cheating back in the day by Anonymous Coward · · Score: 0

    My first computer class was on punch cards. We put our cards in a cabinet, the secretary would run them a couple times a day, the results got put into the output drawer. The project was to do some complex calculations. One of the guys, who was really slick, drew Snoopy with a football and put the answer on the football.
    The cheater took his card deck and replaced his first car onto Slick's deck, then handed in the results, without looking at it.
    WTF, the teacher could tell the flunking cheater from Slick's code. 35 years and I still laugh about it.

  27. if you wanna cheat... by Anonymous Coward · · Score: 0

    enroll at harvard

    quit dragging down the reputation of every other institution.

  28. Um, Ah.... by SuperKendall · · Score: 3, Insightful

    Students have been caught borrowing computer code from their friends or cribbing it from the internet.

    I wonder if the article writer is familiar with what professional coders do, or GitHub in general???

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re: Um, Ah.... by Anonymous Coward · · Score: 0

      Just because it's on Github doesn't mean you can always just make a copy of it. This is more akin to copy and pasting out of an Encyclopedia for an essay that you're supposed to be learning how to write.

    2. Re:Um, Ah.... by geniepoo · · Score: 1

      Penalize inferior wheel re-invention as industry does. Perhaps the thedailywtf.com could tell us how many of their posts come from original code snippets.

    3. Re: Um, Ah.... by SuperKendall · · Score: 1

      Just because it's on Github doesn't mean you can always just make a copy of it.

      That is true, but the proof of the copy quality lies in the result.

      That is to say, if you are copying the wrong things you'll get a bad result, or the program will not work, leading to a bad grade or failing.

      If you are copying code well, that would seem to be a POSITIVE feature for future productivity as a professional.

      Now if you are copying wholesale, that may be an issue, but even there how is that different from evaluating frameworks to solve a problem?

      I know students need to learn the basics as well, but it seems like coding could be tailored to solving unique problems you could not copy code wholesale for (i.e. change projects between semesters), and also expect and support ethical code copying/reuse. That is much more realistic.

      --
      "There is more worth loving than we have strength to love." - Brian Jay Stanley
    4. Re: Um, Ah.... by PPH · · Score: 1

      but it seems like coding could be tailored to solving unique problems

      The point is to learn how to do the work. On your own. The point is also to teach students the same curriculum and not demand that instructors create novel problems for each class.

      First grade arithmetic: "Hey Miss Smith! Why should I have to get the answer for 1 + 1? Last years class already did that work."

      --
      Have gnu, will travel.
    5. Re: Um, Ah.... by SuperKendall · · Score: 1

      The point is to learn how to do the work. On your own.

      Doing the work, on your own, *in real life*, often means making use of other people's code.

      That may not even be GitHub; it could be simply co-workers code.

      The point is also to teach students the same curriculum and not demand that instructors create novel problems for each class.

      That sounds nice for the professors but obviously does not scale (something CS grads should know about right??) as every class after the first one will have wholesale examples easily replicated, I thought you said the point was for them to do the work and not just copy projects? Yet you are setting up an environment where copying is guaranteed.

      If you want a specific result you have to do something where the likelihood is the result you seek (i.e. students learning to program), not abject failure (students realizing they can save time by copying previous solutions because the professor was equally lazy).

      Hey Miss Smith! Why should I have to get the answer for 1 + 1?

      Here we see the core of the problem; you lack understanding of what education does that is helpful to a student. It's not to tech you facts a calculator can regurgitate. It's to teach you how to approach a problem. Similarly learning how to code means learning concepts and the language.

      --
      "There is more worth loving than we have strength to love." - Brian Jay Stanley
    6. Re: Um, Ah.... by Hognoxious · · Score: 1

      If you are copying code well, that would seem to be a POSITIVE feature for future productivity as a professional.

      Not on a college course.

      It's more like taking a driving test by hiring a chauffeur while you sit in the back.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    7. Re: Um, Ah.... by SuperKendall · · Score: 1

      Not on a college course.

      Why not?

      Perhaps a good starting point for coding would be to learn how to evaluate code, to learn how to use other code to put together to build something useful.

      You always end up needing to use glue code, why is that not a good place to start? It's also more exciting as you get something more impressive together sooner than if you are truly starting from scratch.

      It's more like taking a driving test by hiring a chauffeur while you sit in the back.

      No, the correct metaphor is, that blindly copying code to solve an assignment is like watching Talladega Nights and then driving a car for the first time. It's going to go badly if you don't ACTUALLY know what you are doing.

      --
      "There is more worth loving than we have strength to love." - Brian Jay Stanley
    8. Re: Um, Ah.... by PPH · · Score: 1

      Doing the work, on your own, *in real life*

      This isn't real life. It's school. You are expected to learn and demonstrate skills that a previous class has already completed.

      It's not to tech you facts a calculator can regurgitate.

      That's why calculators are not allowed in basic arithmetic classes.

      --
      Have gnu, will travel.
    9. Re: Um, Ah.... by Anonymous Coward · · Score: 0

      The point is to learn how to do the work. On your own.

      Definitely the point the professors are trying to pass to their students. One of my professors (Data Structures Course) wouldn't let students use use the C++ Standard Library, or any other code unless it was from our textbook.

      The goal was for students to learn how to build sorting algorithms, data structures, etc. so that you knew it well, and didn't just copy it. The assignments were usually set up so the book would have a good starting point for you. E.g. You needed a Min Heap to solve the problem, but the book only provided an example Max heap. It just took some thinking and understanding of the structure, to make what you needed.

      A tough class, but it my coding skills got a lot better after it. Plus, once you got to the higher level courses, they let you use most any libraries you wanted to. Your coding skills should have been built by that point, now it's about using resources and problem-solving to complete the assignment.

  29. I'm not sure what the point would be by Skuld-Chan · · Score: 4, Insightful

    I mean at some point in your career you're going to have to figure out some problem on your own - and if you cheat during all that high priced training you might as well not even have gone.

    1. Re:I'm not sure what the point would be by Kielistic · · Score: 1

      To a certain extent maybe. Keep in mind that a lot of these "intro to programming" tasks are things that no one would bat an eye at lifting whole-sale from wikipedia or stackoverflow in the professional world. I don't mean in a "I don't understand how to write this" type of way. I mean in a "I know this is a solved problem and it is quicker to google it than to write it myself with all these people screaming in the background".

      Though I agree that lot of the people caught cheating in these things will never be good programmers I do not believe that everybody caught cheating is a bad programmer.

  30. "Open Source" is human nature by TheOuterLinux · · Score: 1

    Whether it's fire or code, our survival has always depended upon sharing, or "cheating" if you're part of the proprietary problem. We copy code without completely understanding the "how" all the time, it's called a "library" and as technology advances, what is an advance script today may just be the next "library" tomorrow.

    1. Re: "Open Source" is human nature by Anonymous Coward · · Score: 0

      Just that in a library you show exactly that you're doing that and that's fine. The point is trying to pass it off as your own.

      If they had sent in the assignment by just referencing some other guys code like a library call sure no problem. But copy and paste without attribution == bad. I guess the guy who even forgot to change the other guys name in the source code was almost the most honest as he attributed it to him :)

    2. Re:"Open Source" is human nature by Obfuscant · · Score: 3, Insightful

      We copy code without completely understanding the "how" all the time, it's called a "library"

      And this is often why we wind up with complete nonsense output from a simple program. A large part of reusing code requires knowing when the assumptions that went into writing that code are valid and when they are not. It is hard to know when you shouldn't use a certain kind of sort algorithm if you don't know what that algorithm is and how it works. It is hard to know when not to use certain numerical functions if you don't know what they are.

      That's why you learn what things are and how they work when you are in school, so that when you get into the real world you can make better choices and not so many mistakes.

    3. Re:"Open Source" is human nature by TheOuterLinux · · Score: 1

      You may learn how to make your own library in school, but very few actually to go beyond the README to see how it works and most teachers don't care if they do or not. Programming is a lot like design; the ends do justify the means and no employer cares how you get there as long as he/she gets the most bang for their buck, degree or not. If I "draw" better than you, whether or not I'm using the tools correctly, the poor guy in college dept doesn't have a chance. Learning to program is too easy these days to be bothered with the fundamentals, which is why, unfortunately, most go for cloud computing because if something doesn't work, its not their fault since they are only using an API like everyone else. So, we either let them collaborate to encourage future FOSS desktop developers or we risk having a bunch of "interface designer" API slaves because either way, the current generation is going to half-ass things. I'd rather have 100 idiots on a unique project than another damn webkit/electron app on my phone.

  31. India anyone? by yodleboy · · Score: 3, Interesting

    If these schools and profs want to get an early look at the kinds of problems they can expect when a massive swell in IT courses happens, look no further than India. What problems do they have? How do they address them (or fail to)? Seems there are regular articles on mass cheating in Indian IT curriculum. For the sake of fairness, they could research the MSCE schools in the early 2000's. I guess my point is that as surprised as they seem to be, there is still time to get ahead of the most obvious problems if they do some research.

    1. Re:India anyone? by Trailer+Trash · · Score: 1

      If these schools and profs want to get an early look at the kinds of problems they can expect when a massive swell in IT courses happens, look no further than India. What problems do they have?

      My experience would suggest that their problems are lack of money and the inability to write computer code.

    2. Re:India anyone? by Anonymous Coward · · Score: 0

      My experience would suggest that their problems are lack of money and the inability to write computer code.

      India is the kind of place where you have to watch your back. There is always somebody looking to cheat you or get one up on you because it's basically still a desperately poor country and the average Indian is smart enough to realize that nothing about that is going to change in his lifetime. Therefore, the only probable way to get ahead over there is to cheat, bribe and hustle your way to the top. What's interesting is the tacit acceptance of this lifestyle by nearly all Indians. Not only are they not offended by such behavior, but they admire the ones who've used it to achieve success at their collective expense.

  32. Do you really think that? by Anonymous Coward · · Score: 0

    Do you think trial and error programming connotes understanding of the issues involved to a significant degree beyond copying someone else's working model?

    I feared this problem when the last of the hobbyist coders who played close to the metal were gone. The problem is real and it's here now. Too many layers of software cruft for anyone to understand their trade. I suppose playing with Raspberry Pis and such is a substitute, but a weak sauce one.

    1. Re:Do you really think that? by Anonymous Coward · · Score: 0

      If I was hiring coders and I caught one of them trying to implement backpropagation from scratch instead of using an existing framework, they had better be doing it off the clock, or improving on the existing state of the art in some meaningful way.

      The code I write is all cargo-cult from API reference documentation because I change frameworks faster than I have time to master them.

      I do this because IT GETS SHIT DONE. I'm not here to craft artwork. I'm coding to solve problems and I don't have the patience to do so as if someone is going to be grading my style when I'm done.

      I sure as fuck don't do my write my own batching/pipeline code, and I fail to see the distinction between wrapping someone's def function() in a class and calling it a library and grabbing the same function off of stackoverflow to solve the problem I wanted solved yesterday.

      To some puritans, "import tensorflow as tf" is somehow more legitimate than copy-pasting the contents of "https://github.com/codeplea/genann/blob/master/genann.c" into a .cpp file.

      Fuck em.

  33. Because all you need is the certification... by Anonymous Coward · · Score: 0

    ...to get a programming job, not actual coding competence...

  34. Mmmm... entree by Anonymous Coward · · Score: 0

    What's for desert?

  35. Well why not? by computational+super · · Score: 1

    borrowing computer code from their friends or cribbing it from the internet

    Shit, as long as I've been working, I get yelled at for trying to write my own code instead of "just googl(ing) it!" or "just get Ramesh to explain it to you!" These guys are going to be more prepared for the actual workforce than dorks like me who did 6 years of computer science working through everything the way you're supposed to.

    --
    Proud neuron in the Slashdot hivemind since 2002.
    1. Re:Well why not? by Anonymous Coward · · Score: 1

      Don't underestimate Ramesh. Unbeknownst to you, might even have a PhD from some unheard Indian U. And is actually stealthing as a moron while he builds up his billion-dollar startup and buys a permanent US residency by investing a half mil and hires you and your pals.

  36. In the real world... by evolutionary · · Score: 0

    Coders borrow, steal, modify and reuse code all the time. I understand that there is a definition of cheating, but if we are training people for coding in the real world there is a LOT of reuse and we often study these 'gems'. Even the older classes were basically regergatating someone else algorithms. The key perhaps is to give different questions to each student to get coding solutions. And that would be more real world training. Just using something someone used before especially code samples by itself is kind of thin. Ideally you credit code you borrow to create a solution. Of course many coders "forget" sometimes (even at a corporate level, Dlink I think was guilty of that)

    --
    "Imagination is more important than knowledge" - Einstein
  37. What should be expected? by Marc_Hawke · · Score: 2

    The majority of posts here talk about how 'collaboration' and 'code recycling' are the absolute standards in professional programming. I agree of course. My question is how should the class be structured in order to allow for that, but still teach the class and measure the students grasp of it?

    Does it come down to writing code by hand on paper? (Something I've never liked.)

    Does the teacher have to 'warp' the assignments? "Do this project, but get the answer wrong in exactly this way that I've just randomly selected."

    Do we ignore actual code as insignificant and just have short-answer or multiple choice questions on concepts? (I know I go through 10 languages a day, I'm competent because I know concepts rather than syntax.)

    Or do we say, "There's no cheating in this class. If you're able to get the project done here...you'll be able to get it done in a work environment as well."

    --
    --Welcome to the Realm of the Hawke--
    1. Re:What should be expected? by Anonymous Coward · · Score: 0

      Students are not yet professional programmers. The goal of professional programming is to achieve some business objective in the most efficient way possible (for whatever the business defines as efficient). The goal of student programming is to learn how to program (for cheaters it's how to pass the homework objective). Anyone who thinks those two categories of programmers should behavior in exactly the same way is very likely a really crappy programmer.

    2. Re:What should be expected? by Anonymous Coward · · Score: 0

      I think the class should focus on teaching the concepts. Like you said, you can use 10 different languages because you know the concepts.

      Teach them how to think logically and problem solve, to understand the general idea of programming touchstones like boolean logic, looping, data structures, execution order and flow control.

      It's an unfortunate truth that when a professor gives a unique problem to students, someone is going to ask online somewhere for a solution. A search for basic dastructures like queues or binary trees turn up questions like this on sites like Stack Overflow. It may be beneficial perhaps, if posters on such sites abstained from solving trivial problems; but getting people to go along with that is certainly non-trivial.

      Perhaps the best you can hope for is to impress upon students the need to understand the concepts rather than copy for the sake of learning how to reason with code. To pass a student you test on the concepts not the code, issue test questions in multiple choice or allow pseudo code. I don't even thing a class like this should teach a programming language at the same time. Leave learning a languages specifics to another class (perhaps something with a well defined library so you can get into topics like system time, dates, dictionaries, strings, security, serial communication etc which my school covered poorly)

  38. Stopping cheating on programming tests by maiden_taiwan · · Score: 3, Informative

    I taught programming at a well-known university in the 1990s. To prevent cheating on exams, I created three different versions of the exam. Call them A, B, and C. They had the same questions, but with different numeric values (and therefore different answers). I distributed the exams in the order A, B, C, A, B, C, .... So no matter where a student was sitting, the other exams around him/her were different. I did not reveal this to the students.

    Everyone who cheated from his/her neighbor got caught, because their exam (say, "A") would have exam "B" or "C" answers on it. Those students instantly failed the course.

    For homework, my advice was: you can talk about assignments in general terms, but you cannot show each other your code, because you are being graded on your work. That was where I drew the line. Still, a half dozen students (out of 150) would get caught cheating on their homework each semester. It made me sad, because none of the cheaters had ever come to my office hours for help. If only they had....

    1. Re:Stopping cheating on programming tests by hamster_nz · · Score: 1

      BEST COMMENT EVER

      That solves that problem.

  39. Self-defeating by uncoveror · · Score: 1

    Maybe you can cheat your way through a coding class, but one you are hired, then outed as a fraud, you will be fired. You can't hold a job with skills you do not possess.

    --
    The Uncoveror: It's the real news.
    1. Re:Self-defeating by Anonymous Coward · · Score: 0

      I think you underestimate the 'ingenuity' of fakers.

      I'm not a professional coder, but I coded out of a personal interest for a good 20 years (rarely do so now). C, C++, x86 Assembly, and dabbled in others.

      Back when I was in college a friend of mine called me on the phone freaking out. He was a senior in an CE program and had been hired as an intern at a well known engineering company. He was asked to work on something or another in C++. The entire internship was for coding C++. He wanted me to walk him through what to do over the phone, which I did but it was like I spoke a foreign language. Turns out he couldn't really code at all beyond syntax and declaring variables. He was completely baffled by classes, inheritance... even functions. I was pretty incredulous as I had many discussions about coding with him and he had me fooled the whole time. He could talk about coding, but simply could not code! I found out he called like ten people until eventually someone "walked him through it" by emailing code back and forth.

      He was able to bullshit his way through the whole year long internship. He got really good at finding code examples, asking for help online, copy, pasting, altering white space, and relabeling shit. Meanwhile dot com crash had hit, and my unemployed broke ass never even got past interviews for call center crap. I ended up enlisting in the military (and discovered people like him there too). The last time I talked to him, he graduated and had been working for several years at one of the big aerospace companies as an engineer, while I was perpetually getting prepared to get blown up by crazies overseas. Last I heard, he's still there and I probably am too.

    2. Re:Self-defeating by hackel · · Score: 1

      This is not true at all, in my experience. Particularly in the proprietary/Microsoft world. Unless you're in a large enough organization to have other people who actually know enough to check your work, people get away with this for many, many years. Of course they do learn as they're copying things from Stackoverflow, which of course isn't a bad thing, but they never seem to really "get" it. And small companies are never any wiser. As a contractor, I've had to clean up so many shitstorms that resulted from this exact situation.

    3. Re:Self-defeating by Anonymous Coward · · Score: 0

      Of course - if they were smart, they wouldn't cheat. They're not, so they do.

    4. Re:Self-defeating by Anonymous Coward · · Score: 0

      Maybe you can cheat your way through a coding class, but one you are hired, then outed as a fraud, you will be fired. You can't hold a job with skills you do not possess.

      These aren't the kind of people that think that far ahead.

  40. Same teacher same standards by Dareth · · Score: 1

    You can usually group college code submissions into groups based on who took which instructor for their introductory programming language course. They had the same lessons from the same teacher under the same coding standards.

    --

    I only look human.
    My mother is a halfling and my dad is an ogre, so that makes me an Ogreling
  41. Or they get promoted by Dareth · · Score: 1

    Or they get promoted and get to tell the other programmers, "how it is done".

    --

    I only look human.
    My mother is a halfling and my dad is an ogre, so that makes me an Ogreling
  42. This is what's wrong with computer science by Anonymous Coward · · Score: 0

    What do you do when you get on the job?

    - Cooperate
    - Collaborate
    - Copy
    - Share
    - Learn from each other
    - Donate
    - Demonstrate
    - Distribute
    - Talk every chance you get
    - Offer whatever you have to help others
    - Accept any help you can get

    Classrooms are fucked.

  43. Re: asian culture is geared so that test / school by Anonymous Coward · · Score: 0

    s/asian/chinese/

  44. Fake it till you make it by rsilvergun · · Score: 1

    a lot of kids are trying to work full time while going to school. Except for a few freaks of nature who don't need sleep and the occasional genius that doesn't work. Most end up dropping out. A few fake it till they make it to a real job and aren't trying to do 40 hours/week of course work + 40/week waiting tables because they don't have enough money for food, shelter _and_ tuition...

    --
    Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
  45. SCO by Anonymous Coward · · Score: 0

    I just hope that their "numerous examples of suspected cheating" doesn't include examples from the SCO vs. IBM case.

  46. How dumb can students be? by bradley13 · · Score: 5, Insightful

    I see this among my students as well.

    First, on the side of the students: It is perfectly fine to copy code snippets. How do I safely hash a password? Unless it's a computer security course, students shouldn't be reinventing code like that. That's when you go to StackOverflow and find the canned answer from an expert. Some students (and professors) are confused about this.

    Ok, with that out of the way: When plagiarism does happen, it is generally pretty blatant. Two solutions submitted, identical except for the renamed variables. It's almost insulting, that they think I won't notice. Alternatively, they pay someone else to write the program, and then cannot answer even the simplest questions about how it works.

    But even if they manage to sneak a plagiarized solution through: how stupid can you be?!?! If students aren't writing the programs themselves, they will fail the exam, where copying isn't an option any more. Or, even worse, they manage to scrape through the first year exams. If they get into their sophomore year, they are allowed to fail a course and repeat it a second time. This is horrible, because they drag out the pain for 3 or 4 or 5 years before failing out of the program.

    What a waste of their lives. If they can't handle the material, they're only doing themselves damage by dragging things out. Plagiarism in a technical field, where ultimately you either have the skills or not - and this will be discovered - is just unbelievably dumb.

    --
    Enjoy life! This is not a dress rehearsal.
    1. Re:How dumb can students be? by hackel · · Score: 1

      As a programmer who studied physics and has never taken a computer science course, how do you handle exams? Do you actually expect people to hand-write code? Pseudocode? Or do you just let them use a computer and hope that they don't cheat?

      I've never understood the concept of cheating on a course you are PAYING for. It just boggles my mind. No one is making you be there!

    2. Re:How dumb can students be? by tommeke100 · · Score: 1

      This was in the 90s and mostly in Scheme (lisp) but yes, we had to hand-write the code and explain it in writing, analyze the performance in Big O notation and such.
      I think other exams in C/C++ were also hand-written
      Exam questions were usually in the form of combing a few abstract data-structures. Or implementing some kind of derivate of an abstract data structure like a special type of hashtable, or some queue with some other special ability.
      In Scheme you could usually implement this in maybe 10-20 lines, so was do-able to write it down.

    3. Re:How dumb can students be? by PPH · · Score: 1

      That's when you go to StackOverflow and find the canned answer from an expert.

      Where do these experts come from?

      --
      Have gnu, will travel.
    4. Re:How dumb can students be? by Ken_g6 · · Score: 1

      I've never understood the concept of cheating on a course you are PAYING for. It just boggles my mind. No one is making you be there!

      Probably most of the students aren't paying for their classes. Either their parents are paying or student loans are "paying". And if you don't think people can run up debt without thinking about it, you haven't been paying attention.

      Of course, the kids will wind up "paying" for cheating sooner or later. But if it's not sooner, they probably think about it just like they think about the student loans.

      --
      (T>t && O(n)--) == sqrt(666)
    5. Re:How dumb can students be? by Anonymous Coward · · Score: 0

      In my country (in Europe), all exams in public schools must be solved by hand on printed paper. It's the law. Nothing electronic.

      So yeah, you tend to get really creative with your code when you don't want to write down 300 lines by hand. Optimization through time constraints and hand cramps.

  47. I took some coding. by Anonymous Coward · · Score: 0

    Was an absolute beginner and failed Intto To Programming. Took it again and absolutely aced it. I ran into trouble with Boolean algebra and decided to stop there. It would take too much time to regain my Trig knowledge and build from there.

    1. Re:I took some coding. by fisted · · Score: 1

      The fuck does Trig have to do with Boolean algebra?

  48. not sure if this is news by Anonymous Coward · · Score: 0

    This was happening on my courses in 1990.

  49. Then they'll be ready for a programming job! by ne1av1cr · · Score: 1

    My hardest class was a class in Translators where we were told at the beginning of the semester to copy and collude and do any and all things we could and if we made it to the end of the class we'd get a 100%.

  50. Coding classes and my genitalia hav a lot incommon by Anonymous Coward · · Score: 0

    Why is the subject line so short?

  51. Randy Katz? by Hognoxious · · Score: 1

    Randy Katz? Throw a bucket of water on them!

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  52. The wrong message! by hackel · · Score: 3

    Students shouldn't be called out for "cheating." Instead, they should be taught *how* to collaborate and properly give attribution to the source of their code and adhering to licensing requirements. This is how it works in the real world. It's not "cheating." Programming is supposed to be collaborative! Open Source is the way, and Free Software should be the mantra of every academic computer science programme.

    Of course cheating on an actual test is terrible. But for an assignment? As long as the code runs, and the parts taken from others are properly attributed, it should be permitted. Just as long as it's not a 100% copy of the entire code base, but rather copying an algorithm here or there, using an existing library, whatever.

    Of course the vast majority of developers should NOT be studying computer science. They should be doing some kind of software engineering course that is more practical. Computer Science should remain just that—a science. Mostly theoretical, based on research.

    1. Re:The wrong message! by serviscope_minor · · Score: 4, Insightful

      They should be taught both, but that means cheating will still be a problem. Collaborating etc is all well and good but students also need to know how to actually write code themselves. Not everything can be assembled from libraries and stackoverflow code with trivial glue logic.

      --
      SJW n. One who posts facts.
    2. Re:The wrong message! by Anonymous Coward · · Score: 0

      Is this the "special snowflake", "everyone is special" theory ? It is cheating, because if you are copying parts of the response you aren't doing it yourself, which means you do not know the curricula you're supposed to know, and that is what the test is for.

      They are allowed to collaborate in lab and everywhere else, except the time that their own knowledge is tested.

    3. Re:The wrong message! by Anonymous Coward · · Score: 0

      I agree that student should be taught to collaborate on code. Group projects were an important part of several of my classes in college. However at some point you need to try and put each student on equal footing as far as understanding how to reason and program on their own. Otherwise you end up with these groups having a disproportionate share of work with students who understand the concepts doing more than their share in the name of project completion, to the detriment of students who need practice.

      I also feel that while it's fine to look up and use a solution found online, upon graduation the student should be educated to a point that they could eventually understand most of the solution if they took the time to go through it. We need to train as many students as possible to not just assemble ready made code, but to generate new `difficult` code in the future.

    4. Re:The wrong message! by hyades1 · · Score: 1

      Collaboration is great, and everything you've said about it is true. But what happens among students often isn't really collaboration.

      My work takes me into a lot of classrooms, and I've noticed something you might want to consider. Often "collaboration" among students involves one kid doing all the work and a bunch of lazy and/or stupid sponges hanging around him and just copying. Then they all share in the group's mark.

      This doesn't help the sponges learn the subject. It doesn't help the smart kid, either, because all he's learning is that his way is the only way that matters. And as you point out, genuine collaboration is an excellent way to make a project really successful.

      --
      I've calculated my velocity with such exquisite precision that I have no idea where I am.
  53. There are limits to originality by hyades1 · · Score: 1

    When it comes to coding, there's more than one way to skin a cat...but though that number may be large, it is not even close to infinite.

    --
    I've calculated my velocity with such exquisite precision that I have no idea where I am.
  54. Re:Coding classes and my genitalia hav a lot incom by Anonymous Coward · · Score: 0

    Why is the subject line so short?

    Because it has a lot in common with your genitalia.

  55. MOD PARENT UP by damn_registrars · · Score: 1

    ... I see what you did, there.

    --
    Damn_registrars has no butt-hole. Damn_registrars has no use for a butt-hole.
  56. Re:Some things should be more team based as some o by Ken_g6 · · Score: 1

    The problem being that a team can appear as smart as its smartest member.

    I suppose pair-programming exercises could be good, though, if the pairs are randomized each time. Any bigger than that and it becomes hard to figure out which member of a team is earning the grade.

    --
    (T>t && O(n)--) == sqrt(666)
  57. So what? Who is going to hire them? by Anonymous Coward · · Score: 0

    If these doofs think they are going to skate through their programming classes with cut and paste, then go out and get a job.. so be it. Reality will catch up with them soon enough. Cheat away, keeps all the real programmers employed.

  58. Lower project score to exam score by tgibson · · Score: 1

    In addition to implementing several ideas posted above, I have a policy in my syllabus that if an exam score is <=30%, I reserve the right to lower all project scores to the exam score. A student must essentially be learning nothing to score that low on my exams (many blank answers, others answered with random snippets of code, etc.). This catches those who turn in projects that are stellar, which an impossible feat given their exam performance.

    Exceptions are made for those whose project scores are already poor, and those who are regular visitors to office hours--evidence of their earnest effort.

  59. That article is incomplete by Anonymous Coward · · Score: 0

    CS departments use automated programming assignment check-in systems to collect students' submissions. They normally analyze each submission for key characteristics and compare that with all the other submissions. However, unlike similar natural-language systems (e.g., for English essays), they do not have an enormous database of works to check against; so if a student downloads something from the Web it probably won't be caught unless two students use the same source.

    The point of lower-level programming classes is to develop skills in each student. More advanced courses use team projects, software engineering methodologies, and incorporated code (with attribution) to develop those abilities as well. The argument that the real world recycles software misses the whole point.

    Management must publish clear policies about what is allowed and what is not, in each course. One example, derived from an MIT version and tweaked over the years based on experience, is at
    https://www.cs.colostate.edu/~info/student-info.html#integ

  60. It Didn't Matter by n329619 · · Score: 1

    The AI grading machine will still give you a D- regardless of your effort unless you've managed to exploit a zero-day on the program to change the grade.

  61. Edit by poofmeisterp · · Score: 1

    ...about 100 of his roughly 700 students in one class had violated the course policy on collaborating or copying code....

    Edited: ...about 100 of this roughly 700 students in one class had been discovered to have violated the course policy on collaborating or copying code....

  62. Cheating in Programming is a bad idea by foxalopex · · Score: 1

    I know cheating has always been an issue in schools but I can't imagine students who do are doing themselves a favour when they eventually reach the workplace. A lot of programming jobs are screened by requiring you to write code on paper at the Interview without any aids. So if you don't know what you're doing because all you've done is cheat, I'm not sure how you expect to be hired. And as great as stackoverflow is for looking up solutions, sometimes they're wrong, written incorrectly or you're trying to figure out how someone else's code works. Good luck doing your job then.

  63. It's not cheating... by thomn8r · · Score: 1

    ..it's inheritance.

  64. Refactoring by Anonymous Coward · · Score: 0

    Isn't copying code called refactoring and encouraged by employers because a person can write more lines of code per day?

  65. Re:Some things should be more team based as some o by Anonymous Coward · · Score: 0

    Warning, some English was used in constructing the above comment, no verbs were harmed.

  66. Indian cheat clubs by Anonymous Coward · · Score: 0

    I'm in grad school and we have a lot of indian students. They all form cheat clubs. Often, there is one or two really good students who take money or are paid by other students families to get them through grad school. It's annoying and most profs don't actually report them when they're caught, just give them a zero on the assignment. That means they get away with it and diminish the value of my degree. It makes me very angry.