Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×
Education Programming IT Technology

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

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

As Computer Coding Classes Swell, So Does Cheating

Comments Filter:
  • Nothing new here (Score:2, Interesting)

    by Anonymous Coward
    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.
    • Re:Nothing new here (Score:5, Informative)

      by gweihir ( 88907 ) on Tuesday May 30, 2017 @12:52PM (#54511679)

      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.

      • by Anonymous Coward on Tuesday May 30, 2017 @12:59PM (#54511733)

        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.

        • by gweihir ( 88907 )

          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.

          • 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

            • by gweihir ( 88907 )

              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.

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

            • by The Snowman ( 116231 ) on Tuesday May 30, 2017 @04:02PM (#54513189)

              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.

        • Re: (Score:2, Interesting)

          by Anonymous Coward
          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.
        • Re: (Score:3, Informative)

          by DuckDodgers ( 541817 )
          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
          • by gweihir ( 88907 )

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

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

      • Re:Nothing new here (Score:5, Informative)

        by XxtraLarGe ( 551297 ) on Tuesday May 30, 2017 @01:13PM (#54511863) Journal

        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.

        • by gweihir ( 88907 )

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

        • Re:Nothing new here (Score:5, Informative)

          by Anubis IV ( 1279820 ) on Tuesday May 30, 2017 @03:02PM (#54512739)

          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 [xkcd.com].

    • Re:Nothing new here (Score:5, Interesting)

      by XxtraLarGe ( 551297 ) on Tuesday May 30, 2017 @01:26PM (#54511955) Journal

      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.

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

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

    • plagarism (your word)

      Wrong. His word was plagiarism.

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

    • by Anonymous Coward on Tuesday May 30, 2017 @12:53PM (#54511695)

      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.

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

      • by computational super ( 740265 ) on Tuesday May 30, 2017 @01:59PM (#54512233)

        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.

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

      • by uncqual ( 836337 )

        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.

    • by beelsebob ( 529313 ) on Tuesday May 30, 2017 @01:10PM (#54511827)

      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.

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

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

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

    • by Anonymous Coward on Tuesday May 30, 2017 @01:28PM (#54511977)

      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.

      • by grasshoppa ( 657393 ) on Tuesday May 30, 2017 @01:35PM (#54512049) Homepage

        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.

        • 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.
    • by twistedcubic ( 577194 ) on Tuesday May 30, 2017 @01:49PM (#54512167)

      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.

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

    • by gweihir ( 88907 )

      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.

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

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

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

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

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

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

    • by gweihir ( 88907 )

      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.

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

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

    A+

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

    • by Megane ( 129182 )

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

      • by lgw ( 121541 )

        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.

  • Name and Shame! (Score:4, Interesting)

    by h4ck7h3p14n37 ( 926070 ) on Tuesday May 30, 2017 @01:04PM (#54511783) Homepage

    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.

    • by JeffTL ( 667728 )
      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.
  • 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.
  • 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.

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

      • by macraig ( 621737 )

        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.

  • Comment removed based on user account deletion
  • 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.

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

    • by davidwr ( 791652 )

      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.

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

  • Um, Ah.... (Score:4, Insightful)

    by SuperKendall ( 25149 ) on Tuesday May 30, 2017 @01:14PM (#54511867)

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

  • by Skuld-Chan ( 302449 ) on Tuesday May 30, 2017 @01:15PM (#54511873)

    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.

    • 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

    • 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...
  • 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.
    • by Obfuscant ( 592200 ) on Tuesday May 30, 2017 @02:51PM (#54512645)

      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.

  • India anyone? (Score:4, Interesting)

    by yodleboy ( 982200 ) on Tuesday May 30, 2017 @01:19PM (#54511895)
    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.
    • 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.

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

  • by Marc_Hawke ( 130338 ) on Tuesday May 30, 2017 @01:53PM (#54512187)

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

  • by maiden_taiwan ( 516943 ) on Tuesday May 30, 2017 @01:59PM (#54512243)

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

  • 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.
  • by bradley13 ( 1118935 ) on Tuesday May 30, 2017 @02:51PM (#54512651) Homepage

    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.

  • Randy Katz? Throw a bucket of water on them!

  • by hackel ( 10452 ) on Tuesday May 30, 2017 @03:52PM (#54513117) Journal

    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.

I have hardly ever known a mathematician who was capable of reasoning. -- Plato

Working...