Academic Dishonesty-When Is It REALLY Cheating? 120
ConcernedStudent asks: "Recently, 10 of my fellow classmates have been brought up on academic dishonesty charges in a senior level engineering class concerning a recent programming project. Granted, some copied other code verbatim and deserve to be caught, probably moreso for just being that stupid. However, there are those who have been implicated because they referenced code of somewhat dissimilar projects from previous semesters at some point during their design process. As long as the old code was not passed off as their own work for a grade and does not appear in the final draft of the code, is this really considered dishonest? How is this different than referencing a book on the language or some other "legitimate" source? At what point does referencing outside sources become dishonest? Is it just to review historical copies of code (using JFS) which were not submitted for grading to see if questionable code exists in these intermedite draft copies of the program? As this is a somewhat grey area, hopefully someone out there has comments which may help to clarify some of the uncertainty."
only 10 students?! (Score:1)
Re:The Sad Truth About Higher Education and Cheati (Score:1)
Re:Non-collaboration policy (Score:1)
And the non-collaboration policy forces you to learn such advanced things as, say, memory allocation and pointers. As a senior, I worked with a group of other students; at least one had no idea what a pointer was, or how to use it. When faced with a segfault due to dereferencing a null pointer, he repeatedly solved the problem by not dereferencing the pointer, and just changing its value.
After you've learned the basics, collaboration might make more sense as a policy. But you need to have students figure out the basics before they start "studying" other people's code.
One last note: studying others' code isn't necessarily a violation of a non-collaborate policy. But it might be. Use your common sense.
Re:The Sad Truth About Higher Education and Cheati (Score:1)
Re:An ex-T.A. speaks out... (Score:1)
Re:The Sad Truth About Higher Education and Cheati (Score:1)
Re:The Sad Truth About Higher Education and Cheati (Score:1)
This is the sort of thing why I loved the honours program [www.unb.ca] I took: your mark was based in great part on your participation in seminar. None of the parroting back crap that only separates those who can memorise from those who can't. Yum.
Re:Non-collaboration policy (Score:1)
Re:The Sad Truth About Higher Education and Cheati (Score:1)
Re:(Another) ex-T.A. speaks out... (Score:1)
I'd argue the exact opposite. Much of the strength of open source software lies in the ability for new developers to review existing code, and contrast the strengths and weaknesses of different implementations. It can serve both as an inspiration ("Look at how they did that... interesting. Can we improve it?") and as a caution ("Looks at how they did that... ugh! Can we avoid that?")
The only question in my mind would be: was the referenced material generally available (posted on a web site, published somewhere, etc.) or was it's availability restricted (someone asked Tom for the implementation he did last semester)?
If the former, then give them kudos for understanding that no development occurs in a vacuum, and make the intent of the project clearer in the future by telling students that they should not reference existing works; maybe by stating that such a comparison will be a follow-up project.
If the later, it's a dicier situation, because until the project is done and handed in, you don't know what action they decided to take (plagarism or citation.)
Honor Code? (Score:1)
If so, and the students violated that code, no matter now antiquated it might be, then they are guilty.
Is the administration claiming that they violated a specific clause in your school's honor code? Or is it really, as you say, a "grey area"?
Re:Reuse should be encouraged. (Score:1)
-Ryan
Stallman was asked about this. (Score:1)
RMS's reply was basically, 'Don't be a dumbass'.
Re:My Situation (Score:1)
Re:Catching Cheaters is Easy (Score:1)
But on the other side, it was really obvious who understood the material and who didn't. It's really hard to fake your way through a hardware demonstration. And we also required a lab report which we really did read. As I recall, we gave partial credit to people who had working hardware, but were running other people's code to prove the hardware worked (and told us that was the case).
As for automated tools to check for cheating... Most are defeatable if you know what it is looking for. As a simple example, there was one program that logged emailed assignment turnins to ensure that they were turned in before a certain date/time. Unfortunately, it could be faked by sending the email through a .jp mail server to get their local timestamp...
- Mike
Re:The Sad Truth About Higher Education and Cheati (Score:1)
I once had a student come to me and try to argue that I should give them more style points for their code. I just said "no". It is hard to argue with a flat out "no, you don't deserve more points". It is when a TA is inconsistent in their grading that they get a reputation for giving out more points, and then haggling becomes a real problem.
Re:Non-collaboration policy (Score:1)
more moderators on 2$ crack... (Score:1)
Re:The Sad Truth About Higher Education and Cheati (Score:1)
focus on learning."
I'd say this is frequently inevitable, unfortunately. At my current school, the University of Washington, competition to be accepted into the computer science department is so absurdly fierce that students with haggle with their TAs for an eternity over a few points on a homework, and live in fear of getting a 3.8 instead of a 3.9 in a course, and thus running the risk of not getting into the major. It's easy to say that these students should be concerned about knowledge, but not grades, but when a teensy fraction of a point makes the difference between success or failure, who can blame them for it?
ReUse Just might mean Failure (Score:1)
She had to revamp her ideas after people starting turning in programs in Mathematica that made heavy use of all the number crunching routines it provides. Not exactly cheating, but when you are supposed to write a program to test the primality of a given number, you shouldn't be able to just call the Mathematica routine isPrime() (or whatever it is called)
Doing it from scratch is how you learn to do things in the first place.
JohnnyO
Re:Idioms (Score:1)
JohnnyO
Re:The Sad Truth About Higher Education and Cheati (Score:1)
Humm - you mean it is less easy to cheat during examination ? Damn, I must be very good at it then ! My most "collaborative" school work has been done during examinations, not assignement. I remember once, making doing an examination with the help of about 20 different peoples, each doing the question that he/she knew best then passing along the solutions to other.
I think cheating is hacking, one has to be smart, quick and stealth to do it well and be ready to fight the establishment. Idiot cheaters and hackers always get caught.
Re:The Sad Truth About Higher Education and Cheati (Score:1)
So yeah, GPA is all that matters.
Later,
ErikZ
Re:The Sad Truth About Higher Education and Cheati (Score:1)
Re:Avoiding cheating. (Score:1)
Re:Change the Assignments (Score:1)
Simple policy (Score:1)
"Students in computer science can learn a lot from each other about how to get programs working. While I welcome and encourage this collaboration, there have to be some limits. Each homework you submit for credit must include an honesty statement. Either affirm that you worked entirely on your own, or indicate whom you consulted and the nature of your work together. (Naturally, if you consult another book or any reference besides the text, you will want to include an appropriate citation; the honesty statement is the place to do that, too.) You must understand homework that you submit for credit. If I have any doubts, I might call you in to explain any such work, and base your grade on your answers. Violations of these policies will be handled in accordance with the procedures explained in the College's handbook Standards of Academic Honesty."
This seems to work just fine, as well as being a succinct way of saying what I think we'd all mean. Reference: http://www.courses.drew.edu/sp2001/csci-101-001/ [drew.edu]
Re:Tested this once myself (Score:1)
"It didn't say don't pour scalding coffee in my lap or don't eat the Styrofoam beads".
Just because it isn't specifically stated, doesn't mean you can do something you know is wrong.
Idioms (Score:1)
Where did this article come from? (Score:1)
My Situation (Score:1)
Re:An ex-T.A. speaks out... (Score:1)
even if you cite that you used code from someone in your class, your professor will probably frown upon it...
Re:Reuse should be encouraged. (Score:1)
Did the students specifically cite the other work? (Score:1)
Academic Bullshit (Score:1)
Re:Tested this once myself (Score:1)
Old projects and open source (Score:1)
Re:non-collaboration policies are really dumb (Score:1)
Re:Reuse should be encouraged. (Score:1)
To make sure you understand the tools that you are using. And that you can survive in their absence. Somebody has to implement those libraries. What happens if you're on a new platform, and that somebody is you?
Re:Reuse should be encouraged. (Score:1)
Asking questions is quite a bit different from copying code. Copying code without understanding it does not teach the student anything. It is possible that a student understands the code they copied, but how do you prove that? Besides, experience in writing your own solution to a problem is very useful. In some cases, it is useful just because it shows you the wrong way to do something.
Re:Reuse should be encouraged. (Score:1)
All work on quizzes, tests, design assignments, and labs sit to be wholly your own. Possessing, using, providing, or exchanging improperly acquired written, verbal or electronic information will be considered a violation of the academic honor code. Violations will result in a grade of F for the semester.
Ask yourself, if the assignment was to write a web browser that does x, y and z and you brought in the Mozilla source code, would you expect a good grade? No.
The professor may be a stickler, but he did lay things out in the syllabus.
By the way, I'm an occasional teaching assistant. What you really want to do if you aren't absolutely certain about the right thing to do is ask the TA or professor. They'll be glad to help you out.
...more (Score:1)
Re:The Sad Truth About Higher Education and Cheati (Score:1)
My company is hiring now and I'm involved in process of interviewing software developers and, IMHO, nobody gives a dime about GPA.
Your hard B and C will benefit you more than some easy A's. Good luck!
Re:School is NOT the Real World (Score:1)
But - it's amazing but true - in the same time he didn't know how to join tables in SQL, what's fork, and, finally, what's linked list!
ReusableDeveloper extends SoftwareDeveloper {
Honor Councils (Score:1)
I also attend a college on the quarter system (Lawrence University [lawrence.edu]), and am working on a double major (studio art and chemistry, neither of which are easily compacted, like a Compiler Design course, I'd imagine).
If the quarter system were to blame for your school's cheating, then schools that have the block system (3.5 weeks of a single class, final, extended weekend break) would have nearly 100% cheaters in their student bodies.
It does sound like your professors have some strict grading policies. I'm sorry you've got such a load, but let me remind you, you picked the school! Go somewhere else for semesters!
I'm also a member of the L.U. Honor Council [lawrence.edu], which is an educational (and when need be, disciplinary) resource for academic integrity. Basically, we prosecute cases of cheating. We know we don't catch every case, but we think an honor system deters cheating to some extent. Perhaps your school should look into forming one.
Re:Two simple rules (Score:1)
I would also have agreed if you had ended this sentence after "policies".
Re:Go to Caltech nyo! (Score:1)
Are all Caltechies that stupid? Half below the median, maybe.
The Even Sadder Truth: (Score:1)
During one networking midterm, a group of Indian students sharing a graphing calculator lost ten (out of 200) points.
During a unix system administration final, four chinese students were babbling with each other for the whole test. The professor did nothing, although he did yell at me for hanging my coat on the back of my chair (versus the pegs in the back of the room)
Re:CS is not real-world programming (Score:1)
Man, I never really thought about what college would have been like with today's Internet. Granted, when I went to school, the Internet existed, but USENET was the only real place to get reliable information, I was never much of a BBSer.. I guess I had many books, and still do, but here in the present I rely on the Internet quite heavily for information, maybe too much?
But anyway, on the cheating subject. Most of us in CS probably had a little group of CS friends. Some were cut out for it more than others but they were your friends and that was cool.. Well, I used to help some of them out by giving them copies of mostly finished coding assignments. Part of it at the time was probably a little bit of an ego thing, but also I wanted to help.. I was always paranoid, however, so I would optimize, clean up, document, and otherwise alter my code so it really looked nothing like what I had given my friends. One day, toward the end of the semester, four of my friends got busted for all having essentially the same program - mine. Each received 0's for the assignment, which dropped them by at least a grade level. Me, I was ok because I always rewrote. I never let my friends copy my code again, though, it helped that they never asked after that. That was kind of a wake up call for us..
Re:An ex-T.A. speaks out... (Score:1)
"Evaluate and incorporate (and improve on in an OS model) code that you think can do the job"....is one skill that should be taught. But if the question was more along the lines of....
"produce some code based on the programming principals that we taught you".... then yeah they are wrong. Reguardless of who they reference it is wrong. Indeed there is an academic convention which diferentiates between references and 'inspirational' material.
references - stuff you quoted
bibliography - suff yoou looked at...
Cheating (Score:1)
Re-use (Score:1)
I do agree that taking snippets of code from outside sources isn't learning but there really is no reason to invent the wheel yourself over and over again.
Reuse but only when attribution is given (Score:1)
Second, and I suspect that the prof would tell you this, you don't get to reuse someone elses work without attribution. You give credit where it is due and you probably won't have a problem.
When I was in college whole scale duplicating of programming projects was the rule. The profs didn't clamp down on it and it. I did original work but many people took programming lab courses just because they were considered easy to cheat in.
Regulations for a research university (Score:1)
Part VI: Academic Integrity in Undergraduate Education and Research, Section A, Para 1 states:
"A fundamental tenet of all educational institutions is academic honesty; academic work depends upon respect for and acknowledgement of the research and ideas of others. Misrepresenting someone else"s work as one's own is a serious offense in any academic setting and it will not be condoned."
Para 2 states, quoted: "Academic misconduct includes, but is not limited to,"..."presenting, as one's own, the ideas or words of another for academic evaluation; doing unauthorized academic work for which another person will receive credit or be evaluated; and presenting the same or substantially the same papers or projects in two or more courses without the explicit permission of the instructors involved."
Research is based on taking pre-published information and using that background knowledge to explore and create new conclusions and ideas. In computer science, as in any other science, research is primarily involved in creating a new hypothesis, and the majority of the time spent in research is building the experiment to test the hypothesis. This isn't a lab course; experiments are created from scratch, since your experiments are original. About 75% of the time spent in research is in the lab trying to collect data. In computer science, data is collected by writing programs. However, it is logical that if someone has already created a protocol for an experiment and taken years to perfect the experiment, why should you, as someone trying to explore *new* ideas, be forced to recreate the wheel? Thus, you search in the literature, and you find that so-and-so had a similar setup and they used a set of components to build it. Because the best science is based on quantitative data, parameters are published, *for the express purpose of repeatability*.
The scientific method states that for a conclusion to gain acceptance based on experimental data, the experiment must be repeatable in the exact way it was published, and that if I would to go to the lab tommorrow and replicate an experiment using all the published parameters, I should get similar results.
In computer science, experiments are in the form of running analytical computer programs. Thus, in order to prevent reinventing the wheel, you can and SHOULD use pre-published code. However, YOU MUST GIVE CREDIT WHERE CREDIT IS DUE. Since almost everyone here on
Tested this once myself (Score:1)
Honest vs. Permitted (Score:2)
As long as you give proper attribution anywhere you use or reference others' work, that's honest. In some cases, the requirements of the assignment may require that you not use certain sorts of sources. If you fail to comply with that restriction, but give proper attribution, then you're not being dishonest, you're just failing to do the assigment as specified. This would be grounds for a poor grade, but not for academic dishonesty charges.
Re:The Sad Truth About Higher Education and Cheati (Score:2)
Change the Assignments (Score:2)
In all fairness, I was the exception with changing my assignments from year to year and giving different students different assignments for each and every mark. Most faculty just don't want to work that hard at teaching.
Re:Reuse should be encouraged. (Score:2)
Classes are not meant to duplicate the real world. If they were, there would not be any purpose to them; we would all just need to go straight into the real world.
Well, yes, but classes should prepare students for the real world, albeit in part by giving them experiences they won't get in the real world.
For one thing, in the real world you don't always have the luxury of solving a problem in an intesting way.
For simple kinds of things (insertion sort) that you learn at a lower level, tests can sort this problem out. For advanced projects, I think that the issue of peeking at earlier solutions can be handled by the provision that a working solution only gets you 75% of your grade. The rest should go to factors like organization, documentation, clarity, and originality.
A good designer and a poor designer may both be able to solve certain kinds of problems, but the good designer will deliver a better overall package.
*How* dissimilar were the assignments? (Score:2)
Great artists steal... (Score:2)
If you're working on a project and you get stuck, will you release a product with chunks missing because you hit a wall or will you reference another project for ideas/code to get around your obstacle?
This is precisely why I think some college professors are useless. They aren't training you for real life. We don't go through our lives without learning from someone. They can teach basicsand theory, but basics only take you so far. You have to learn with help from peers before your work can truly be useful.
I know they're trying to encourage creativity here, but pure creativity doesn't work all the time.
Re:The Sad Truth About Higher Education and Cheati (Score:2)
So, don't try to convince the world that Bill Gates got where he is now by "paying his dues", because it's simply not true.
Re:The Sad Truth About Higher Education and Cheati (Score:2)
She refused to let them in.
And yes, CP/M, not DR-DOS.
My duh.
Re:*How* dissimilar were the assignments? (Score:2)
Come on. Code is the best, most concise way of explaining anything. If you want me to build a rocket, do you expect me to not check out a collection of Goddard's writing to see what he thought of the effect of motion on a shutter system, or a set of his plans to see what exactly your 'Rocket Science 101' book meant whan it talked about fuel tank reinforcement? If my final rocket is substantially different from my source material, and I cite Mr. Goddard for his inspiring me to use gel-based, gravity fed fuel for the cooling system, I am not 'cheating'. As for the 'figure it out' part, there is not a project under the sun any student would be capable of doing that has not been done before, and very few that have not been documented beyond the level of copiously, and researching code or documentation samples is fair research when cited as such.
As for reuse of portions of prior, unrelated projects; If I wrote a data handling routine that would meet all the requirements for an aspect of the project but one, copied in the code and made a few modifications, what is the harm? I would have reimplemented it in exactly the same way! Why place that insane burden on students?
Learning should be encouraged (Score:2)
I can only assume that you have never taken a computer science class. What do you think you do? You think you try to solve some problem that has never been solved before? No, you solve the same damn problem everyone else in the class is solving, and it's probably the same problem the whole class solved last semester.
By your theory, there is also no reason for me to write an analysis of Macbeth's "Tomorrow" speech, since there's plenty already written on it.
You say "if it was stated or implied that all code should be the students work." Let me quote from the policy on cheating that I am currently a TA for:
The punishments for a first offense range from failing the assignment and having your grade in the class reduced by one letter grade to just failing the class outright. For a second offense, you might get thrown out of the university.
Published vs. Unpublished Sources (Score:2)
It's one thing to say, "I needed a priority queue, so I implemented the pseudo code in CLR's intro to Algorithms". It's entirely another to get solutions from earlier semesters of the same class and use them and never acknowledge that fact. If a professor publishes solutions for one semester, does that mean the next semester can just resubmit those solutions instead of doing the project?
Key points:
1. Is the copied code part of what the assignment is designed to solve, or is it in generic support code.
2. Is the copied code from some publshed source (book, website, examples in lecture notes), or is it from somewhere that anyone would know is off limits (student from last semester, professor's solutions to last semester's projects).
Re:Cheating is a part of academia (Score:2)
All authors share responsibility and copyright for published works - the first author more so than the others, in general. If someone had incurred enormous fiscal loss that was critically dependent on your copyrighted (but false) work, you and the other authors would bear some liability.
Besides that, in general, you ought to be able to competently discuss papers on which you are an author. When I ask someone about a paper on which they are an author and they cannot answer even a simple question, it is really quite bad. For them.
In science, your reputation among your peers is one critical aspect of your career. People still cheat in various ways, but their reputation suffers.
In any case, cheating is generally a personal choice. I can tell you from teaching college courses that people cheat. We would sometimes release test and homework solution sets with arbitrary and funny silly errors such as "2 + 2 = -4" - these errors were not on the conceptual sort we were testing, merely really stupid errors we inserted to test people.
It was surprising how often these showed up in subsequent years on tests and homeworks. People REALLY do not care, and cheating is generally not treated NEARLY seriously enough. And as a result, LOTS of people cheat.
With respect to the ask
And wrt cheating, some people do it and benefit. It is a personal choice as to the potential costs and risks. I like being able to look my self in the mirror and say with confidence that anyone with reasonable skills that tries to replicate my work will find the same answers I gave. If that is not the case you are blocking science, instead of advancing it. But I guess there is the question of whether you are advancing science or your career...
Re:Honor Councils (Score:2)
About choosing another school, thats just not an option for alot of people ...
The honor system looks like a good idea, but if you read between the lines, my thesis was that cheating is a supply and demand situation ... University policies, bad instuction, and bad students create a demand for cheating. And as wel all learned in econ 10a, demand creates supply ... Now granted a school will never do away with cheating completley, but I argue they are in control of atleast two of the demand components, bad policy and bad instruction.
In the end it's much easier to insist amoral students are cheating then to realize you yourself were part of the problem ...
College is a contest to see who gets thru, not who gets thru witout cheating.
Re:Berkeley Cheating Detection (Score:2)
Some random thoughts (Score:2)
This naturally led to designing the code together and, in afct, if you mapped variable names you'd fidn our assignments looekd rather similar.
Was this bad? i don't think so. I learend valuable thinsg about team projects. Years later my friedn told me he learned as much about engineering from me as he did from our professors.
Ultimately the goal of an educational institution shoudl be education and anything that enriches a student's education shoudl be good. While I don't support people riding along on others work and doign ntohing, the afct of the matter is that thsoe people aren't learnign anything the world will bite them in the ass soon enough.
My guess is your school is a big state school. Big state schoosl have a way of forgetting that the structure exists for education and start valuing the structure above all else. I fell for your fellow students. If I wer them, I'd try ot get a pro-bono attorney and fight back.
(I actually DID sue my school eventually over the administration taking an unreasonable action that hurt my transcript. It was avery diffrent sort of manner. They lied to me then told me I was responsible for knowing they were lying.)
It all depends on context (Score:2)
If the course was about building complex systems, then borrowing other code would probably be OK.. As long as you make it clear what's you're code, and what came from elsewhere. If the course was about learning how to write programs, then 'borrowing' someone elses' code would be against the purpose of the course.
Think about it for a second. Just about any problem simple enough for a beginner programer to solve already has a solution written. Bubble sort? No problem [4guysfromrolla.com]. Quick sort? Right here! [uwa.edu.au]. You can get a garbage collector from this page [hp.com]. (none of these took me more than a minute to find with google).
So how are you going to actually learn how to program if all you're doing is stealing other people's code. More importantly: How do you learn how to fix problems with code if you're doing this?
Of course, it would be hell for an instructor. If you wanted to force your students to write their own code, the only problems that you could give them would be problems that even the best experts hadn't been able to solve.
--
Re:The Sad Truth About Higher Education and Cheati (Score:2)
I think that is an obvious statement. If you take classes that you think that you will enjoy the subject matter, you are more likely to spend more time studying it, which means you are far more likely to do well in it.
Cheating happened lots in my school [sdsu.edu], but I'm glad to say that I was able to graduate without cheating, as it has helped me greatly. It's much harder to cheat in the industry!
remember the old adage! (Score:2)
If you steal from one source
it's plagairism. If you steal
from many sources, it's research.
Re:Reuse should be encouraged. (Score:2)
The Answer Is Obvious (Score:2)
Academic Dishonesty-When Is It REALLY Cheating?
Duh. If it wasn't cheating, it wouldn't be dishonest.
The real question is this: Were the students supposed to demonstrate that they had learned how to write their own good code?
Since most student's natural state and abilities seem to lie in the area of using other people's work, I'm guessing they don't need to be taught how to do that!
Of course the real world works on the principle of code-reuse! But that doesn't exempt programmers from being able to write good code of their own when pressed. What these students have shown is that, when pressed, they can't (or won't) write good code. They cheated, and they deserve to fail. They haven't demonstrated the required level of learning.
Re:Re-use (Score:2)
I don't think so. The purpose of education is to build on what you learn, not build on what you've produced already.
--
School is NOT the Real World (Score:2)
When I was in a graphics class, we had to put together a renderer from scratch (no OpenGL for us). Needless to say, it took weeks of labor to get something that raytraced some lousy planes and spheres. Not too hot.
But three guys in the class treated it like a job, and shared their code. They were working without advanced libraries just like the rest of us, but because they worked together, they modeled a whole room, with textures and other spiff doodads, and it was definitely the highlight of the class.
Of course they practically failed the course because of their actions. They failed to understand that the class was NOT about the product, but the process. It's about the skills, not a cool demo. Well, ok, it sucks if the teacher is teaching a bad process...
---------
It is easy to control all that you see,
In this case, the instructors share some blame (Score:2)
However, as this was a senior level CS class, I find myself asking why the profs were assigning problems for which solutions could already easilly be found?
Shouldn't senior programming students be expected to be capable of solving new problems? Shouldn't the profs be working a little harder to find new knots for the students to untie? If the instructor is just assigning programs out of the back of some textbook, he/she is short-changing those students.
Prevent Cheating (Score:2)
I say look at the instructors. (Score:2)
I can't possibly imagine how looking at someone else's code - for a different project - could be considered "academic dishonesty." I'm not taking any engineering courses, I have a concentration in C, but in all the courses I've taken so far, collaboration has been encouraged.
My instructors have all been very open-door, they give out their phone numbers and email addresses on the syllabus. Working outside of class is not only permitted, it's encouraged - I've never coded a single lab in class; I do it all at home where I'm comfortable and in my own environment. As for in-class activities, if you can't figure something out, you can look in the book; if that doesn't help, you can ask the guy next to you. And if he's clueless, you can look it up on the web. I tend to go for the latter solution as finding other peoples' example code has worked wonders for me.
Put simply, I would not be the programmer I am today had I never looked at or used someone else's code. Granted, I don't use other peoples' code verbatim in my own class projects; again that's cheating and nothing more. But I don't see anything wrong with looking at someone else's example, seeing how they did it, and then using that knowledge to do it again yourself. Many people - myself included - learn best not by lecture, but by example. Looking up some former student's code from a different project is no different than picking up my copy of the C++ Bible. And neither are dishonest practices, IMO.
I don't know anything about the instructors/professors involved here, but during my "college career" I've learned at least one important thing about instructors. The ones with a lot of cheaters or failing students in their class are the ones who aren't teaching the material well enough, and they often know it. In fact my C++ class just had 6 people transfer in from another instructor's class. Both instructors are using the same syllabus and book, but these folks all failed her first test. One of them told me he learned more from my instructor in one session than he'd learned from the other one in a month of classes.
An instructor who's there to teach and is willing to help students learn - as opposed to the batty old tenured guy who's just there to draw a salary - does not often need to worry about cheating.
Shaun
Re:Reuse should be encouraged. (Score:2)
True in the real world. However, the purpose of the real world is to get work done efficiently, and the purpose of academia is to educate students.
If the referenced code was the core of the problem to be solved, and therefore the lesson to be learned, it's a problem. If it was just generic support code that the students could have written after their third semester in CS, it shouldn't matter.
Go to Caltech nyo! (Score:2)
Collaboration is encouraged, for the most part!
Of course, I never saw the dark seamy side of student life. What dark seamy side? I don't know, I never saw it!
Geek dating! [bunnyhop.com]
Re:The Sad Truth About Higher Education and Cheati (Score:2)
Don't sell yourself so tall.
Your friend has the jobs lined up because he is diligent, hardworking, and effective. It's not because of his grades.
Look around you. There are plenty of people who get A's and yet are fundamentally useless.
If you're not getting hired it's because you (pick any one or more):
Why Not? (Score:2)
Socialist pigs roam everywhere!
---------
Did you just fart? Or do you always smell like that?
.....but, Science is Reproducible (Score:3)
Although the author is a bit vague on details, the example sounds very similar to the David Baltimore Case, which was the subject of much investigation and a recent book by noted science historian Daniel Kevles (author of science history classic "The Physicists"). Baltimore himself is a very well known scientist (he won the Nobel prize in medicine in 1975, and is currently the President of Caltech), which accounts for the attention the case received.
However, there is a key difference between the Baltimore case and that described by the author. A scientist named O'Toole trying to reproduce their experiments failed, and accused Baltimore and his student of fraud, with very little evidence to back up the claim. Baltimore and his graduate student were exhonerated, and most people believe it was O'Toole's race to brand Baltimore which lies at the root of the problem.
Baltimore may have read the papers in great detail (as the peer reviewers of the published publications certainly did), but the truth of the matter is that without having redone the experiment oneself, no one can spot every subtle flaw in another's work. That is a fact of life, and is a key reason why scientific results must be reproducible. In the end, quite unlike the teetering house of cards which the author alludes to, the scientific enterpise has been enormusly successful across the board, precisely because it builds on solid foundations which are checked and tested carefully.
Catching Cheaters is Easy (Score:3)
I have TAed a couple of courses here at CMU, and I have to let you know that on coding assignments catching cheaters is really easy. Why? There are two reasons:
The typical way of cheating on a programming assignment is to copy someone elses solution and modify it. Perhaps you will rename the variables, change the comments, rewrite a function or two. These changes are on the surface only, and do not change the functional decomposition you used, the algorithms you chose -- in short, these changes do not change the aspects that a good grader is actually concentrating on. (And a good cheating detection tool ignores comments, variable names, etc.) Often you will find that the only person you fool is yourself.
So what is the end result? It is often easier to do the assignment without cheating than it is to cheat and get away with it.
Universties get some blame to (Score:3)
I've been a student for quite some time -- and I'll tell you exactly what causes cheating at aleast one university ... the quarter system
My university (www.ucr.edu) is on the quarter system that means *10 weeks* for a course (10 weeks instruction, 1 week finals, one week break). They teach courses they have no business teaching in 10 weeks, ie: Compiler design, 10 week course, final project? a compiler! EE120b -- logic design -- final project? a cpu! all in 10 weeks ... only the extrodinary students get thru it, which is why our graduation rate is 30%.
However, all courses are curved -- which means you have to compete on a curve, with accelerated curiculium, with students who are cheating!
Now if you think about how the standard curve is calculated, you find the average score, then the std deviation and set your "grade" levels. BY DEFINITION of the curve, your failing the lowest x% of your students ... no professor I've ever met would let a curve ride higher then the 60D, 70C, 80B, 90A. But with the acelerated coursework, its routine for good marks like A's and B's to hover in the 30 - 60% range, because students can't possibly keep up with the courses. I recall once in physics getting a 26 out of 100 on a midterm and having a very solid C. The worst thing I ever heard of was an upper level chemistry course having an average score of 1, yes 1 point.
The awfull thing about this is, if some students aren't failing completley, then none of the class can pass!
So I argue here that cheating in large quantities is infact encouraged by some university policies, and is usually an indicator something is terribly wrong with the academics of the college.
non-collaboration policies are really dumb (Score:3)
I've studied CS in a collegiate environment (right now I'm a computational chemistry major, due to graduate RSN). I've also written code for a living in a corporate environment, working on some reasonably large projects.
Non-collaboration policies always struck me as really dumb becuase in the "real" world you don't take a dump without a) a plan, and b) at least one partner, much less write a line of code. Yes, I can see the educational value of learning to do something from scratch by yourself, but I also very strongly feel that collaboration should be an integral part of the learning experience, not a forbidden zone. The most frequent complaint I've heard about fresh CS/eng graduates is that they don't know how to work in a team, because their whole educational experience has been conducted in an environment that discouraged this.
If Brown has one of the top CS departments, I sincerely doubt it has anything to do with this policy, but rather with the caliber of faculty they attract (which is pretty much a function of how much they pay and how liberal they are with tenure). (I say if not becuase I doubt they're good, I just don't keep up on rankings. :^) )
--
News for geeks in Austin: www.geekaustin.org [geekaustin.org]
CS is not real-world programming (Score:3)
...because the goals are different. if you get an assignment from your CS class to write an tree optimizer or something, and you just reference a bunch of open-source stuff, you are not earning a good grade, even though this would be a perfectly legitimate (and encouraged) solution in the workplace.
CS is supposed to teach you to solve these problems, not just implement someone else's solution.
Contrary to popular belief (where i am, anyways), the point of a CS assignment is not to get a working program. It's to learn the techniques for yourself, and see what works, what doesn't, and why.
This may be contrary to what you'd do in the "real -world", but if you have a problem with it, go to college. Undergrad is for trying, not doing :)
/bluesninja
Even better! (Score:3)
Geek dating! [bunnyhop.com]
Re:The Sad Truth About Higher Education and Cheati (Score:3)
I'm going to let you in on a secret from the Real World.
Once you graduate, nobody gives a shit what your GPA was.
Unless you're applying for graduate school, or some horrid cookie-cutter cubicle farm job (i.e., Accenture) where the HR dept processes so many people that they have no human methods of screening out the duds, nobody will even so much as look at your GPA ever again until you die.
I'm not sure why this continues to be such a revelation for people. You'd think they would have learned it after junior high. Remember how the guidance counselor told you that class you were messing up in 7th grade was going to dog you for the rest of your life, and that you were going to have to be a ditch digger if you didn't straighten up, and fast? Notice how once you hit 9th grade it was never spoken of again? That you were never required to provide your junior high transcript to anyone, anywhere, ever? There's a trend there.
You just have to do as well as necessary to make it to the next step. Just make sure the steps you're taking are leading you somewhere you want to be, because one day you're going to have to park it there. All the rest is for your benefit: learn what you can, try things, explore, meet people, make friends. It's how you did on those fronts that's going to determine how successful you are.
This applies to more than just school... (Score:3)
High school diplomas used to mean something. You had lower graduation rates because the requirements meant something. Now getting high school diploma means you attended more classes than you didn't, you can write your own name without making more than a couple mistakes, and you didn't shoot anyone. It's beginning to occur in univerities now and to be an impressive candidate in a lot of industries you have to have your masters degree.
Collabortion is great. OOP is fantastic. Trained monkeys who can sniff out and find somebody else's work are useless. School is for learning and copying work, rather than creating it, is detrimental to the student and to the school's reputation.
Take pride in your work, fulfill the requirements, and you'll understand why it's important.
Re:Reuse should be encouraged. (Score:4)
In academia (especially undergraduate) the focus is to expose the student to subject at hand so that they know where they have to look when they really have to do something. If one really wanted them to learn to do things one wouldn't throw a half dozen new subjects at them every 4 months.
Using someone else's code, even if only for a portion of the code, is having someone else do it for them. Thus, it is considered cheating.
Usually, even in accademia knowing who to ask and what to ask are just as (if not more) important than being able to do it yourself. The fact is that every prof/t.a./lab tech assumes his course is the only one in the curriculum, and you as the student should have more than enough time to gain the same level of understanding as he has after 20 years of teaching the course. Of course if he's a prof he'd rather be doing research anyway so you (as a student) are just an inconvenience.
--locust
Reuse should be encouraged. (Score:4)
If it was cited works, tell the professors to step out of acadamia and get in the REAL WORLD. The only way they have grounds is if it was stated or implied that all code should be the students work.
In my job, I try to produce as many common function code sections as possible. I then add these to a common database for others to use and modify to their needs. Re-inventing the wheel is not only stupid, it is in efficient. Engineers are lazy. Efficiency is king.
Non-collaboration policy (Score:4)
This non-collaboration policy actually works, as Brown has one of the top cs programs in the nation. However, at times it is a bit excessive. Personally, I think that whether or not your case is truly academic dishonesty depends on the guidlines for the assignment. If they strictly said that all work should be your own, then referencing other work probably should be considered cheating.
True, when writing a paper for say, Political Science, you are referencing outside sources constantly, perhaps even quoting. However, you do this to build your own argument, and only do it to support what you are writing. Copying a whole chapter for a paper without citing references is obviously plagiarism, however even with a reference the work isn't your own, and the problems here are quite obvious. Truthfully, it depends on how much code was used, and in what manner. I don't think there is any cut and dry or black and white answer to this question.
-Brian Singer
Re:Reuse should be encouraged. (Score:4)
1) If they encounter a situation where they can't re-use code, and they never learned how to write it, now what do they do? Granted, this is an extreme example, but it can and does happen.
2) If the code they re-use has undocumented bugs in it, or was originally meant for a different purpose, blindly re-using the code can do more harm than good. This is an extremely likely situation (especially with student code!).
Remember, the purpose of assignments is to teach how to solve problems by example. By giving the student direct experience in how to solve the problem, the student learns more than just what's in the book or someone else's comments.
Classes are not meant to duplicate the real world. If they were, there would not be any purpose to them; we would all just need to go straight into the real world. Classes are supposed to be used to teach students how to solve problems. That means getting them to do it themselves, and not having someone do it for them. Using someone else's code, even if only for a portion of the code, is having someone else do it for them. Thus, it is considered cheating.
At least, when I was a TA, that is how I would have considered it.
Two simple rules (Score:5)
1 - You can't be punished for citing references.
If you get code from some source and you document it, you say so when you turn it in, it isn't cheating. You may not get a very good grade and your prof may not be pleased, but you can't be brought up on charges of cheating.
2 - The Gilligan's Island rule
If you look at someone else's code, then go watch an episode of Gilligan's Island. Anything you can still remember afterwards is fair use. This was treated as a way of defining the line between copying someone else's code and learning from it. As rule, it won't save you in a court of law, but unless you have superhuman memory, you will be hard pressed to remember enough detail about someone else's work to be demonstrably cheating from it.
I have never heard of a student using these policies ever having been charged with academic improprieties. They are much, much easier to follow than the rules for when you can and can't sleep with profs and TA's.
Cheating is a part of academia (Score:5)
A little more than a year ago, the pages of Science where alive with the debate over whether a certain professor had published erroneous results or not. The case was as follows: his graduate student had been doing a series of experiments, and published a couple of papers on this -- with the professor as the first author. Some of you may not know this, but the tradition is that the person responsible for most of the work is cited first, followed by others, and, sometimes, followed by the professor (or other 'grey eminence') last.
In this case, it turned out that the graduate student had faked his data to fit with his theory. The professor -- who had been the first name on the paper -- excused himself by saying that he had not even read the paper in question.
So, either he did read the paper, examined the results, and published anyway, and is guilty of fraud; or he had his name as the first author of a paper he didn't even read until it blew up in his face.
This _really_ makes you wonder about scientinsts that have hundreds of papers to their name -- papers that are really the basis of their careers...
An ex-T.A. speaks out... (Score:5)
Academics is filled with research, including computer science. Your question didn't tell whether you gave a full and clear attribution of where you found the code.
If you did, then at a hearing, bring in just about any academic journal, and show how every paper references at least five other papers.
The Sad Truth About Higher Education and Cheating (Score:5)
I once held an informal poll among the undergrads and concluded that almost all of them chose courses they could get high marks in, and almost all of them would opt to get a high mark than to focus on learning.
As for cheating - what do you expect? The whole educational experience is driven by marks, so cheating is a natural by-product. Some schools try to get around this by focusing on examinations instead of assignments for the bulk of the course marks, but it has been demonstrated again and again that exams only teach one thing - how to do well on exams.
The only way to get technical education back on track is to make co-operative/work terms mandatory, even for students who wish to pursue theoretical avenues.