Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
Education Programming

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

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."
This discussion has been archived. No new comments can be posted.

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

Comments Filter:
  • just practicing.. (Score:5, Insightful)

    by ThatsDrDangerToYou ( 3480047 ) on Wednesday November 12, 2014 @10:43AM (#48367973)
    .. for when their jobs are outsourced. It's pretty much the same thing.
    • I'd give them an A for mastering caching data structures. :-)
    • 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.

      • by gstoddart ( 321705 ) on Wednesday November 12, 2014 @10:55AM (#48368085) Homepage

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

        Back when I was coding as my primary job, we never copied, we might have drawn inspiration.

        We'd look at a tutorial, but we sure as heck wouldn't have looked at, say, code from Linux we planned on cribbing. Whereas if we had the FreeBSD or Apache source code, we just might.

        Part of being a contemporary coder is knowing who you're legally allowed to borrow from, and who you're not.

        But, part of getting your education involves not cheating. So, if "making use of available code" turns into "plagiarism and not meeting the school's academic policies" ... well, you're pretty much screwed, aren't you?

        • by popo ( 107611 ) on Wednesday November 12, 2014 @11:00AM (#48368111) Homepage

          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.

          • by putaro ( 235078 ) on Wednesday November 12, 2014 @11:04AM (#48368149) Journal

            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.

            • by Jon_S ( 15368 ) on Wednesday November 12, 2014 @11:52AM (#48368799)

              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.

              • Well said. And it's not just for extending thinking to new areas, it's mandatory within the development process itself. Being able to debug quickly, develop test coverage and refactor efficiently requires that deeper level of understanding.

              • by Ambassador Kosh ( 18352 ) on Wednesday November 12, 2014 @02:31PM (#48370895)

                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.

            • Re: (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.

              • by tibit ( 1762298 )

                Of course you assume that code posted in a random internet post will be worth something. If you wish to copy from a project that is maintained, rather than from a random, unscored post, you might be facing licensing issues. About the only place where good code has a chance at being fleshed out, collaboratively, would be stackoverflow. The posts are scored, and anyone can edit things and improve them - or at least comment when things are seriously broken and unfixable.

                • by bkr1_2k ( 237627 )

                  Isn't that the purpose of code reviews, though? I mean, you can grab a few lines to do a specific function, test it, maybe use as is, maybe improve, then have other people review the code. Or is that not done in the real world any more?

                  • by tibit ( 1762298 )

                    Code reviews only work in practice on code of known quality level. I stress that by "known" I don't imply "perfect" or even "high" - I only mean that it must be known. The code review process must be tailored to the quality of people who do the work.

                    There's no way to properly implement code reviews of code that effectively comes from random sources. Most of the time you'll be either wasting the time on code that's very good, or you'll miss some serious issues.

          • by Barny ( 103770 )

            Right, but if you were in school, and given the task of writing a program that accepts, stores and evaluates passwords, grabbing such a piece of code would be considered a 'bad thing'.

            Saying in your comments that you found a 'method for neatly measuring password strength and reimplemented it' would, however, demonstrate that not only can you find code that you would need but CAN code and implement the solution.

            • by __aaclcg7560 ( 824291 ) on Wednesday November 12, 2014 @12:18PM (#48369125)

              Saying in your comments that you found a 'method for neatly measuring password strength and reimplemented it' would, however, demonstrate that not only can you find code that you would need but CAN code and implement the solution.

              I always cited sources in my source code when I took programming courses in college. More often it was implementing a solution from a different language into Java. The instructors never had a problem with that.

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

            No, I'm very aware of the fact that you need to know what you legally can and can't do with code you got elsewhere, because it may be copyrighted or otherwise encumbered.

            This has been true for at least two decades, and probably more.

            If you don't know this, you could get your company or yourself into some pretty deep shit.

            I'm not saying don't avail yourself of code which says "use freely". I likes me some use freely. Ever

          • If you could have coded it from scratch, you knew how to weed out all the crap and pick the correct example. You also knew enough to realize that the example was an implementation simplified enough to fit in a web page. And, as a result, you enhanced the example to make it robust enough for production use. You did do that, didn't you?
        • by ADRA ( 37398 )

          Would using frameworks make you a cheater? Would copying a very know pattern (as a Pair/Triple) deem you a cheater (even if you attributed it, like I often did both in school and in professional life)? If you read a help site that says do A, B, C , D and you do the same operation of steps exactly (regardless of copy/paste), is that cheating?

          If you want to stomp out cheaters, come up with problem domains with very unique and strange processes that wouldn't be found in the wild. If you want to bust someone fo

          • If you want to stomp out cheaters, come up with problem domains with very unique and strange processes that wouldn't be found in the wild.

            And then everyone complains that they're being taught stuff that they'll never see in real life. The classwork isn't "relevant".

            Why should anyone have to leap through hoops to "stamp out cheaters"? Why shouldn't simply expelling cheaters be good enough?

            If you want to bust someone for leveraging a well known, legally OK use of a tool,

            Except 1) they're not there to demonstrate that they can "leverage" the tool "google", they're there to learn algorithms and how to code in a certain programming language, and 2) it isn't legally ok in the context of doing classwork. "I want to see you se

        • by tibit ( 1762298 )

          Moreover, if you copy from here, there and everywhere, your code will resemble pasta sauce. It might be an excellent pasta sauce, but not all projects are to deliver pasta sauce, heck most projects aren't. If you were asked for chateaubriand, you won't deliver it that way.

      • Of course we all use available code. I would be very disappointed if my colleagues were all writing their own sorting functions when that problem has already been solved a million times.

        But that's not what school is about. You need to go through the process of understanding how these algos came to be understood--not so that you can re-implement them in your job--but so that you can do two things:
        1. Know which algos will work when you do have a real world problem to solve
        2. Use the same process that helped y

        • Yeah, but sometimes you need something that's like a list, but subtly different, and you need to be able to sort by hand(perhaps because sorting is connected to another piece of computation).

          If you can't do that, you're not a good programmer.

      • by Lumpy ( 12016 )

        Every single one of them that use libraries.

        Sorry kids, Library use is copying. Copying is not a bad thing, you save a lot of time by doing it.

        • by cduffy ( 652 )

          Sorry kids, Library use is copying. Copying is not a bad thing, you save a lot of time by doing it.

          Shared libraries or static libraries?

          Static library use involves copying at the link phase. Shared library use doesn't. Depending on your license, the distinction can be legally significant.

          And, well, that's the thing. Those of us who are professionals think about liability... which is why we can actually find a large company willing to buy our startups without doing an absolute freakout (or requesting a huge

        • by gwolf ( 26339 ) <gwolf@@@gwolf...org> on Wednesday November 12, 2014 @11:57AM (#48368865) Homepage

          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.

        • Yeah, fuck learning *how*. In case it's been too long ago for you, a school environ is not a work environ. The goals are two very different things.

           

      • I don't think it is a case of regularly. But it happens a few times per month.
        But there is a big difference in doing this for your work and doing it for school.

        If you are doing this for work, your goal is to get the computer to solve the problem.
        For school your goal is to learn how to get the computer to solve problems.

        For Example a CS101 student will have a nested for statement that displays a triangle in text.
        The point of the exercise isn't about having a triangle to appear. But to teach and impress the

      • by XxtraLarGe ( 551297 ) on Wednesday November 12, 2014 @11:21AM (#48368355) Journal

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

        The whole point of the course is to try & figure out how data structures and algorithms are implemented. It's as much about problem solving as it is coding. Sure, you could always just use std::vector in your C++ programs for vectors, but do you really understand how they work? What about binary trees and linked lists? That's the type of stuff they're teaching in these classes. Copying code & modifying it for your own purposes is fine for production, but if these students don't understand how the underlying code works, then their chances of successfully using it greatly diminishes.

        I see it all the time in my courses. I emphasize to the students that they should only use methods currently covered, so they get a 0 if they go out on stackoverflow and find solutions that give them shortcuts. They fail to use critical thinking skills and gain a deep understanding of how programming works. Most of the time, their ham-fisted copy/paste code doesn't even do what the assignment requires.

      • Yeah I never copy code. In my mind there is no point. I want to _understand_ how it works -- not just be a code monkey.

        I think I can count on one hand all the times I've looked at other people's code to see how some of the finer details of the algorithm work but I'll just write the code from scratch. That, and along with debugging it, helps me to understand its edge cases, the domain it is strong at, and the areas where it is weak.

        Your point about library code is conflating the issue.

        There is a huge dif

        • understand its edge cases,

          This is where the real money is made. Edge cases always reveal weakness in design. The fewer edge cases, the better the design.

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

        This defense always comes up when cheating is the issue, and it is always wrong. The purpose of an examination is to determine if an individual understands the subject matter, and no argument how programming is done in practice alters the fact that a cheater has failed to demonstrate that he understands the subject matter (and has, in fact, provided good evidence that he does not.)

        Furthermore, one should not be spending the time and money a degree from Duke costs, just to be a cut-and-paste coder - a semest

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

        Standing on the shoulders of others is standard practice, but when you are asked to do something in a class, it is not about learning to utilize resources, it is about learning to do it on your own, so that you can understand what others have done. This is why we teach kids how to add before we let them use a calculator.
        When I first learned java, the book had me writing classes which let me implement lists, then linked list, then doubly linked lists. Finally after all of that, it introduced the LinkedList

      • Being an actual professional software developer, I can definitely say that with the exception of equations, I have never copied code from the internet and have never seen that as an expectation (any more than an author plagiarising paragraphs in their books).

        There are legal (copyright/licensing) and ethical issues with doing so (for example, being complacent and treating code on the internet as having some level of vetting).

        If I need functionality that I feel already exists or is too dangerous/time
      • Yes. Companies I have worked for have prohibited that practice. At some companies you would fired for doing that.

        You are incorporating copyright material into your company's products which can result in legal liability for them. Available on the internet does not make it free.

  • Is it a programming exercise? Then actually have human beings who understand the assigned task go over the submitted code with the student, having the student explain it. If the student can explain what is happening to the investigator's satisfaction, fine. If the student copied code and has no clue what it is doing, force them to work for a large company. And please stop calling programming computer science; no one could "copy code" over the internet to demonstrate an understanding of computer science.

    • by Ksevio ( 865461 )
      Often the first step I take for non-trivial problems is to think "has anyone does this before" and "did they share how they did it". You can often find a block of code on stackoverflow or someone's blog that does the trick. You should of course cite your source if it's a longer section or complicated one (this helps you later or others figure out what's going on), and licensing has to be kept in mind, but there's no point in redesigning the wheel every time.
    • by DarkOx ( 621550 )

      Right, seems like it should be possible to identify the cheats with a simple exam, give everyone in the class a pop quiz, with a really similar question.

      For the folks that did not cheat they get reward for their honest hard work, they will already have thought through the problem had the opportunity to test their solution etc, and simply need make some trivial change and scribble their solution down on the exam sheet. Easy-A

      The cheaters will be busted, outed by their inability demo knowledge that they alr

      • give everyone in the class a pop quiz, with a really similar question.

        This is how it should be done anyway. have them write psuedocode on the fly. It doesn't have to compile. You don't have to get hung up on things like variable initialization, or error handling. You are trying to see if they understand the concept of what the algorithm is supposed to do. A Data Structures class is not there to teach you how to program. It is there to teach you how to understand and create algorithms for Data Structures.

  • It is an interesting position to be placed in, but it is always better to accept responsibility for one's actions. I had to do it as well as part of my case (http://tminr.com/the-book/) but it led to a better outcome had I not admitted wrongdoing and fought.

    I hope all of the parties are able to step-up because, if they do, the end result will be a lot better for them.

  • by Anonymous Coward

    Posting AC for obvious reasons.

    I received one of these emails and will be telling Duke to go fuck itself. I do all of my own assignments and use SourceTree for version control, and can demonstrate the development from scratch of each of my assignments, including handwritten development notes.

    I've also hired a lawyer and we are prepared to sue the school instantly if any attempt is made to accuse me of cheating and defame my good character.

    • So... What are you going to do in the YEARS of time this will take and how are you going to come up with the THOUSANDS of dollars this will cost to "protect your good name?"

      If you really go to Duke.... I suggest that if you cheated in CS 102 you turn yourself in...

      Aside from that, I think you picked the wrong NC school. Stay away from anything blue in that state and pick the red school. (Howl)

      • by x0ra ( 1249540 )
        Rule #1: never talk to the police (or in this case, whatever authority who's gone on a fishing trip)
    • by jandrese ( 485 )
      Do you have some reason to believe that you're going to be accused of cheating? Going so far as to already retain a lawyer seems to be jumping the gun a bit. Is there some sort of witch hunt going on there or something?
  • yea no (Score:5, Insightful)

    by Charliemopps ( 1157495 ) on Wednesday November 12, 2014 @10:53AM (#48368059)

    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.

    • by Havokmon ( 89874 ) <rick.havokmon@com> on Wednesday November 12, 2014 @11:06AM (#48368167) Homepage Journal
      Same thing happened in my Middle School science class. One kid got a hold of the teachers copy of the final, and a bunch of kids cheated - including twin friends of mine. The administration did the same thing - "Tell us if you cheated, and it'll be ok".

      The brother admitted to it, and was held back. The sister stayed quiet and moved on to high school.

      • by serviscope_minor ( 664417 ) on Wednesday November 12, 2014 @11:46AM (#48368703) Journal

        The brother admitted to it, and was held back. The sister stayed quiet and moved on to high school.

        That's school working as it should: it taught th brother a very, very valuable lesson he'll never forget. The point of school is learning things, right?

        • by Chas ( 5144 )

          That hasn't been the point of school in years.

          Most of the learning, people get out of the way in the first few minutes of class.

          The rest of the time, school is a kiddie jail with socialization programs and a rowdy inmate population.

    • Even if they're not trying to get you to admit to other violations, if they knew who cheated, they wouldn't ask for people to come forward. Why would they? Because they want to be known for their kinder, gentler handling of cheaters? No, any time the responsible party is 'given the opportunity to come forward' it's because the people making the generous offer don't know who is responsible and figures it's worth a try.
    • Never, ever, testify against yourself. Even in the case of a college, it's foolish.

      Why am I here professor? Is it because of the assignment? It's all a big misunderstanding. She invited me over to work on the assignment and perhaps I thought too much of it. But she never clearly said "no", so you naturally understand..

      What? No, I didn't copy the answer.

      • Never, ever, testify against yourself. Even in the case of a college, it's foolish.

        Why am I here professor? Is it because of the assignment? It's all a big misunderstanding. She invited me over to work on the assignment and perhaps I thought too much of it. But she never clearly said "no", so you naturally understand..

        What? No, I didn't copy the answer.

        More like "Where did I get the answers? Oh, I went to this torrent site and downloaded the course files... see? That's a $100,000 software package? I had no idea. Grand theft? FBI agent you say? I thought that was your secretary... What tape recorder?"

    • Comment removed based on user account deletion
    • by hey! ( 33014 )

      The punishment for cheating on CS201 should be having to get through CS330 (Design and Analysis of Algorithms) without cheating. If you can't get through a 200 level data structures without cheating you're going to be roadkill when you face your first dynamic programming problem.

  • type of assignment (Score:5, Insightful)

    by bigdavex ( 155746 ) on Wednesday November 12, 2014 @10:53AM (#48368061)

    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.
     

    • Comment removed based on user account deletion
    • There are only so many ways someone is likely to design some functions, particularly if the class demands particular formatting. So if having one function that is very similar or the same triggers it, then it is rather bullshit.

      I could see this too. Where I work professors are extremely lazy and grade via script. They don't read the programs students hand in because that would be "too much work", never mind that in the arts and humanities professors have to read papers all the time. Then they usually use so

    • I've told this story before, but... why not. I used to do my homework with my buddy. We would not copy each other's stuff, but we'd bounce ideas around: "hmm, this problem sort of looks like this thing", and "I'm trying to decide between these two data structures". That kind of stuff. You know, actually learning by thinking things through out loud and considering alternatives.

      We had one class with an archetypically CompSci homework assignment, like "simulate a telephone switchboard with M operators, N calle

  • Duke seems to be in the wrong here. It is to hard to decide exactly what is research and copying in these cases. This isn't just some answer key that was mailed to some inner circle of conspirators. If Duke worries about how the internet will be used in finding solutions, then they need tougher in class testing procedures to show people have mastered the skill set they say they have or the University wants them to have.

    In a way, using the internet to get the answer is the way it works in IT these days.

    • In a way, using the internet to get the answer is the way it works in IT these days.

      Speak for yourself. I don't copy stuff off the Internet because I'm making new things and don't have anyone to copy from. I'd change careers tomorrow if I had a job where copy-and-pasting was the order of the day.

      That's assuming you weren't talking about downloading modules to do routine stuff. Sure, I'll use someone else's HTTP request library instead of rolling my own.

  • reminds me of a similar situation that came up in an introductory CS course at Dartmouth years ago [thedartmouth.com]. A bunch of students, possibly abetted by the TAs, ended up with the exact same code for some problem or other. The professor (a visiting professor, if that makes any difference) went ballistic and reported every student, intent on getting all of them suspended or expelled.

    In the end, the charges were dropped [thedartmouth.com]. It would have been a very difficult situation to adjudicate - the behavior of the students, TAs
  • ...as a student, and now as a teacher, I just don't get it. Why would you cheat?

    I see students do this, and sometimes they do manage to weasel through lower level courses, if the instructors weren't paying attention. So they fail out of the program when they hit higher level courses, because they don't understand the basics. They've wasted maybe two years of their lives, plus a lot of money. If they cannot solve the exercises, if they cannot pass the early courses, there is just no point to dragging it out.

    • ...as a student, and now as a teacher, I just don't get it. Why would you cheat?

      because as a society we value credentials, we do not value education.

    • The other problem is that cheaters usually just get an F for the course if they get caught and can continue after retaking it.

      Institutions only have so much power. When I was in school, my grades were all over the map, some As, lots of Bs, some Cs. One of the things I realized pretty early on was that as long as I can keep my GPA high enough, there wasn't really much worry about what actual grade I got in the course...so I focused on learning the material thoroughly rather than trying to ace the exams. Most

    • by joss ( 1346 )

      When I did a CS degree I cheated hard through first year.

      1. I was young and lazy, my main goal was to maximize time I could spend in the pub.
      2. There's no point doing something if someone else has already done it

    • The goal is to get the degree, not learn things.
    • by Gramie2 ( 411713 )

      I remember how delighted I was to learn data structures and algorithms, after 15 years of being a self-taught hobbyist. Tree traversal? Quicksort? Recursion? Quadtrees? I was fascinated and excited to understand how those things worked. I don't remember ever being resentful of long days and late nights. I even had to get the department head's permission to take more CS courses in one semester than they normally allowed.

      Of course, I was a mature student, studying CS in my 30s after graduating in chemical eng

  • I've seen this at my college as well. CS students graduated without actually having programmed.

    Colleges actually encourage this with their way of teaching:
    - Massive classes without any real contact with teachers
    - Weird focus on working in project groups

    Doing everything as a project with small assignments often has one student both leading and finishing the assignment. Other students then get demotivated.

    The obvious solution is to do like companies do. Companies like Toptal [toptal.com] vet their applications via Codilit [codility.com]

    • As a hiring manager, I don't expect a CS student to have been taught programming. I expect them to have been taught Computer Science. They may have learned some programming along the way. A programming language may have been taught to them as a tool to further study Computer Science. A CS major who knows how to program is basically a bonus as far as I am concerned. HR always wants "CS or similar degree" (or God help us, MIS) for Programming positions, but that is like going to a fish restaurant and hunting
  • I've been programming/copying code since 1988.

    I started with example code from, jeez, Turbo Pascal 4.0. Find an example. Modify it to fit my needs. I got to learn C on the job about two years later. I had some Microsoft C reference book. Lots of programming examples. Then x86 Assembler. By then I was lifting code out of one section of the project I was working on, and putting it somewhere else.

    Then Unix kernel work on a trusted system. "Oh, look. That same privilege-checking routine is used in abou

  • [T]here is a fine line between collaboration and cheating in computer science

    No Mercy

    All introductory CS students are born with an intuitive and always-correct understanding of when they cross the "fine line"! They have all been subject to rigorous academic standards for plagiarism, right? So they all know exactly what is expected of them on day 1 of their life in college!

  • by ErichTheRed ( 39327 ) on Wednesday November 12, 2014 @11:32AM (#48368491)

    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.

    • The problem isn't necessarily that code was copied directly from the Internet

      It might be as simple as that. If the syllabus said "do your own work" and they didn't, then it's cheating. If your calc teacher says "I expect you to do the arithmetic by hand" and you use a calculator, then you're cheating. A classroom is a tiny little environment with its own rules, and violating those rules (even if they seem silly or outdated by those who don't understand them) isn't generally tolerated well.

  • The Honor System at my college has this as its motto:

    .
    The measure of a man’s real character is what he would do if he knew he would never be found out.
    Thomas Babington Macaulay, English historian, author, and statesman.

  • by random coward ( 527722 ) on Wednesday November 12, 2014 @12:07PM (#48368971)
    Duke is getting a reputation for raping students. Why would anyone go there or allow their children to?
  • When I took a class in data structures, the instructor anonymously took two students to task for having identical code except for one slight variation. One student used the x variable, other student used the y variable.
  • Mercy, from a bureaucracy? Please don't make me laugh so hard. As others have said, if they had evidence, they'd use it. Here, they are entrapping confessions with [false] inducement.

    But really, all educational institutions have moved from education more towards filtering/certification (why else all the accreditation?) In this mode, success however gained _should_be_ rewarded. If some rat can weasel out marks, why won't s/he weasel out IRL?

  • Comment removed based on user account deletion
  • by Thanshin ( 1188877 ) on Wednesday November 12, 2014 @12:41PM (#48369443)

    The decision is absolutely required. The contrary would be cruel.

    Why lie to them? There's is no future in IT for a person who is not able to copy code from the internet and pass it as his.

    • by x0ra ( 1249540 )
      Nobody gives a shit in the industry whose code is being included as long as the end product is working. If I am in a hurry, and a piece of GPL code is doing what I want, I'll copy/paste/reformat/adjust it, even if my target end software is proprietary. Heck, sometime, even the company is stealing part of GPL software for their purpose. My former company had originally hacked away wget to re-purpose its parsing capability in their proprietary code, I even updated the code base to a newer wget to get more fea
  • by Hohlraum ( 135212 ) on Wednesday November 12, 2014 @04:15PM (#48372149) Homepage

    many of the "international" comp sci / engineering students prided themselves on beating the system (less time in college == less living expenses) by taking 24 or more credits per quarter. The way they did this was cheating their asses off by copying homework. Most of the work for comp sci / engineering was done in the labs so they'd rummage through the trash cans and look for other student's printed off drafts. :/

Real Programmers don't eat quiche. They eat Twinkies and Szechwan food.

Working...