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.
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?
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
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!