Open Source vs. Academic Dishonesty? 75
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?
Ownership (Score:4, Insightful)
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.
Re:Ownership (Score:3, Interesting)
But by the same token, is the university not entitled to come after me for suborning plagurism. That is basically the crux of their arguement, that I am giving students the capability to cheat. So their arguement would be that yes, I can publish it yes, but it has reprocussions.
Re:Ownership (Score:4, Interesting)
Bah! So do text books.
I know that one overzealous computer science professor actually makes his students sign contracts that give legal ownership of their code to him to prevent just this.
And I believe that would not be a legal contract. They tried to do that at my university. The school was sued and they lost. It is no longer the policy.
Re:Ownership (Score:3, Informative)
No. A legal contract has to be entered into willingly by both parties. Coercion on either side invalidates it, as I'm sure you found out.
I REALLY hope Raul's prof's read
Re:Ownership (Score:2)
Re:Ownership (Score:1)
Re:Ownership (Score:1)
How does this differ from the typical "Sign this or you don't work for us"? NDA presented by a lot of places? There are other schools he could enroll at..?
Unless of course the 'agreement' is only presented after he's enrolled and paid fees.
Re:Ownership (Score:1)
An NDA is vital for a company to function. It's already pretty much taken as read that an employee will not share trade secrets, and this is just a formal agreement to that effect.
Signing over the rights to your code to a professor is not so clear cut. His role is to teach the students engineering, not to make a profit from the software they produce. Therefore he has no need for ownership of the rights. The remedy is far too extreme for the problem it prevents.
Re:Ownership (Score:1)
I agree completely. Also, in the comment you responded to, this signing over of the rights (before the code is even typed!) to the code is NOT like an NDA you sign for a company. As for when it happens, it would have to happen AFTER you've enrolled. A professor can't make someone whose not even a student sign over rights.
Now, back to the NDA, I signed one when I worked for the Dell plant in Lebanon, TN (which was about 3 years ago, and the NDA was only for while I was working +2 years). It was presented and explained to me that this was needed. After reading it, I of course asked several questions, then signed it (needed the job). Trade secrets does NOT equal source code to programming projects in a university, no matter HOW you try to slice it. To present it as such should get the person claiming such laughed out of court.
Re:Ownership (Score:2)
In the case of employment, the employer is hiring the employee. In the case of School, the STUDENT is hiring the School.
As for non-compete agreements, they are often found to be unenforcable, especially if they are not presented until after employment starts.
Re:Ownership (Score:1)
nobody
Re:Ownership (Score:3, Insightful)
And I believe that would not be a legal contract. They tried to do that at my university. The school was sued and they lost. It is no longer the policy.
---snip
What school is this? Being able to point to them as an example may help someone avoid this happening to them.
Re:Ownership (Score:2, Informative)
Re:Ownership (Score:2)
You know what, I would be offended... if this weren't true.
Re:Ownership (Score:2)
Re:Ownership (Score:2)
Re:Ownership (Score:2)
Certain rights and freedoms have been known to be limited when they are done from within an organization, school, or company. For instance, schools have the right to search students' lockers, and companies generally have the right to monitor and read e-mail sent by their employees.
The solution, in my opinion? Get a website elsewhere, not hosted on the schools webserver. Then, include a link which points to the other page saying something like, Once your code is no longer on the school's servers, they really have no case on you, as you could argue that if students really wanted, they could probably search Google and find examples of the code on other websites. By including the disclaimer below the link, you are essentially putting the onus on the student who visits your site. If they do use your code, they do so knowingly disobeying the Academic dishonesty policy.
Re:Ownership (Score:1)
Re:Ownership (Score:1)
I suppose technically so. A slight change in wording is all that's necessary. The GPL requires you (see paragraph 2.a) to indicate any changes to the source prominently. Also, the modified program itself may only be distributed under the GPL.
Thus, the GPL itself makes it hard to cheat by block-copy without being noticed. The real problem is that of someone consulting the "answer" while they write their own independent implementation, and there is little you can do to stop it.
Here's how I'd word the paragraph, personally.
--JoeRe:Ownership (Score:1)
Move your page off campus (Score:3, Informative)
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?
I talked with them (Score:2)
[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.
Re:I talked with them (Score:2)
Everyone is always talking about academia needing more industry involvement. Well, here's your chance. Universities should accept project suggestions from industry and charge a fee for the resulting work. That money can go into providing better education for the school and reducing the cost of going to college, resulting in more education for more people.
If you don't like the commercialism, get students to work on open source projects. My school took up this practice last year. They adopted 7 or 8 open source Java projects and got students to write documentation, re-engineer UML diagrams and write extensions. This work is either being contributed back to the projects involved or the project is being developed "in-house" so to speak, at the university.
There's plenty of way your professors can be creative in designing their projects each year. Hopefully they can do it so that a student's work does not go to waste! Although many professors appear to have the attitude that nothing a student does can ever be worth anything.
Re:I talked with them (Score:1)
This is definitly an Ask
And Raul, please keep us up2date as to what happened!
Doing real problems for classes (Score:3, Interesting)
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).
Re:Doing real problems for classes (Score:2)
Re:Doing real problems for classes (Score:2)
Re:Doing real problems for classes (Score:2)
On the other hand, beyond the intro courses, your teaching people who want to do this for a living so I would expect most projects small enough to include as part of a semester course to be too trivial to even be interesting. If they aren't, you should be thinking about a different major.
In my coursework at MIT, there was very little in terms of programming projects. The one exception was the programming lab course that I have referred to in other comments. Even in the lab, you wouldn't be able to do the assignments by just copying a program since you had to write up what you did, why, and such. In the other courses, you wouldn't pass the final if you didn't understand the programming projects. Well designed courses are not easy to cheat.
Actually, I was going to skip this course because it had been added as a degree requirement during my two years working, so it wasn't required for me. My advisor convinced me to take it, but in hindsight, I had learned most of this course while working, and I really wanted to take Doc Edgerton's strobe lab. Oh well.
Re:Move your page off campus (Score:3, Insightful)
Like the previous comment, you wrote it, you own it, I don't see how a reasonable policy can stop you, and if it's not reasonable, it probably isn't legal or enforcable. I wouldn't publish the problem that the code solves without permission because that isn't yours.
The prof shouldn't be using the same problems term after term anyway, but it would be the student that uses your work for his/her assignment who would be being dishonest. In any case, if half of next terms class is trying to hand in a solution off this web site, how hard is it going to be for the professor to spot that?
Re:Move your page off campus (Score:1)
Re:Move your page off campus (Score:1)
Yes this is too much to ask. Developing good lesson plans take a lot of time, energy and feedback. Often it is hard to tell what problems will be good ones until you have a class full of students take the problem home, poke and prod it and then return with results. When you teach core material, this is not unreasonable because the same set of ideas needs to be communicated and understood by the students.
Besides, unless you are taking the class for the second time (ie failed it), this is the first time you will have seen the problem.
Re:dishonesty? (Score:1)
Re:dishonesty? (Score:2)
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."
fuck the prof (Score:2, Insightful)
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.
Re:fuck the prof (Score:1)
Hmm... Perhaps the whole thing should go out... (Score:4, Insightful)
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.
Re:Hmm... Perhaps the whole thing should go out... (Score:2)
Your idea about introducing errors is pretty good. Did you hear the recent reports about Leonardo De Vinci's inventions? It seems he did exactly that. He put errors into the designs that would not be apparent until you actually built the device and it didn't work right. I guess this was on /., but I heard it on NPR as well.
Re:Hmm... Perhaps the whole thing should go out... (Score:2)
And thereby need to make one lesson plan per student.
I don't like lazy profs as much as the next
It's hard to think up brilliant lesson plans - hard enough to scare people into needing to use DMCA-style tactics so they can re-use them.
Re:Hmm... Perhaps the whole thing should go out... (Score:2)
> I think that the anti-collaboration atmosphere of many academic institutions is a fundamentally flawed idea.
I don't. I've been on too many projects beside clowns with a BS in CS who don't understand the most rudimentary concepts, and I get tired of carrying their weight.
Yeah, maybe some senior-year courses should teach and require cooperation, but most of the degree program needs to be targeted at ensuring that that student has a basic clue about a few things.
Re:Hmm... Perhaps the whole thing should go out... (Score:2)
Re:Hmm... Perhaps the whole thing should go out... (Score:1)
I agree. If I need help in understanding something, I can find it in a textbook, on the web, or ask a friend. In most cases, these will not only show me the answer, but help me to understand why this is the answer, which is after all the whole point.
The correct solution would be to give relatively few marks for the code, and the bulk of the marks for an explantion of how it works. This helps in many other ways. It's a lot easier for those marking to follow a description than to follow code, and much easier to spot total plagarism in English than in C++.
Besides, some of that code was basic stuff that could be lifted verbatim from just about anywhere. I'm sure the example of a floating point adder can be found in many verilog text books, and heaps and trees are fundamental software building blocks that should be readily available in millions of places. Forcing the student to explain it will make sure he has to understand wherever he got it from.
Not going to work... (Score:2, Insightful)
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.
Re:Not going to work... (Score:2, Insightful)
If you're going to quote something at least read it. He's not in a quiz, or an exam or a class exercise. It was an assignment.
Re:Not going to work... (Score:2)
So, Raul654, if you're still reading, that's the argument I'd go with. Maybe put a disclaimer on the page that it is not intended to be used to violate university or class rules. This is clearly a valuable, legitimate resource for a lot of other people to learn from (say, self-taught students) and you should make that clear.
And this is probably the first "My school is oppressing me!" complaint I've agreed, so it's not like I'm an "information wants to be free!" type....
Re:Not going to work... (Score:1)
I believe he has a strong argument provided that he was using it to A) as a reference to/for himself and/or B) refers to this page to others when, for example, applying for a job or other similar situations.
Although, after everything is said, you should really put this on a free web site, and just put a link to the free site on your
Last thought: Many University professors (the not so lazy ones, anyway) put old exams in the library for students to prepare with, because they *change the assignments* every year. If the professor was a little better, maybe this wouldn't be an issue, either. It can be argued that the classic programming techniques need to be taught, but there are a million and one program assignments that can be used to teach what an array, hash, function, subroutine, etc. are used for and how to incorporate them in any program. The entire purpose of *learning* programming (note: learning is not the same as memorizing) is to be able to write a program for ANY situation, not just some static textbook example. Maybe what you are doing will force the professor to change his ways in order to benefit the students in the real world, not just in theories!
Better idea (Score:4, Insightful)
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 [berkeley.edu] 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.
blame the victim (Score:2)
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?
what should happen (Score:2)
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.
In response (Score:2)
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?
This Might be an End-Run, but... (Score:3, Interesting)
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.
Another Free Speech Situation (Score:4, Insightful)
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!
Other rules (Score:2)
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 ;)
Did you use the school's computers? (Score:1)
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).
Silly (Score:2)
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.
You can still post the binaries..... (Score:1)
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 don't really think there is an issue here. (Score:2)
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
I think youre in the wrong (Score:2)
Who has responsiblity for cheating? (Score: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.
GPL != Cheating (Score:3, Informative)
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.
Interpretations (Score:1)
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) [hofstra.edu]) 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 [loc.gov]) 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
Re:Interpretations (Score:1)
Co-authorship is a potentially stronger tack. How much direction or advice does it take to be considered a joint-work?
Is it "But
is it "But, you followed the design I put on the board?"
Legal vs ethical (Score:2)
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.
nice for resume or portfolio, but.... (Score:1)
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.
Dave Miller? (Score:2)
Re:nice for resume or portfolio, but.... (Score:1)
It is a wonderful feeling, as an instructor, to see students taking pride in their efforts and wanting to display their new knowledge to the world, but simply publishing their assignment code has a couple of detrimental effects:
(a) Students do not realize how much time and effort goes into greating a "good" question bank that really supports development of the skills they will require to move to the next level. To require a professor to continually abandon previously used questions may result in future students getting a substandard set. Instructors likely DO NOT have the available time to invest in continually developing new sets. Please do not automatically equate this with laziness (although in some cases, it may be).
(b) The integrity of the course is destroyed if students are readily provided with access to the answers to assignments and/or tests. If the integrity of a course is continually compromised, how much faith do you believe employers will have in your skills, even if you are the hardest worker in the class?
If you want to publish code you can be proud of,
- BE ORIGINAL.
Use those assignments, constructively, as a base to develop applications which are a level beyond the concepts covered in the course. Show others that you are capable of independent learning. Now THAT's what will impress someone.The damage has already been done (Score:1)
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.
Suggest Code Metrics (Score:2)
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.