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."
just practicing.. (Score:5, Insightful)
Re: (Score:2)
Or just practicing for an actual job (Score:2, 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.
Re:Or just practicing for an actual job (Score:5, Informative)
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?
Re:Or just practicing for an actual job (Score:5, 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.
Re:Or just practicing for an actual job (Score:4, 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.
Re:Or just practicing for an actual job (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.
Re: (Score:2)
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.
Re:Or just practicing for an actual job (Score:4, 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.
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.
Re: (Score:3)
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.
Re: (Score:3)
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?
Re: (Score:3)
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.
Re: (Score:2)
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.
Re:Or just practicing for an actual job (Score:4, Interesting)
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.
Re: (Score:2)
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
Re: (Score:2)
Re: (Score:2)
I regularly evaluate program proposals and would like to let you know that 40% is a LOSS of ~10%. You have a computer, work in a building with utilities, attend training, have health insurance, etc. Those cost a MINIMUM of 50% (and probably closer to 100%). Your idea that the company should spend money on housing and feeding someone who contributed little value is misaligned.
The rule of thumb with charging out professionals is that 1/3 of their charge out rate is salary/benefits, 1/3 is overheads and 1/3 is profit.
I would guess that the OP's 40% is the profit on top of his salary and associated overheads.
Re: (Score:2)
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
Re: (Score:3)
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
Re: (Score:2)
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.
Re: (Score:2)
"I'd never copy code".
"I'd use that exact library".
Those are mighty fine hairs to split.
Re: (Score:2)
Those are mighty fine hairs to split.
There is a world of difference between using someone else's code and claiming it as your own and using someone else's code as a library they published and licensed for your use.
Re: (Score:2)
Legal issues make clear the splitting point of that hair.
Using that exact library means you include it from your project source and acknowledge it as a complete piece of work. If your work is developed openly, you usually list it as a dependency (and acknowledge the authors — And get the ability to link to updated versions. Free updates, yay!) or hard-include it in your tree (but still acknowledging authorship); if it is developed in a closed model, you can either do it or not, but if $boss comes to a
Re:Or just practicing for an actual job (Score:5, Insightful)
Re: (Score:2)
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
Re: (Score:2)
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.
Re: (Score:2)
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.
Re: (Score:3)
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
Re:Or just practicing for an actual job (Score:4, 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.
Re: (Score:3)
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.
Re: (Score:3)
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
Re:Or just practicing for an actual job (Score:5, Interesting)
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.
Re: (Score:3)
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
Re: (Score:2)
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.
Re: (Score:3)
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
Re: (Score:2)
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
Re: Or just practicing for an actual job (Score:3)
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
Re: (Score:2)
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.
Re: (Score:2)
Yes. Look for open source code. Copy and Paste. Delete copyright notice.
That's how it works in the real world!
With Bsd and mit license yes
Fine Line (Score:2)
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.
Re: (Score:2)
Re: (Score:2)
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
Re: (Score:2)
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.
Acceptance of Responsibility (Score:2)
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.
Affected Student Here (Score:2, Funny)
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.
Re: (Score:2)
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)
Re: (Score:2)
Re: (Score:2)
yea no (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.
Re:yea no - happened in Middle School (Score:5, Interesting)
The brother admitted to it, and was held back. The sister stayed quiet and moved on to high school.
Re:yea no - happened in Middle School (Score:5, Funny)
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?
Re: (Score:2)
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.
Re: (Score:2)
It is best that this rule is taught as early as possible, because that is how the real world works.
I was taught this rule in the 8th grade. The teacher left the classroom and when he returned he asked who was talking while he was out of the room. Me and two others raised our hands. You gave the three of us detentions.
Re: (Score:2)
I was in an AP Calculus course in high school taught by my school principal. The day after parent-teacher conference, he mentioned that he told a mother that her son was caught cheating in a class and was essentially getting a slap on the wrist (this was a couple decades ago).
The teacher then gave us an anonymous ballot. He wanted to know how many of us cheated on a test or homework assignment in the last year (this was pre-WWW so cheating at home was basically collaborating on homework with others in the
Re: (Score:2)
Re: (Score:3)
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.
Re: (Score:2)
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?"
Re: (Score:2)
Re: (Score:3)
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)
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.
Re: (Score:2)
Also how much similarity triggers things (Score:2)
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
Re: (Score:3)
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
The Internet Is The Way We All Do It. (Score:2)
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.
Re: (Score:2)
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.
Preschooler You Are In Violation! (Score:2)
And if a preschooler uses a calculator at home, we don't threaten them and tell them to turn themselves in.
You can't control how assignments are done outside of class, you have to adapt your testing regimen for the modern age.
Sounds familiar (Score:2)
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
Ok, I am naive, but... (Score:2)
...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.
Re: (Score:3)
...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.
Re: (Score:2)
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
Re: (Score:2)
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
time pressure, disdain for system (Score:3)
Re: (Score:2)
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
Colleges encourage this themselves (Score:2)
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]
Re: (Score:2)
Who doesn't copy code? (Score:2)
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
Re: (Score:2)
Yep. If I can see farther than others, it's only because I stand on the shoulders of hobbits.
Because Academic Integrity is Instinctual (Score:2)
[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!
Is it cheating? In CS classes, yes it is (Score:5, 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.
Re: (Score:2)
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.
Honor (Score:2)
.
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.
How is Duke's Lacrosse Team now? (Score:3)
So many variables... (Score:2)
Just a different kind of Test (Score:2)
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?
Re: (Score:2)
It's imperative to have this kind of rules (Score:3)
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.
Re: (Score:2)
When I was in college ... (Score:4, Interesting)
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. :/
Re: (Score:2)
It's probably that students are unsure where the line is drawn.
As mentioned in the article if you're working on a programming problem, it's natural these days that you look online when you're stuck on a problem, is this cheating?
Also, there are only so many ways you can solve a problem (certainly small programming problems in courses). How sure are you that your solution isn't too similar to something someone put online somewhere, or another student who thought the same way you did?
Even if you didn't active
Re: (Score:2)
It's not cheating if you're a professional programmer paid to produce software.
It IS cheating if you're a student who is supposed to be demonstrating their ability to create working code on their own.
Re: (Score:2)
Re: (Score:2)
Yes. When you're talking about solving problems for the first time, you have to do the grunt work and know what you're doing. My CS135 class had the same problem with people cheating on a parsing roman numerals problem.
When you're in a work environment, no one's going to expect you to implement, say, quick sort or whatever algorithm that's non-trivial but basically grunt work, by hand. The work is going to be way more in-depth than just "this solves this specific problem." however, knowing how these things
Re: (Score:2)
Okay, and suppose you took this course and created your own roman numeral reader. How sure are you that they won't find something on the internet that is "too similar"?
I agree it's important they learn to do their own work, but i would be wondering how high the odds are for false positives...
Re: (Score:2)
Okay, and suppose you took this course and created your own roman numeral reader. How sure are you that they won't find something on the internet that is "too similar"?
Well mine will probably be full of comments, so it probably won't look like anything on the internet or in the corporate world.
Re: (Score:3)
The professor had surprised us then told us to write out on paper what the algorithm actually did and why.
There were a few people missing the next class.
Re: (Score:2, Informative)
Right, because unlike other schools UNC gives their athletes the soft glove treatment. Lulz.
Are your football players smart? Didn't think so.
What rock do you live under?
Fake classes, inflated grades: Massive UNC scandal included athletes over 2 decades [startribune.com]
CHAPEL HILL, N.C. — A scandal involving bogus classes and inflated grades at the University of North Carolina was bigger than previously reported, encompassing about 1,500 athletes who got easy A's and B's over a span of nearly two decades, according to an investigation released Wednesday.
Re: (Score:2)
The last program I had to write in first year CS was a plagarism detector. Surprisingly easy.. just do a frequency analysis on keywords and that will get you 90% of the way there. So, I actually did this assignment unlike all the others that I had cheated on...
Re: (Score:2)
Everyone looks at code done by others. You're a moron or don't value your free time if you don't. the key is to not directly copy/paste. Change variables, how loops work, etc. Change enough to where it's not completely obvious. Then you'll be prepared for the real world.
Nope, then you'll be prepared to fake your way into an entry level job and won't be promoted because you can only do stuff that someone has done before.
Re: (Score:2)