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."
.. for when their jobs are outsourced. It's pretty much the same thing.
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 : )
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.
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
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.