Slashdot Mirror


Duke: No Mercy For CS 201 Cheaters Who Don't Turn Selves In By Wednesday

theodp writes: The Duke Chronicle published an e-mail reportedly sent to hundreds of Duke students who took Computer Science 201 (Data Structures & Algorithms) last spring, giving those who copied solutions to class problems until Nov. 12th to turn themselves in for cheating. "Students who have violated course policies but do not step forward by November 12, 2014," warns the e-mail, "will not be offered faculty-student resolution and will be referred to the Office of Student Conduct for disciplinary processes without any recommendation for leniency." The Chronicle adds that CS Prof Owen Astrachan, co-director of undergraduate studies, admitted that there is a fine line between collaboration and cheating in computer science — online and in person, although Astrachan made it clear in comments that "Students who copied code from the Internet are in violation of the community standard and course policies."

13 of 320 comments (clear)

  1. just practicing.. by ThatsDrDangerToYou · · Score: 5, Insightful

    .. for when their jobs are outsourced. It's pretty much the same thing.

  2. Or just practicing for an actual job by popo · · Score: 1, Insightful

    Just out of curiosity are there any professional programmers out there who don't regularly copy functions from the Internet?

    Part of being a contemporary coder is making use of available code. Libraries of functions are "other people's code". Languages are other people's code. Etc. it's all about other people's code.

    --
    ------ The best brain training is now totally free : )
    1. Re:Or just practicing for an actual job by popo · · Score: 4, Insightful

      I think you're using very negative words for a very normal part of the coding process.

      For example, about 20 minutes ago I needed a function to measure password strength. Could I have written it from scratch? Of course. Did I? Hell, no. That would be a needless waste of time. I used the Interwebs and had a choice of 3 or 4 perfectly good functions within about a minute.

      That's how coding works today. And if you're not making use of other people's code you're not doing it right.

      --
      ------ The best brain training is now totally free : )
    2. Re:Or just practicing for an actual job by putaro · · Score: 3, Insightful

      The difference being that you could have coded it from scratch - and you don't learn how to do that just by copy/pasting code.

    3. Re:Or just practicing for an actual job by Jon_S · · Score: 5, Insightful

      Exactly. The purpose of the assignment wasn't to get some code to work. It was to learn how to develop an algorithm.

      I'm not a CS person, but rather a chemical engineer. When I was in college, we learned, and had to do, all sorts of distillation designs using McCabe-Theil diagrams and other hand and graphical calculations. Would we ever do this at our job? No, there are all sorts of computer programs that figure these things out. However, going through the process of doing the work the hard way, and more importantly redoing the work that other people have already done, makes us understand the principles behind the logic. It also helps for giving insight if and when we want to extend the thinking to some new area.

      Talking about how things are reused in one's job is completely missing the mark.

    4. Re:Or just practicing for an actual job by gwolf · · Score: 3, Insightful

      Of course. But when doing a course on data structures, kids are expected to develop the skills needed to write pieces of code that might seem trivial to you — But in practice are the result of tens of years of work. I quite enjoy reading 1960s computer science papers precisely because of that.

      I teach Operating Systems. My course depends on Algorithms and Data Structures. Believe me, even though the students just finished the course mentioned in this note (of course, in a different university, different country even), it is obvious in their assignments they have not yet interiorized many of the things they are supposed to have learnt. I could probably fill a book explaining the different implementations of lists or trees I have seen, or the myriads of antipatterns I read on a regular basis. And that's what university is for.

      In "real" works, of course, they can answer open-book to all exam^Wsituations. They can copy code from teh intarwebz. They can compare code. But first, they have to understand and interiorize the concepts.

    5. Re:Or just practicing for an actual job by Archangel+Michael · · Score: 1, Insightful

      The difference being that you could have coded it from scratch, but not nearly as well

      FTFY

      As good as many coders are, their first coding attempt at any problem is not nearly as good as something that has already been done, several iteration ago, solving the same type of problem. There is efficiency of code, completeness, and security issues that have already been solved.

      --
      Agent K: A *person* is smart. People are dumb, stupid, panicky animals, and you know it.
    6. Re:Or just practicing for an actual job by __aaclcg7560 · · Score: 4, Insightful

      I once wrote an English paper on calculating a parabola curve, looking at 30 math books to see how other people described calculating parabola curve, and doing my best to write my own version that wasn't much different from anyone else's. The instructor accused me of copying. I challenged her to write an original description. She couldn't and give me an A anyway.

    7. Re:Or just practicing for an actual job by Anonymous Coward · · Score: 2, Insightful

      The difference being that you could have coded it from scratch, but not nearly as well

      FTFY

      As good as many coders are, their first coding attempt at any problem is not nearly as good as something that has already been done, several iteration ago, solving the same type of problem. There is efficiency of code, completeness, and security issues that have already been solved.

      No, you dropped the important half of his argument. The class was not "Efficient Software Development", it was "Data Structures & Algorithms". Perhaps you shouldn't have cheated during your Reading Comprehension & Critical Thinking classes, then you wouldn't need to justify cheating later on...

    8. Re:Or just practicing for an actual job by Ambassador+Kosh · · Score: 3, Insightful

      What annoys me about McCabe-Theil diagrams is that they are not fundamentally the way the theory works for designing distillation systems. They are basically a way to solve problems using huge approximations before we had the computer power to do it correctly. I much prefer the rate models for distillation column design and think that mccabe-theil should be scrapped. HOWEVER, I think that students need to understand how that stuff truly works and since the algorithms are simple they should write a basic rate equation based solver for distillation column design. Then they would truly understand how the stuff really works and be better equipped to use it.

      I just don't like the idea that you learn one method that is supposed to give you the idea of how things really work but then the actual systems you used are based on entirely different theories and assumptions.

      --
      Computer modeling for biotech drug manufacturing is HARD! :)
  3. yea no by Charliemopps · · Score: 5, Insightful

    Never, ever, testify against yourself. Even in the case of a college, it's foolish.
    If they know you did it, they know you did it. Leniency? What a joke. If they had the evidence, they wouldn't be offering a deal.
    What's more likely to happen is that you admit it, and in the same email or further interviews you'll confess to other violations that they'll nail you on. Furthermore, in cheating, you are almost guaranteed to have broken state or federal law. By admitting to copying someone else's code you could be confessing to a real crime that could result in time in prison.

    If you doubt this, see the video in my Sig. Never admit to wrong doing to a public official or law enforcement. Assume any email you send will immediately be turned over.

  4. type of assignment by bigdavex · · Score: 4, Insightful

    I'd like to know what type of assignment this was. If it's small and specific, there might be only a few basic working solutions. That is, the similarity stems from being correct.

    If it's a larger project with creative design decisions, then I'm less sympathetic.
     

    --
    -Dave
  5. Is it cheating? In CS classes, yes it is by ErichTheRed · · Score: 4, Insightful

    The problem isn't necessarily that code was copied directly from the Internet, it was that it was passed off as the students' own work. Coding assignments can only be done so many ways in lower-level CS classes, where the problems have to be small enough to be easily testable. The problem I see is that allowing it encourages the practice among CS grads in later life.

    I work in systems integration, and I can't tell you the number of times I've seen crap software, even software from vendors, that is horribly inefficient. I think a lot of that software has a fair amount of copy-paste code in it simply because the goal was to get something that compiled and sort of worked.

    That brings up another very important point -- the level of abstraction has gotten so high in software development that it's very hard to see what's actually going on behind the scenes. If you're calling some massive database access library to do your data entry from a web form, you really can't tell how bad the SQL that your particular function uses is for the database. (I've seen packaged applications that will tie up the CPU of a server for 30 or more seconds just to make a database change.) If students don't learn at least some of the fundamentals in CS classes, who will design the next generation of lower-level stuff? Code reuse and libraries are good, but you need to know what's appropriate to use. So if you don't have a good grasp of algorithms, data structures, etc., how will you even know whether you're solving a problem correctly?

    Same thing goes for my field -- systems admin/integration. If you don't know at least the basics of how TCP works, a few of the application protocols and something about how your OS manages resources, it becomes very hard to troubleshoot anything to any degree.