Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Academic Dishonesty-When Is It REALLY Cheating?

Cliff posted more than 13 years ago | from the stuff-to-discuss dept.

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

cancel ×

120 comments

Sorry! There are no comments related to the filter you selected.

only 10 students?! (1)

Anonymous Coward | more than 13 years ago | (#373307)

here we do things in style. [zdnet.co.uk] I've seen people turn up an hour before a deadline, get a copy of the code, rename functions and variables, then submit it. This totally pisses me off - these clueless fuckwits get grades they don't deserve! Think about it, for that particular practical a very nice girl I know had to spend two weeks coding. Fair? I think not.

Re:The Sad Truth About Higher Education and Cheati (1)

Anonymous Coward | more than 13 years ago | (#373308)

Classes that have a portion of the work graded on "group work" are a hard working students NIGHTMARE. Nothing is more unfair and frustrating than to get a grade that isnt based on your work, but instead on a groups. Teachers who are lazy like to assign group grades because it puts the burden of weak students on the other students instead of on the professor were it belongs. With all the idiots they are letting into collage these days its no wonder more and more profs are using group projects. Group projects are just another recent tradition change to make a easy job easier. Its not here yet but some day we are going to have to fire 100% of the professors nuke the universities and come up with a new institution for teaching ang training people.

Re:Non-collaboration policy (1)

sheath (4100) | more than 13 years ago | (#373309)

Speaking as someone who has TA'd at Brown and at other schools, I have to say that the calibre of undergrads at Brown is exceptional: most of the reason for this is that they seem to honor the non-collaboration policy (which is only applied to some assignments; different courses/assignments can have different policies).

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:An ex-T.A. speaks out... (1)

sacherjj (7595) | more than 13 years ago | (#373311)

Exactly. If you do the first, you are in for some deep trouble. If you do too much of the last, you are also in for trouble. If all of their project is cited code, they are not in the wrong, however their grade should reflect their lack of effort.

Re:The Sad Truth About Higher Education and Cheati (1)

sacherjj (7595) | more than 13 years ago | (#373312)

Actually, if you explain to the employer why you took challenging classes and were forced to work hard to pull out the grades you did, it will carry more weight that a slacker who has a 4.0 in basket weaving. Atleast to an employer worth working for.

Re:The Sad Truth About Higher Education and Cheati (1)

kraig (8821) | more than 13 years ago | (#373313)

... or to eliminate grades altogether, a la Zen and the Art of Motorcycle Maintenance. I think Phaedrus had a good idea.

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 (1)

KyleCordes (10679) | more than 13 years ago | (#373314)

While no doubt they are doing what works for them, learning how to collaborate with other developers (who might have varying levels of knowledge, technical disagreements, personal disagreements, etc.) is vital to success in the "real world", and many CS programs regularly encourage collaoration by assigning group projects.

Re:The Sad Truth About Higher Education and Cheati (1)

Jack9 (11421) | more than 13 years ago | (#373315)

There is very little to prevent you from copying code in industry. Half my time is easily spent looking for ways other people have done things or already done things for me to use. This is even comical when the boss insists you use somebody else's work from outside the company to save time. Screw credit, just get it done. That's the industry motto, isnt it?

Honor Code? (1)

image (13487) | more than 13 years ago | (#373317)

Does the Celmson program in question have an established honor code or written policy on this?

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

Stallman was asked about this. (1)

PsychoKiller (20824) | more than 13 years ago | (#373319)

I remember when RMS came to do a talk at our school, and some CS student asked about what would happen if he GPL'd his project that he was working so he could share it with other students.

RMS's reply was basically, 'Don't be a dumbass'.

Re:My Situation (1)

pbkg (24307) | more than 13 years ago | (#373320)

Basically I wouldn't say a thing. Most lecturers keep the same assignment year after year after year (when you repeat subjects you find these things out). The lecturer will not generally be concerned unless you copy word for word straight out of the solutions. If you have a understanding of the problem, you should be able to rephrase the answer in your own terms. This is probably the best defence against cheating.

Re:The Sad Truth About Higher Education and Cheati (1)

Chris Colohan (29716) | more than 13 years ago | (#373322)

As a TA, I have to say that grade haggling is a pain in the neck. So I just don't do it. If a student comes to me with a grading question, I try to find out if I made a mistake in grading the question. (ie, an addition error, I missed an important aspect of the solution, I didn't see the right answer amongst all the scribbles) If there is no error, then there is no discussion.

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.

more moderators on 2$ crack... (1)

NateKid (44775) | more than 13 years ago | (#373324)

How the fuck is the above post flamebait?

Re:The Sad Truth About Higher Education and Cheati (1)

Blue Neon Head (45388) | more than 13 years ago | (#373325)

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

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 (1)

JohnnyO (50199) | more than 13 years ago | (#373326)

I took a CSE/Math hybrid course last semester entitled Factorization and Primality Theory. The professor was a Math teacher, who know nothing about programming. Anyway, she said we could turn in our assignments in any language.

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 (1)

JohnnyO (50199) | more than 13 years ago | (#373327)

In other words, if I am told to code a hash table in any language and I choose Java and use java.util.Hashtable, is that cheating? Or just laziness?

JohnnyO

Re:The Sad Truth About Higher Education and Cheati (1)

ErikZ (55491) | more than 13 years ago | (#373329)

Yeah yeah sure. All I know is that my friend who sacrificed his life to get straight A's has a line of companies offering him jobs. Where I have years of non-work experence, and can't get a company to fart in my general direction.

So yeah, GPA is all that matters.

Later,
ErikZ

Re:The Sad Truth About Higher Education and Cheati (1)

slam smith (61863) | more than 13 years ago | (#373330)

I have never been asked for a transcript from an employer. Alls they have ever cared about is that I got a technical degree.

Re:Avoiding cheating. (1)

slam smith (61863) | more than 13 years ago | (#373331)

I always took the opposite approach. I usually assumed that I was allowed to do something if it wasn't specifically forbidden.

Simple policy (1)

mrfantasy (63690) | more than 13 years ago | (#373333)

A professor who teaches where I work has the following policy:

"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 (1)

jerrytcow (66962) | more than 13 years ago | (#373334)

People like you are the reason we have to put disclaimers and warning labels on EVERYTHING.

"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 (1)

Ghengis (73865) | more than 13 years ago | (#373335)

How do code idioms fit into all of this... if you're covering a new area of a language or design, and the solution is an idiom of the language, then who gets attribution?

Where did this article come from? (1)

jesser (77961) | more than 13 years ago | (#373336)

I saw the iridium article on the front page before I saw this one, but the iridium article is above this one. Did this one jump to the front page while I wasn't reloading slashdot every minute? (I can only afford to reload once every 15 minutes while taking tests.)

My Situation (1)

skware (78429) | more than 13 years ago | (#373337)

Okay, I am doing 2nd year Computer Engineering, and I have just been put into a similar situation. At the beginning of the year, before last years website for the course had its contents removed from it, I browsed thorough it to see what we would be learning (or not in my case). On the site there were copies of the assignments including some solutions from the lecturer. Now, I have seen and understand these solutions. This year however, they have reused an assignment that is extremely similar (part of it is exactly the same). What can I do about this? I even still have copies of the entire last years site on my home computer. Should I complain that the assignment is unfair, or not say anything at all? Either way, leaves me with a problem, that I could be accused of cheating.

Re:An ex-T.A. speaks out... (1)

nycsubway (79012) | more than 13 years ago | (#373338)

yeah, but you can't write in your senior project

/* subroutine taken from Alex T's senior design lab (CSE293 section 2, SP2001) */

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. (1)

papa248 (85646) | more than 13 years ago | (#373339)

As a former Computer Engineering student, I would agree on the aspect that the point is to learn the material. That's what exams are for. However, teaching an engineer to do what engineers do it just as important, if not more important. I can't tell you how many times I've been taught time saving techniques. Why re-write math.h or a stack in the STL if you can use one that's written? This lets the instructor focus on the real topic: solving a problem. In a first-year CD course in C or C++, the prof. might not be able to ask the students to solve the Tower of Hanoi, if they have to spend all of their time coding the stacks instead of developing an algorithm to solve the problem. Just about anyone would argue that knowing how to write code with a smaller O(n) that is quick and efficient to solve a difficult problem is better than knowing how to hand-write code to overload an operator.

Did the students specifically cite the other work? (1)

Ryu2 (89645) | more than 13 years ago | (#373340)

I don't know how it is at other schools, but Stanford's policy in CS courses is (in general), that as long as you cite specifically that you received aid or used code from a source, or worked together, and you understand what it does, they cannot bring charges of dishonesty against you, since you are not misrepresenting yourself. Of course, they are free to give you a lower or failing grade on that project if the point of the project was to implement your own work.

Academic Bullshit (1)

sud8ed (94202) | more than 13 years ago | (#373341)

Ok lets talk about academics here. The whole academic dishonesty thing is actually to be interpretted by the instructor in their syllabus. Or at least that is usually how it is done. However, usually the professors have a fairly blanket policy: do it yourself. Anyway, the difference between a book that is published and intended to be used as a reference book and your classmate is that you are supposed to be learning. For the most part, the code should be original, unless it requires soe obscure algorithm or the like. In school, no matter where it is, the programs are usually so basic that it shouldn't be that difficult, even the browser we had to make in DataComm. So just to be on the safe side, think it up for yourself. If the teacher then has a problem because you were on the same proverbial page as someone else, then let em have it with a big BITE MY ASS! Just make sure you have the personality, charm and great grade to be able to say it.

Re:Tested this once myself (1)

PerlGeek (102857) | more than 13 years ago | (#373342)

No, people who do things like that and then sue the one who gave them the instructions for not being specific enough, they are the reason they have to put disclaimers and warning labels on everything.

Old projects and open source (1)

Po84 (105038) | more than 13 years ago | (#373343)

I am a college student and have considered open sourcing some of my old projects from my computer science and computer engineering courses to help some of my peers, especially those I tutor, to grasp the material better. However, professors at my school sometimes "recycle" old projects in the exact form they were given in past semesters. What do you say about academic integrity in respect to this situation? If a student turns in my old code as a solution to a "recycled" project, understands every aspect of it, properly cites where he/she got it from, and notes it is an open source project, should he/she be penalized as cheating?

Re:non-collaboration policies are really dumb (1)

josecuervo (113956) | more than 13 years ago | (#373344)

I agree, I forgot to specify that in general the collaboration policy is strictly applied to the lower level undergrad courses, which build a basic understanding of cs and syntax, where its really important to not be copying other peoples work. Higher level courses generally encourage collaboration, obviousley because this is how the industry works.

Re:Reuse should be encouraged. (1)

BinxBolling (121740) | more than 13 years ago | (#373345)

Why re-write math.h or a stack in the STL if you can use one that's written?

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. (1)

Freeptop (123103) | more than 13 years ago | (#373346)

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.

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. (1)

mtDNA (123855) | more than 13 years ago | (#373347)

I agree. Plus, if you look at the syllabus of the course ConcernedStudent is concerned about (which is posted here [clemson.edu] ) the rules are clear:

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 (1)

mtDNA (123855) | more than 13 years ago | (#373348)

If you look at the last page of the syllabus, the professor appears to have had students actually sign a pledge not to use outside code.

Re:The Sad Truth About Higher Education and Cheati (1)

igrek (127205) | more than 13 years ago | (#373349)

Who cares about GPA? You take classes primarily for yourself, not for the marks and not for your resume, don't you?

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 (1)

igrek (127205) | more than 13 years ago | (#373350)

Yesterday I interviewed one guy for Software Architect position. He knew a lot about EJB, Java App Servers, UML, OOP/OOAD. At least, on the high level.

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 {

Re:Two simple rules (1)

The Pim (140414) | more than 13 years ago | (#373352)

I have never heard of a student using these policies ever having been charged with academic improprieties.

I would also have agreed if you had ended this sentence after "policies".

The Even Sadder Truth: (1)

duffbeer703 (177751) | more than 13 years ago | (#373354)

If you are from Asia, the cheating rules were a little lax at my former shithole state university.

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 (1)

dohnut (189348) | more than 13 years ago | (#373355)


...you just reference a bunch of open-source stuff...

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... (1)

skotske (197815) | more than 13 years ago | (#373356)

...it entirely depends on the question that was posed in the assignment...

"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 (1)

Emperor Shaddam IV (199709) | more than 13 years ago | (#373357)

If the assignment was to develop code from scrach and come up with you own solution, then it was cheating. I don't know what is going on in universities today, but when I when to school, ALL code had to be written from scrach, and thats what we did. In the end, these students are only cheating themselves, because they are looking at other people solutions, not coming up with original ones.

Re-use (1)

Deanasc (201050) | more than 13 years ago | (#373358)

Am I missing something here? I know copying outright is wrong but if I wrote code for programming 101 I should be free to use the code I wrote in 102 and beyond. The purpose of education is to build on what you learn so that when you get to CSC400 courses you can look back and really understand what you did in CSC101. If I wrote it I should be free to continue to use it as I grow.

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 (1)

jdb8167 (204116) | more than 13 years ago | (#373359)

First, you should check with your professor. That is a simple rule. This isn't the real world but academia and different rules apply.

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 (1)

CowbertPrime (206514) | more than 13 years ago | (#373360)

The University of Connecticut [uconn.edu] , while known for it's basketball team throughout the country, is also 1 of 2 Carnegie-Mellon Research One Institutions in the northeastern United States that is a public university. Here's what our student conduct code [http] has to say about academic dishonesty:

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 /. is a proponent of open-source, I think you can easily identify with crediting authors of code when you use them in your own projects. Published scientific data is NOT copyrighted, that is, you do NOT have to ask for permission to use the data. This is why, in EVERY formal paper, any information that was not the author's own ideas is cited. A typical research paper has around 30 citations or more; even background information needs to be citated. Otherwise, in addition to credit, how is accountibility and authenticity ensured? If I don't say where I learned that newly discovered fact X, and someone who doesn't know much about fact X reads my paper, they won't know if it's really true, of if I'm just pulling stuff out of my ass.

Tested this once myself (1)

kisa (211991) | more than 13 years ago | (#373361)

Maybe this is a bit different but sort of the same. Back in my college days an assignment in my 'Control and Security' class caused a little bit of a comotion. The assignment was to write a program to encrypt and decrypt messages based on the Tableau Vigenere. There was no requirement on language or anything else. The professor wasn't exactly on the ball so I asked if we could use any type of libraries that may be available. The answer was yes. Anyway to make a long story short I went home spent a few hours writing a nice library to encrypt and decrypt messages based on the Tableau Vigenere. I made a little flyer and posted on the classroom board the next morning. I would not have sold it to anyone but I wanted to see the reaction. So to make a long story short the prof. got a little upset, accused of cheating. My standing in the school, and the fact that I never actually sold it to anyone, prevented me from harm but the next semester students had a few more stipulations on the project. While this would not have been ethical I don't think it would have been cheating either. If code is given the proper credit then why would it be cheating?

Plagarism (1)

Lothsahn (221388) | more than 13 years ago | (#373362)

Plagarism was defined to me as:

The production of work which can be proven to be a copy or a part of a copy of another's work without due credit.

Personally, If I were the teacher, and the bulk of their code was their own, and they referenced other code to see how it worked (you try learning C sockets on you own without referencing other work, for instance) and they gave credit, I would have no problem. If they didn't do BOTH of these, I would have an issue to raise.

Re:Two simple rules (1)

zhensel (228891) | more than 13 years ago | (#373363)

What was that code again... Oh yeah: /* Square it! */ cin >> X; X=X^2; Gilligan.fall("hammock"); Cout X; Sorry for the simpleton program, I took a C++ class two years ago and that's it.

Not Tolerated at all at Tabor Academy (1)

mrs clear plastic (229108) | more than 13 years ago | (#373364)

At the private high school that I attended; Tabor Academy in Marion, Mass; any sort of cheating and plagurism was not tolerated.

Classes are small (5 to 10 students with faculty member). The rooms are very small (smaller than the bedroom in my house).

The faculty member can see everything that goes on in there. There is no hiding. No chances to pull out notes, palm pilot, whatever. The lines of sight are short and direct. Like I stand at door of my bedroom; I sure can see the palm pilot sitting on the pillow of my bed and almost read what's on it.

The faculty member knows each student quite intimately. Their writing styles are known. Trying to copy chuncks of term papers from term-paper.com type sites would not cut it.

Anything amiss? Phone call from the headmaster to the parents that evening. Parents paying $15000+ for their kid's education WILL listen to that phone call and read the followup letter from Mr. Wickenden.

Study is in supervised study hall. Library is by pass only during study hall. The study hall monitor knows what to look for.

Avoiding cheating. (1)

gte910h (239582) | more than 13 years ago | (#373365)

If you find yourself interested in going and looking up former solutions to a problem, you either are in a class where this sort of thing is alright, even encouraged, or you are behind the expected level of experience/knowledge for the course. Unless the instructor specifically provides former students assignments (one of the professors here at Georgia Tech does), you should ask: Is it alright to look at previous term assignments for this portion of the assignments? Is it alright to look at previous solutions to similar problems on the internet?

The point of most classes is to have to struggle through this stuff and thereby become something worthwhile as a programmer/engineer. Do so and you will be gain much skill and character as a result.

Wasn't this . . . (1)

Pituritus Ani (247728) | more than 13 years ago | (#373366)

. . . the school that tried to ban VoIP [teledotcom.com] to force students to pay for long distance in the dorm? And the one that nailed a CS freshman [augustachronicle.com] on a trumped up "computer crime" charge? And, although they initially said they "don't block anything here," [sc.edu] are about to block Napster [clemson.edu] ?

OK, maybe these guys cheated, maybe they didn't, but there seems to be a pattern here--transfer out already!

Re:The Sad Truth About Higher Education and Cheati (1)

UberLame (249268) | more than 13 years ago | (#373367)

Darn. You mean I'm going about this all wrong? Unless forced to take a particular class, I take classes where I will have to work hard to be able to get a B or a C and probably won't be able to get an A no matter how hard I work. I guess that means my GPA is just going to make me look like an idiot now. School sucks.

When Is It REALLY Cheating? (1)

pvera (250260) | more than 13 years ago | (#373368)

Every time you even try.

This would not be a big deal if you are a marketing major, but if you major on ANYTHING that has the potential of putting a human life at risk then you are playing a very dangerous game whenever you cheat at school.

If you are a mechanical engineering major one day you may get stuck dsigning high pressure vessels. One of these things blows up and people get killed. Then you are liable. Imagine screwing up the design for the brakes of a school bus.

You are a programmer: You are working for a DoD contractor building a fire control system. It goes nuts and the missile hits a friendly target. People died because you cheated instead of learning the material properly.

You are a mechanical engineer and cheated while taking your mechanics statics/dynamics. One of your buildings collapses. You will be a prime candidate for a monstrous lawsuit. WHenI was in engineering school we were told that when you design things like that you have to keep in mind that if anything happens to in in the next 10 yrs you will be blamed for it.


Pedro

Concept of learning doesn't change by subject (1)

Gruneun (261463) | more than 13 years ago | (#373369)

This reminds me of when I was in grade school and we thought we were slick because we hid small calculators in our desks for our math problems. Of course, if we ever got caught (like when the idiot in front of me who wrote an "e" in his answer) we were given failing grades.

The teachers I had in high school and college didn't care if we used calculators because it was expected that we had already learned basic math and they were more concerned that we learn algebra or calculus.

My computer science instructors (University of Maryland) were very similar in the way that they taught. If we were concentrating on building a string class from scratch to learn how linked lists worked then it made sense that we shouldn't be allowed to copy someone else's list classes. If we were creating PM-1 Quad Tree classes or some other complex project the the instructor generally didn't care if we used someone's string classes (with proper citation, of course) so long as we programmed the core of the requirements.

Some would argue that people reuse code in the real world. This is very true and I do it every day. You can still be held liable for not citing someone else's work. More importantly, in college someone is giving you a diploma that says, "We certify that this person has succeeded in meeting our requirements" not "We certify that this peron has succeeded in finding and copying the results of someone else who would meet our requirements."

How much of the main problem's solution is copied? (1)

Hormonal (304038) | more than 13 years ago | (#373370)

It seems to me that this should depend somewhat on how much of the core problem is solved by copied code and/or ideas.

For example, if I have a charting library available to me, and I'm assigned a project in a database course to run some queries, and present the information from those queries in a reasonable manner, I'd be inclined to dump the query results into the charting library, and be done with it.

If the same assignment was given in a graphics class, you can bet I'd be writing my own charting routines.

Obviously, as many before me have stated, you need to check with the instructor first before using any code (even if YOU don't think it's questionable.) Only the instructor knows what they intended you to get out of the project, so only the instructor can determine if reuse of certain pieces of code undermine those intentions.

I live and work in the real world, and I try to write reusable code, and reuse code as much as possible, BUT I think it's still important to at least have a vague idea of how the code you're using works. You can't expect to go through life, and black-box everything.

Re:The Sad Truth About Higher Education and Cheati (1)

Hormonal (304038) | more than 13 years ago | (#373371)

If you haven't read Zen and the Art of Motorcycle Maintenance [vt.edu] , you should. The point of removing grades from a course (or at least witholding them until the end of the course) is brought up, and defended pretty well, if I remember correctly.

Re:Reuse should be encouraged. (1)

Bobo the Space Chimp (304349) | more than 13 years ago | (#373372)

It would be dishonest to reuse code in a class project if the code copied was part of the course's studies.

In other words, if you're in a 3D course, you'd better write all the 3D code yourself or use code officially supplied by the course/book.

Re:(Another) ex-T.A. speaks out... (1)

vulg4r_m0nk (304652) | more than 13 years ago | (#373373)

I think one relevant difference between, say, a PoliSci paper and a CS project is that in the former case the point is generally to report on some phenomenon and then to come to some reasonable conclusion.

In contrast, your average CS project isn't about describing the world in any way, or summarizing others' views, but finding a way to make something work.

Therefore, while citing others' work is typically part of the task in a PoliSci paper, it often violates the entire point of a programming task in a CS class, in which you are supposed to get the damn thing working properly.

In my experience, CS classes generally give a mixture of assignments to be accomplished individually and with others. IMO this is good, because programmers definitely need to develop good teamworking skills, and learn how to participate in an organic and communal process. At the same time, beating your head til it bleeds all by your lonesome is critical for developing self-sufficiency.

A problem like the one described is likely due to a lack of clarity about the rules for that particular assignment. If the professor explicitly gives permission to collaborate, then the parent reply's advice makes sense. Otherwise, it's not a safe assumption.

Usually, it is cheating (1)

Mister Kurtz (310762) | more than 13 years ago | (#373374)

I am a graduating senior at a large CS program at a major University. I have been a TA for numerous programming classes, and also serve in the Student Judiciary at my school, part of which covers academic dishonesty. So I think I can make a pretty informed statement on this topic, having seen many of these cases.

The bottom line is that while referencing other people's work is smart and happens in the real word, it's not as cut and dry as that. Students who don't check with a professor first before using published/available code are asking for trouble. It's been my experience that enlightened professors have no problem with using others code as long as it's documented and the professors are consulted ahead of time. But if you just assume that's fine, then you're opening yourself up to get prosecuted.

Unfortunately, the issue is not as simplistic as "research", as some might call it. In most cases, and especially at the lower levels, code is not used as a reference but as just something to copy. Think of it this way: even if you reference someone else's paper in academia, it's still not a good thing to just restate all their arguments and all their evidence. It's only research if you're building on that person's argument, not if you are restating it.

The same pretty much goes for code. Yes, some people use it legitimately. But those that really just copy it without understanding it usually outweigh the first group.

I, myself, favor no collaboration at the lower level, and then allowing it at the upper level. At the lower level, the projects are simple enough that someone has probably done something extremely similar or even the same as your project - in which case you're not learning from it. But at the upper level, when projects get far more complex, I find that students can learn from using others code, and have enough experience to do so in an effective and pedagogical manner.

A student's view (1)

therevan (312663) | more than 13 years ago | (#373375)

I agree with the majority of the posts regarding proper documenting of sources (even in the 'ideas' realm). Referencing outside sources becomes dishonest at exactly this point, where if you'd rather not put down the source of an outside influence, you're probably looking to get by without work. As a student at the University at Buffalo (a growing CS school), I adhere to, but disagree with, our integrity policy. UB explicitly forbids the review of other's code (graded or not), and puts a cap on outside help at "oral discussion." However, it does allow for review of code for "bugs" and "silly little mistakes"; not exactly a razor edge of definition. I'm going to wager that your professor is under duress to adhere strictly to the 4000 characters his department likely put down for such an issue. Referencing your own past work should be allowed, and documented referencing is the way of the world. Slashdot wouldn't exist without the modern ease of outside sources.

Depends on the place (1)

psycho_tinman (313601) | more than 13 years ago | (#373376)

and how prepared they are to enforce regulations...

in my former university, they evaluate the design of a programming project a lot closer than they do the source code.. and I tend to agree with the general view there that its a lot harder to fake a proper design (and sit through a viva) than it is to steal code...

I think this method encourages ppl to look for solutions to problems outside pure coding.. which can only be a good thing.. just my 2c

Don't re-invent the wheel! (1)

skarzin (314685) | more than 13 years ago | (#373377)

If there is already a viable solution available for the problem at hand, then it is should be adviseable to use it, (thus not re-inventing the wheel), and not be charged or hindered for it (provided it contains excellent documentation).

I dodged a bullit on this one (1)

infinite9 (319274) | more than 13 years ago | (#373379)

I had an operating systems class when I was working on my cs degree. The class had one project that was broken into five pieces with a sixth extra credit piece. I was one of the few students who wrote my own code, but I know that some students had gone dumpster diving (ok, the lab trash can) for hard copies of my code. The program was graded by a shell script that simply did a grep on the output, so he didn't really look that closely. I got very good grades on the assignments all the way though. But I chose not to do the extra credit because of time constraints from my other classes. When I went to the final (40% of the grade), the professor got up in front of class before hand and held up a hard copy with a lot of red ink and said, "there were a number of you who submitted very similar code for this assignment. (and named them) After you bring me your final, please stay so that we can discuss it." :-D I'm sure those people were sweating for the duration of the final. And I still believe that had I done the extra credit, I would have been drawn into the problem because of other people's code copying.

As a side story, I saw a girl get nailed in my assembly language class for copying code. She didn't even bother to change the written by comment line at the top.

Re:Non-collaboration policy (1)

janpod66 (323734) | more than 13 years ago | (#373380)

This non-collaboration policy actually works, as Brown has one of the top cs programs in the nation.

Just because Brown is currently one of the top-rated CS programs in the nation doesn't mean that its non-collaboration policy works. Many top-rated CS programs have an excellent reputation based on their theory, graphics, or AI groups. Whether the students that come out of such programs can afterwards succeed as programmers or independent researchers is an entirely separate question.

I find the thought of any academic department or software development program having a "strict anti-collaboration policy" distressing, and it's certainly no recommendation for a CS department in my book. Teach your students legal and ethical collaboration and attribution, don't turn them into loners and people who want to reinvent the wheel all the time.

Research (1)

kmrym (324422) | more than 13 years ago | (#373381)

A month in the lab can save you hours of plagerism.
Not that I'm promoting plagerism ;^)

Honest vs. Permitted (2)

Squeamish Ossifrage (3451) | more than 13 years ago | (#373382)

For it to be dishonest you must be misleading someone. If you make explicitly false claims, that's obviously dishonest. Further, there are some implied claims (such as that work with your name on it is your own) which you have a responsibility to explicitly contradict if they're false.

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.

Change the Assignments (2)

JJ (29711) | more than 13 years ago | (#373384)

As a former junior faculty member, I always strove to keep assignments different enough between years and between students that collaboration couldn't be cheating (at least in my mind.) Finding out how someone else solved a previous problem is learning. Passing this off as original doesn't merit a higher grade.
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. (2)

hey! (33014) | more than 13 years ago | (#373385)


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

AdamHaun (43173) | more than 13 years ago | (#373386)

While I am by no means an engineering student, I do have a passing knowledge of projects and the like(CS majors rule! :). However, it would seem to me that if a major part of the project is to figure out how to do X, and you look at code that tells you how to do X, then you are indeed guilty of cheating. Without more information about what the goals of the project were, it's hard to say.

Great artists steal... (2)

paRcat (50146) | more than 13 years ago | (#373387)

Let's think about this:

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:*How* dissimilar were the assignments? (2)

technos (73414) | more than 13 years ago | (#373390)

if a major part of the project is to figure out how to do X, and you look at code that tells you how to do X, then you are indeed guilty of cheating

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 (2)

kevin805 (84623) | more than 13 years ago | (#373391)

Oh, yeah. I mean, why should I go about writing a compiler for my compilers class when there's a perfectly good one out there?

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:

It's OK to ask someone about the concepts, algorithms, or approaches needed to do the project assignments, I encourage you to do so; both giving and taking advice will help you to learn. However, what you turn in must be your own, or for projects, your group's own work; copying other people's code, solution sets, or from any other sources is strictly prohibited. The project assignments must be the work of the students turning them in. We will punish transgressors severely.


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 (2)

kevin805 (84623) | more than 13 years ago | (#373392)

I would make the important distinction between, for example, a solution to an earlier assignment that had been posted by the professor to the web, and a solution to last semester's project that you got from your friend's roommate.

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

Some random thoughts (2)

catseye_95051 (102231) | more than 13 years ago | (#373396)

Many many years ago, i had a friend in the same CS program as myself. We tooka few classes together and, as I had a computer and he didn't (this was 20 years ago) we did our assignments on my machine.

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 (2)

Stephen Samuel (106962) | more than 13 years ago | (#373397)

In grade 5, using a calculator to figure out 35/17 would have been cheating. These days, I use bc(1) to do things like that... I even have a script for doing BC one-liners from the shell (too lazy to do all that GUI calculator stuff).

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.

Welcome to computing 101. This week I'm going to be teaching you about loops. To force you all to write your own code, I'm going to assign each one of you a different device for which the manufacturer has not released specs. Your first assignment is to reverse engineer your device and write a device driver using a polling loop.

Any questions?


--

Re:The Sad Truth About Higher Education and Cheati (2)

Smitty825 (114634) | more than 13 years ago | (#373398)

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

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! (2)

rnd() (118781) | more than 13 years ago | (#373399)

The old adage is as follows:

If you steal from one source
it's plagairism. If you steal
from many sources, it's research.

Re:Reuse should be encouraged. (2)

Freeptop (123103) | more than 13 years ago | (#373400)

Allow me to re-phrase my statement. Projects teach students to develop their problem-solving skills. I had not intended my statement to mean that the projects teach them how to solve specific problems, but rather how to work on problems in general. Instruction teaches the theory behind the implementation, while the project gives the student a chance to figure out how to implement that theory. Both aspects are important in teaching people how to be engineers.

The Answer Is Obvious (2)

susano_otter (123650) | more than 13 years ago | (#373401)

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 (2)

nomadic (141991) | more than 13 years ago | (#373402)

Am I missing something here? I know copying outright is wrong but if I wrote code for programming 101 I should be free to use the code I wrote in 102 and beyond. The purpose of education is to build on what you learn so that when you get to CSC400 courses you can look back and really understand what you did in CSC101

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 (2)

Modab (153378) | more than 13 years ago | (#373403)

Object-oriented design and reusability is becoming the norm in the programming industry, but it simply does not make sense to fully implement this in schools. Students need to learn the fundamentals of good programming, and they aren't going to do that if the code they reuse already works and they just write wrappers. Writing code from scratch may be tough, it may look like it is not preparing you for your job, where you will be expected to share a project with maybe a hundred other people, but believe me, when people know you can be counted on to provide good code without help, your skills will be invaluable.

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 (2)

Golias (176380) | more than 13 years ago | (#373404)

Normally, if students steal previous works and submit them for grades, the line is easy to draw: Did they do any actual work, or did they just paste in somebody else's code?

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 (2)

Emperor Shaddam IV (199709) | more than 13 years ago | (#373405)

One way I used to stimy dumpster-divers is I would a lines or a few lines in the code that really didn't do anything. Most of my professors would ask me about it, and I would explain that is was just a 'fingerprint' or 'signature' I put in the program. They didn't have any problem with it and most of the dumpster-divers weren't intelligent enough to notice the dead code. So, if I got pulled in with some other people for turning in similar code, I could always reference the 'fingerprint' without even seeing the code. This was usually enough proof to the Professor ( along with the fact they might have asked about it on a previous assignment ) that I wrote the program. Another tactic is to obfusticate a part of the code to the point, only you can explain it and the only other people that can figure it out are the other good students ( that don't cheat ) and the professor.

I say look at the instructors. (2)

ShaunC (203807) | more than 13 years ago | (#373406)

The students who outright copied others' code into their projects deserved to get caught, and they deserve whatever consequences they get. When you copy someone else's (work|answers) instead of coming up with it yourself, that's cheating, plain and simple.

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. (2)

micromoog (206608) | more than 13 years ago | (#373407)

Re-inventing the wheel is not only stupid, it is in efficient.

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! (2)

2nd Post! (213333) | more than 13 years ago | (#373408)

Where the motto is: "Unfortunately, half of you are below average, for the first time in your life!"

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]

Why Not? (2)

Jesus IS the Devil (317662) | more than 13 years ago | (#373410)

Why not just allow it? I mean, half the people here seem to think all intellectual properties should be banned and that "information wants to be free". So why not? Where do you draw the line? It's just a whole bunch of letters and code strung together right? Hey it gets the job done right?

Socialist pigs roam everywhere!


---------
Did you just fart? Or do you always smell like that?

Catching Cheaters is Easy (3)

Chris Colohan (29716) | more than 13 years ago | (#373412)

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:

  1. If someone cheats, it is either because they do not understand the assignment (and hence want to borrow someone elses work), or because they do not have time to do the assignment (and hence understand it). If you are clueless or short on time then you do not have the time or ability to cheat well. If you do a poor job at cheating, it is easy to catch you.
  2. Code is machine readable. This sounds obvious, right? But if it is machine readable, it means that machines can do the tedious work of comparing solutions to each other. And the solutions do not have to be compared as handed in -- you can run the code through a compiler, and have the compiler give you statistics about the code. Compare those statistics, and compute a distance vector between each handin. Any handins that are close to eachother (on whatever statistic you happen to be measuring) compare by hand. Or you can compare the topology of the parse trees. Etc. Etc. Tools exist to do all of these things (and much more), and if a professor or TA suspects cheating then they will use them. I have known instructors who keep collections of previous years assignment handins specifically as fodder for these tools.

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.

non-collaboration policies are really dumb (3)

StandardDeviant (122674) | more than 13 years ago | (#373414)

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 (3)

bluesninja (192161) | more than 13 years ago | (#373415)

...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! (3)

2nd Post! (213333) | more than 13 years ago | (#373416)

If the projects were very dissimilar, yet they were still able to graft code from project A to project B, then there may be a pretty good understanding of the code itself in order to affect a transformation without changing correctness!

Geek dating! [bunnyhop.com]

This applies to more than just school... (3)

Gruneun (261463) | more than 13 years ago | (#373418)

Yes, software gets re-used in the real world. But, when we look to hire a programmer we aren't looking for someone who can use a library. We want people who can code. We've had entirely too many hours wasted interviewing people straight out of school who can't program worth crap.

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. (4)

locust (6639) | more than 13 years ago | (#373419)

In academia, specifically, when it is a class project, the purpose is to teach the students how to do things, rather than just grab someone else's code. The focus is not on saving time and money, but on learning how to do things themselves.

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. (4)

sacherjj (7595) | more than 13 years ago | (#373420)

The reuse of previous solutions should be ENCOURAGED. However, it must be fully documented as to the source. This is how the real world works. If someone has engineered a solution, it is almost always cheaper to utilize that solution and pay the licensing fees or purchase rights to the code.

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 (4)

josecuervo (113956) | more than 13 years ago | (#373421)

CS at Brown University follows a strict non-collaboration policy. It is much more rigid than any other department at the school. If caught, all incidents are forwarded directly to a dean for disciplinary action. In the engineering department, the rules are much less harsh, and collaboration often takes place.

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. (4)

Freeptop (123103) | more than 13 years ago | (#373422)

In the real world, re-use is excellent, because it is efficient, saves time, and saves costs. In academia, specifically, when it is a class project, the purpose is to teach the students how to do things, rather than just grab someone else's code. The focus is not on saving time and money, but on learning how to do things themselves. After all, if the student only learns to grab somebody else's code, and not write their own version, they can face a couple of problems:
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 (5)

vlax (1809) | more than 13 years ago | (#373423)

I learned two rules for avoiding charges of cheating in my CS department, both of which strike me as pretty sound:

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 (5)

JanneM (7445) | more than 13 years ago | (#373424)

I appreciate the fact that one is supposed to work out their own solution to problem posed in class or on assignments. However, there is a form of academic cheating that is rampant throughout the university world.

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... (5)

chipuni (156625) | more than 13 years ago | (#373425)

I always went by the phrase:
  • If you copy it, and you don't give attribution, it's stealing.
  • If you copy it, and you give attribution, it's research.

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 (5)

Ars-Fartsica (166957) | more than 13 years ago | (#373426)

As someone who spent two years as a teaching assistant in a well known university, that students are in university to get high marks, not to get an education.

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.

Load More Comments
Slashdot Login

Need an Account?

Forgot your password?

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>