Open Source vs. Academic Dishonesty?
Raul654 asks: "My university has a very vague Academic dishonesty policy. I have a small webpage with some code I have written (mostly C/C++ and Verilog), GPL of course. Someone warned me, rightfully so, that I might be in violation of the policy. Long story short, I have an appointment with Judicial Affairs in a few days (my doing), and I want to go in there with some persuasive arguments for why I shouldn't have to pull the page." The problem here is that the code on his webpage is code from previous programming projects. It basically boils down to the tradeoff of a student who feels pround about his work and a professor who doesn't want to interfere with the lesson plan he probably worked hard to produce. How do you feel about this?
Frankly, why doesn't your lecturers make the assignment work a little harder to cheat. Surely there are projects that can be significantly different each year that you couldn't just go to a textbook, for example, and get the same answers as are on your web page.
In any case, ask them to put their opinion in writing so you can give it to a lawyer. If they don't want to then ask them to please stop wasting your time.
How we know is more important than what we know.
Move your page off campus that way they can't really bitch. And if they do bitch, just say it's not yours.
Besides, Shouldn't the professor attempt to improve his/her lesson plan,instead of using the same old stale plan each year? Is it too much to ask of the professor?
And my professors are basically split 50/50. The ones who give projects (in one particular case, to design a MIPS processor using Verilog) objected to the page, arguing that he can't change the project all that much year to year. :)]
[I better be careful about what I say -- I know he reads slashdot quite often
Meanwhile, another professor of mine (Field Theory) said that he fully supports what I am doing, and that the professor cannot seriously expect students not to converse about the assignments, and that this is only the next logical step.
To make laws that man cannot, and will not obey, serves to bring all law into contempt.
--E.C. Stanton
Maybe if you followed the link, you would be enlightened
To make laws that man cannot, and will not obey, serves to bring all law into contempt.
--E.C. Stanton
He makes lesson plans for the benefit of his students. It's bullshit when profs are lazy and don't want to change their plans from year to year.
so what -- he "worked hard" to make the lesson plan X years ago. Especially as a CS prof, he should be changing with the times anyway.
Well, by law, you own what you write. Therefore, you can publish it how you see fit.
However, I think that the anti-collaboration atmosphere of many academic institutions is a fundamentally flawed idea. Of course, in a single person project, publishing source code would be tantamout to academic misconduct. And that is exactly the problem. In the "real world" everyone, including programmers, has to work together. And that means sharing ideas. I think many student projects don't reflect that necessity, and as a result, students are ill prepared for collaborative work.
Can you imagine the state of human progress/accomplishment were we not allowed to collaborate? It would still be the dark ages. Your professor should be encouraging the best solutions possible given the resources available to a student.
However, my screed here doesn't address your question. I think good code structure, syntax, and form could be incredibly useful to a student. Perhaps the best solution is to publish the source code in the interest of academia, but introduce errors into the code. That way if the student tries to copy verbatim, it won't work. And by working through the errors, they are learning, albeit in an indirect manner. If they are using it to see an implementation of a particular algorithm, they can see what they need. And if the code is too simple for random errors, then why does it need published if it's that simple? There are a million hello world apps out there.
As an addendum, the professor could write a program that creates a checksum from the basic skeleton of project code. Then, he* can run each assignment through the program and if it matches a previous assignment's checksum, he can verify it's origin.
*note: I'm only using he because I haven't met a female comp/sci prof. I'm sure there are plenty, but I don't know any.
*everything* is Orwellian to cats.
You're putting up completed homework assignments, and from your school's policy on the same, we have (emphasis mine):
Your university'll probably tell you to take the code off and warn you how you violated their academic misconduct rules. It's just the way these things work.
Now, be that as it may, it seems to me that your best chance is to argue that those rules only apply while you're actually in the class. Now that you're done with them, your works have just as much right to be out there on the Internet as anybody else's BST and heap and whatnot. I mean, how many GPLed shells are out there alone?
I wish you the best of luck, and I think it was definitely the smart thing to do to bring this issue to the university's attention before it comes back to haunt you, but I really don't think you're going to have much luck changing anybody's mind.
I see why they're doing what they're doing. It may sound trivial to you to revamp a lesson plan, but
1) The point of having an experienced professor is that they can *reuse* what they've learned for previous years. I had an excellent professor, Prof. Rudich, at Carnegie Mellon University. He put it pretty well -- "I've found what I consider the most important, the most enlightening problems I could turn up over the years. I could change them from year to year, but then I wouldn't be giving everyone the *best* questions I've found." And his assignments, while decidedly tough, really were incredibly good.
2) It may sound really minor to you to swap in new programming assignments. However, it really isn't. Designing and debugging a lab is a lot of work. I've found that frequently labs aren't really solid and clear until their third year or so in use.
3) It's really frusterating to professors who teach classes that might have this one as a prereq to have half the class have covered a particular issue (because one lab brought it up) and the other half not.
I think a better solution, though perhaps a bit harder to enforce, is to allow students that have already written code to do whatever they want to with it. However, a copy of their code *must* stay on file.
Then, professors can use moss or something similar to look for duplicate code.
I feel that this approach, which would let students do what they want with their own code, would also provide a more realistic simulation of a production environment. When you're writing commercial code, there's always plenty of GPLed code out there to take. But if your license conflicts with the GPL (or your contract states that you need to write everything yourself for some reason, which happens here), and you run out and break it and then get caught, you get hung out to dry.
Attempting to stop the problem by preventing sharing of answers is difficult to prevent (if it's done privately), difficult to enforce (what if the person has graduated or is at another university that had a very similar assignment?).
Finally, I want to mention that I support at least some effort to avoid cheating. Simply "trusting students" sounds wonderful, but utterly fails in practice...the level of cheating in CS courses astounds me sometimes. Yes, certain types of assignments are more cheat-proof, but are also less useful in teaching.
May we never see th
I'm not going to tell you to read the fucking article. I understand full well that reading the fucking article is sometimes an unreasonable burden. But please, as a personal favor to me, read the fucking description.
Quote: "The problem here is that the code on his webpage is code from previous programming projects. It basically boils down to the tradeoff of a student who feels pround about his work and a professor who doesn't want to interfere with the lesson plan he probably worked hard to produce."
I write in my journal
I'm not going to talk about the law. I'm not going to talk about intellectual property or copyrights. I'm not going to say "fuck the prof." I'm just going to tell you how I think things should go down.
I think the professor(s) who have an opinion on this matter should ask you to remove the code that relates to their lessons. They have a really good case for asking; you've basically put the answers to the tests on a web page, and while you are certainly entitled to do that, they're also entitled to wish you wouldn't.
I think that then, having been asked, you should graciously comply with their request. The professors have a good point, and I think out of simple courtesy to them for all they've given you, you should respect their wishes.
In other words, y'all should all just play nice, and everything will work itself out.
I write in my journal
I have only recieved one request for me to take code down -- it came from a friend who happened to be TA'ing the class which we both took last year for which I had some code up. I complied with his request at once.
The problem comes in because most of the assignments for which I have code posted are reused every semester (or every other semester, depending on how often the class is offered). What is the point in having code up if I have to take it down for 6 months out of the year?
To make laws that man cannot, and will not obey, serves to bring all law into contempt.
--E.C. Stanton
This is actually something I'm very interested in doing if I can find the right situation, partners, funding and such. The concept is to set up a non-profit that can help establish open-ended project lab courses using the faculty and facilities of the institution. Industry connections would be good as well, but ideally it would be to commercially apply the Open Source project work. I'm thinking as much about Open Hardware, but any real project is always multi-disciplinary anyway. Hardware, docs, software, supporting web-sites, etc.
The biggest problem with school programming projects is, as you said, they are too trivial. I worked full time for two years before going back to finish my B.S., so when I went back, I had a much better apreciation for the problems of "programming in the large". Several hundred or even a thousand lines of code just don't give you enough complexity to see what the real problems are. Also, in the real world, you rarely are starting something from scratch, which is also a good feature of working on Open Source projects (large existing code base to modify/extend).
...all your code on the page is, as you pointed out, GPL. That means I (or anyone else) can download it and use it under the terms of GPL, if we so choose.
And once we download it and use it in our projects (which might be nothing more than an example of good code written by students), as long as we do so under the terms of the GPL, if we so choose.
And, while I have not read the GPL recently, it seems to me, I, or anyone else here, could download the code, use it as an example of good code written by a student on a website we have created to share with students and teachers. Which means while the University may not let YOU publish it (I don't see how they can do that -- there's this picky thing called the 1st Amendment and they can't take that away -- see pervious comments in other threads about coercion), any of us could publish it on a web page, under the terms of the GPL, if we so choose.
At least that's my thoughts. I would have the right to publish your code on a web page, because I have no connection to the University. I have the right to publish my own code on a web page. Why should you have less rights to publish that material than I do?
At least that's my take on it.
Your prof might just have to look more closely at student projects to make sure it isn't copied.
After posting my previous response, I remembered that I had a similar problem in college. A friend and I were publishing magazines on our own. These were not sanctioned by the University and the only connection these mags had with the Univeristy was that the publishers were students (and most/all of the contributers were students). We had trouble getting a place to distribute them -- we both had to share a box with another low circulation magazine the University put out -- on some days my magazine would be in the box, on some days my friends, and on other days the University rag.
We talked with the ACLU and the Student Press Law Center and were informed, quite clearly, we had to have the same access to the campus as the student newspaper, otherwise it was a direct violation of our 1st amendment rights. We were shocked that we had so much power and went in to meet with the Student Activities people. They basically told us they were doing us favors by letting us distribute at all, since our magazines were not University sponsored. We let them go around that bush a few times and try to jerk us around before we said "We talked with the Student Press Law Center, and their letter should be arriving in the mail today or tomorrow, as well as the ACLU." As soon as we mentioned the SPLC, the assistant director (a real weenie, if you'll pardon a technical term) was so startled, he almost dropped his cigeratte. He said he'd do what he could. My friend said, flatly, "You can try, but we want. And legally, we get." We didn't get fancy boxes on the walls to hold our mags, but from then on, when we published each month, we put our magazines in piles right next to the student newspaper distribution points. It was never a problem again.
While we were in the meeting, they tried a lot of tactics on us, like "What if all 9,000 students try to publish their own magazines? We can't handle that." We countered with "Are 9,000 students going to spend the time selling ads and editing a mag, or paying to print it on their own? We don't think so." They said they had to look at the worst case possible. Once we told them about the SPLC and what we were told, that point came up again. We pointed out that if all 9,000 students published their own mags, they would either have to allow ALL to distribute or none.
I mention all this because 1) I would think you have the 1st Amendment on your side, 2) The SPLC or ACLU might be interested enough to just write the 1 letter you need to support your case, 3) to make the point that being a student does not give them the right to take away your freedom of speech, and 4) even as a student, what you publish is completely covered by the 1st Amendment.
Hope this helps!
University regulations clearly prohibit the unauthorized possession, use, manufacture, distribution, or sale of alcoholic beverages on University property or in University facilities. In addition, students are prohibited from using drugs, possessing drugs or drug paraphernalia, and from selling or otherwise distributing drugs.
Let me have some doubt about the application of this point ;)
#include "coucou.h"
Our contract clearly states that users sign over all rights to work created on their computers to the institution.
You might want to look for the same wording.
(And, the above is one of the reasons for my using a laptop to do my work. And also the reason why it all gets a Public Domain or GPL bumper-comment, even when it's just a couple of lines).
If you could be told what you can see or read, then it follows that you could be told what to say or think - BoC
It's been my experience that assignments where the answers are clearly visible are harder to cheat on, since you can assume everyone has access to the same code, your answer (as a cheater) will look more and more like theirs. I've seen 85% of my fellow students get a fail on a certain because of this (the teacher screwed up and put the answer to the assignment on his website).
;-) ]
Assignments where the answers aren't provided are easier to cheat on, since perhaps half the students will do the assignment, and the other half will ask a random sample of the non-cheaters for answers (in reality it's much more like 80% do it and 20% don't, which makes checking for cheating that much harder). This leads to a far more varied set of answers, and so it is much more unlikely that a slightly modified assignment will stick out (unless the teacher has a photographic memory).
If I were a teacher, I think I'd have to think long and hard about keeping the answers from the students for assignments. At least if I were to give them the answers, it would be far easier to check for cheating.
[ No, I was one of the lucky 15% who didn't cheat.
If you could be told what you can see or read, then it follows that you could be told what to say or think - BoC
....just a thought.
Also, I have been considering the following: what if an entity want's to distribute their code in a compilable, but not human readable (with implies it cannot be modified), form?
For instance, the code is encrypted with a key that is used at compile time (weak) to decrypt the code for the compiler. The compiler has a built in key (weaker). The compiler uses a OTP to encrypt the code (slightly less weak). The compiler recognizes different tokens (wierd).
I don't know why one would want to do this, but consider the mental exercise anyway.
I am very small, utmostly microscopic.
They can copyright the exams, and also any official solutions (whether by students assistants or otherwise), but they do not control _your_ work. The "allowing others to copy" clause in your honor code should be read in context. It's not illegal to sell a gun. But it's illegal to sell a gun you know will be used for murdering someone. In this case, that would be when your classmate asks for a copy of the solution 5 mins before the deadline.
Should they however be anal here, you can be too. If you want to want to make a really anal legal work-around, release your code under a special licence to all non-students of your University (no honor code violation there as far as I can tell), and as part of those licence terms, those licencees can only redistribute or create derivates under the GPL (you can do that). Your co-students can then get those GPL-redistrbutions, but then they didn't get it from you, but from a third party. Since that third party won't be under a honor code agreement, the University can't do anything. Of course that doesn't stop them from changing the honor code to prevent this, but hey...
Also note that this work must be 100% yours, you can't do this with a GPL code you've modified or you'll be violating the GPL. But from the honor code I suppose it must be 100% yours anyway...
Kjella
Live today, because you never know what tomorrow brings
Not legally, of course, but youre definitely in violation of the school policy. The most obvious violation is where you specify the exact class and project number for each piece of code: Project #1 for computer engineering 323.
include $sig;
1;
This is the important issue here. There is a fine line between plagarism and reference, and it's the responsibility of the instructor and student to respect that line. If that responsibility falls on anyone else, then things get ridiculous.
You can use this example on them, for which the answer is obvious. I go to the library, grab someone's thesis on some random topic, and turn it in as a research paper of my own. Common sense dictates that I'm in error, and I'm in trouble. But using the logic you've been given, the library is at fault for putting that thesis in a place I could access. If it weren't available, I couldn't have copied it.
I'm positive it is against the rules of the GPL to re-release source code as if it were your own. I'm fairly certain that means anyone submitting GPL'd code for a grade is in violation of the terms of use, and therefore you are not giving help during a quiz, examination, or a class exercise. You had the right to define the copyright on the code, and while the University may or may not have the right to remove that code from their webservers (see thread on ACLU and newspapers), they do not have the right to remove that code from existence.
That having been said, your professor does want to keep a solid, useful learning plan viable, and part of that is forcing students to think through the problems themselves. What are your goals WRT putting up this code? I know I have the urge to share everything too, but do the benifits of your goals outweigh the (slightly) decreased effectiveness of the class? Is there somewhere else that you could post the code that will minimize the danger to the courses, somewhere unlikely to be found by UD students?
You are going into a negotiation with the university here. You *are* in the right, and I'm sure there are at least a half-dozen undergraduate or graduate Technology Law students who would love to rally to your cause. However, the professor has a very real concern, as cheating (and therefore not learning) is far more common and difficult to discover than anyone would care to admit. Even if in the murky are of coding your work would be used as a Cliff's Note instead of a cheat sheet, that is still not teaching students how to think about the problem. Ultimately, the best arrangement may be to simply take the code down and store it away in exchange for a signed letter of appreciation from the university (as a CYA measure).
BTW, your other professor is doing his programmers a disservice by getting them used to unreasonably signing away the rights to their code. This type of activity is a plague on the entire IT industry, and has resulted in serious and unfortunate litigation from which the programmer always loses... even if it is just 20,000 in court costs.
This Sig is a mnemonic device designed to allow you to recognize this author in the future.
From the udel academic honesty policy:
Academic honesty and integrity lie at the heart of any educational enterprise. Students are expected to do their own work and neither to give nor to receive assistance during quizzes, examinations, or other class exercises.
---
My university's academic honesty policy (Here, page through to p. 54 (PDF page 47)) is much longer, but boils down to the same thing - Dont cheat, Dont help anyone else cheat, if you do we're gonna beat you to death with a textbook.
Legally (copyright law - See This site) I am not sure if code for school counts as a "work for hire" in which case the copyright is held by the school, or as an original work by an author (an "answer for a test" is considered a work for hire). I do not know how the interpretation would hold up in a legal challenge, but if you want to cover yourself you could place a notice in all of your programs claiming copyright (again, the "works for hire" clause may invalidate this. Check with a real lawyer.).
As far as academic honesty policies go, I am SURE that I am in violation of the Hofstra policy (which states that students "must not only avoid cheating, but the apppearance of cheating" - something I've been WAITING for the chance to challenge since I find it obscenely offensive to allow a professor to presume a student is cheating if their paper is too close to the edge of their desk). Certainly by making answers to lab exercises available I violate this policy.
Udel's policy seems more realistic - you are not to give or receive assistance on [any assignment]. I don't believe that you violate the spirit of this statement by making your work available, since your intent is (hopefully) not to have people grab your work, change variable names and submit it as their own.
As for violating the LETTER of the policy - intentionally or not, there is the potential for this to be viewed as "giving assistance" on an assignment. Personally, I think it is no more harmful than talking about the assignment with another student, but in the strictest sense of nearly every academic honesty policy even TALKING about the assignments can be considered giving/receiving assistance.
BASICALLY, this really long post boils down to "See what your school says, then come back and tell us (or at least me)". Whatever you do, try to get it in writing that your site does not violate the academic (dis)honesty policy of your university, that way if someone decides they dont like it in the future and you need to defend yourself against allegations of cheating/collaboration you have something tangible and not "But Mr. Foo in legal said X last year...", only to find (as too often happens) that Mr. Foo has either left or changed his position on the issue.
Best of luck
/~mikeg
From a legal perspective, your answers are your own and you're probably entitled to do what you want with them. The one exception may be if you've signed some sort of contract with the school in which you surrendered certain specific rights, and that doesn't seem likely.
From an ethical perspective, you would seem to be in a somewhat more difficult position. Your answer may be terrific -- simple, elegant, efficient, something to be truly proud of. The same could be said for some students' essays for questions like "Summarize the economic conditions that restricted Great Britain's actions during the American Revolutionary War." Putting either on the Web adds to that enormously useful collection of information. Identifying them as answers to class assignments or test questions within your university community does a potential disservice to the professor and to future students.
You seem to have come down on the side of the decision that the good from posting the GPL source (to you as well as others) outweighs the problems of a professor having to build a new project or some students failing to learn because it was easier for them to cheat. Personally, I think I would have made the choice the other way.
I checked out your site, I think you should keep it for interviews if somewants to see what you can do -- all c.s programs are not created equal, but otherwise...
You have source code for projects with course numbers; you have GPL mentioned at top of the page, but aren't following the GPL as you placed no copyright notices, or mention of GPL on the source files themselves.
You're best argument would be to GPL it , the right way, then claim that any student who would use the work in an assignment would violate civil copyright laws etc-- THAT the license protects againts abuse, as the student would have to cite your source. If you don't win with it, you can at least save face.
But, as it stands right now, I'd say prepare to lose. If it was ancillary stuff, like config files,
a new emacs mode, or even component pieces like a class, a widget, or library that you used to solve a project, but is not in itself the project, then I'd feel otherwise. )
If it was your own explorations on the side, I'd feel differently, strongly in fact.
For FUN introduce typos: swap project1 and project2, and course numbers, wait until someone does steal your stuff and turn in the wrong project.
Without the course numbers and other indices that are only useful to cheaters, there would be no issue - nobody would ever have noticed, I'd bet.
Write brief descriptions of what the programs *do*, then categorize them either by function or by technique - such indexing would be more useful to legitimate researchers than UD's obscure course numbers.
Oh, and since you're at UD, go over and smack Dave Miller on the butt for distributing ntpd without any man pages.
--Anomolous Blowhard
There is a thing called google cache. Also anyone can make a copy to their own PC or set up a mirror.
By attracting too much attention, the profs are just encouraging everyone to make backups while they still can, and telling them that a good way of cheating exists.
Its happened. Right or wrong they cant change it now... its too late.. so they should just let it rest.
Uh, do you mean Dave Mills (IE, my advisor, and definetely one of my favorite profs)?
To make laws that man cannot, and will not obey, serves to bring all law into contempt.
--E.C. Stanton
I'm a physics professor, and I deal with cheating fairly often. I take it for granted that my students are going to share information about my classes whether I want them to or not. For instance, I hand out homework solutions every semester, and no way am I going to write a whole different set of solutions for a whole different set of problems every time I teach the course. I know that some students obtain copies of the solutions from other students. That's bad (because the people who get them will presumably use them to avoid having to think the problems out, and therefore won't learn as much), but there's not much I can do about it unless they turn in those solutions as their own work. This happens once in a while, and it's plagiarism.
The thing is, it's my responsibility to watch for plagiarism. It's not MS's job to lock Encarta up tight so that nobody can plagiarize their art history paper from an Encarta article.
I also can't help but feel that the guy is being a jerk by publishing this web page. He pokes his thumb in his prof's eye, so what does he expect? I don't think he's done anything illegal or dishonest, but he has done something antisocial, and it's obvious that there's going to be a response to that. If his code is so great that it needs to shared with western civilization, why doesn't he package it nicely, write good documentation, and put it on Freshmeat, where the grateful masses will incorporate it into all their open-source projects? If, on the other hand, this is all stuff that has been done before, then why be disingenuous?
Reading between the lines, he probably didn't like the class, didn't like the prof, didn't get the grade he wanted, thought the projects were stupid, and is trying to get revenge. Well, did it ever occur to him that other students might disagree with him about the educational value of the projects? Did it ever occur to him that honest students don't want to have to compete against students who plagiarize?
Find free books.
Many code metrics will generally suvive simplistic changes like variable renaming, indentation reformatting and comment rewriting. Submissions with statistics too close to a known assignment become targets of closer examination.
The fact that your code is in a public place and well known should make it easy on your school. The profs can point to your code, explain code metrics and how they will survive most reus. People who reuse your code dispite such warnings will get the drubbing that they deserve.
One thing that I would suggest that you do is put a disclaimer on your website about how the department knows that your code is publically available and using it in their own assignments is not only illegal (violation of your copyright), but plagiarism that might result in their expulsion.
Note that if it is your code, and you've GPLed it, you're free to place the further restriction on it -- such as that it can't be used to cheat on assignments. That being done, you could even give the university the right to prosecute plagiarism violations within the school on your behalf.
OS Software is like love: The best way to make it grow is to give it away.
Well, I have read this code. Believe me, in a couple of years, especially when you start developing real code, if you re-read it, you'll be ashamed of it.
Happened to me, happened to many people I know. But that's OK.
If you are hosting on a campus system you might as well follow their rules. My friends and I in college actually made all of our code world readable and gave out our web addresses. We'd archive all our programming courses and make it very easy for someone to get the code. The university never said anything, but if they did we could have just moved it to another server that they didn't have control over.
One professor used to check when assignments were handed in based on the last edited time. Luckily, it seemed he had never heard of the touch command.
I once took a course in java where we were ordered not to let out source files be world readable. It didn't matter. People made their class files world readable. Even the professor had world readable class files. Class files are incredibly easy to reverse engineer back into java source that bears incredibly strong resemblence to the original source. It makes it very easy to copy off your other students or even your professor.
Most states consider the syllabus to be a binding contract between the student and the school. I know of CS classes where the material taught does not provide alot of leeway in assigments - system pprogramming for example. The syllabus for that class actually states that the work the student does in the class belongs to the university and that the student is responsible for preventing the distribution of the materials related to the class.