University of Illinois issues DMCA takedown for previous years' homework
github.com
github.com
There's also the question of plagiarism. As an undergrad, I'd often post my work on my site when I handed it in. I stopped this practice when I got a 0 on a major bit of coursework (cost me a grade boundary in my degree...), as their software found it online, on my site, and they refused to view my work as anything but plagiarism. This action potentially saves students from the same fate.
They do claim this:
a large portion of the uploaded code is copyrighted by the University of Illinois. Therefore, the repositories identified below constitute a violation of U.S. Copyright laws, in particular section(s) 1201(a)(2) and/or 1201(b)(1) of Title 17 of the United States Code, commonly referred to as the Digital Millennium Copyright Act, or "DMCA".
What do you think about that?
That said, the DMCA does not prohibit students from encouraging others to neglect their own education, it exists to enforce copyright. IANAL, but their case that they own the copyright over the repos because their syllabus includes the questions being solved doesn't seem very solid.
In the case of TFA, UIllinois claims ownership over some of the things made by students; it's part of their conditions for enrollment. This kind of thing is more common than most people realize. http://www.bot.uillinois.edu/general-rules http://otm.illinois.edu/studentownership
Here is the Honor Code from the university[1]
I don't see any mentions of the words "share", "distribute", "post", "online", "github", etc.
What I do see, is a lot of talk about plagiarizing other student's work and passing it off as your own.
The github repos did not do this -- other students did this. You punish the students who commit the act of plagiarism -- not the source. You don't ban a book because somebody plagiarized it.
[1] http://cs.illinois.edu/current-students/undergraduates/polic...
"As described in the Student Code, aiding someone else's cheating also constitutes cheating. Leaving your program in plain sight or leaving a computer without logging out, thereby leaving your programs open to copying, may constitute cheating depending upon the circumstances. Consequently, you should always take care to prevent others from copying your programs, as it certainly leaves you open to accusations of cheating."
Did the university contact each student and request to have the student remove the repo? Unlikely given the sheer volume of repos in the takedown request.
Irregardless, the University should have measures to deal with this internally if they felt so strongly about this cheating rule.
That said, they didn't do that: they used the DMCA. Their use of the DMCA is a strange choice in my opinion, but is likewise valid if the repos contain original work created by the university as part of the problem set.
Direct quote from your link.
I look forward to hearing what revenge madaxe_again exacted on the culprit.
The closest thing to this that happened to me not being allowed to take a graduate-level class based on a piece of software that I helped develop, because I was an undergrad. That was dealt with by disabling said software for the instructor until the stupidity ended.
I think posting finished homework online is a silly thing to do regardless. There's no reason to do that. I'd wager students get informed of these policies well before it gets anywhere close to where this went.
Students are not allowed to post the work that they do to the Internet. madaxe_again did post the work they did to the Internet. They were incorrectly punished for plagiarism - it was their own work - but they could have been punished for posting homework to the Internet.
The internal justice system made two errors, not zero. That's never okay, especially if it claims to be errorless ( shawn-furyan put it better than I did)
Would you be okay with getting a fine in the mail for having done something that is logically impossible to do (such as plagiarizing from yourself), regardless if you had to pay a different fine for a different issue or not?
EDIT: I can't answer to the post below, for some reason, thanks for the correction on self plagiarism!
Another issue to consider is that the homeoworks are not student property, they largely belong to the instructor. A lot of effort goes into producing interesting and educational homeworks, and it's all lost if students can just google the answers. If you disagree with the idea that homeworks are instructor property, ask yourself if it would be okay if an instructor at Princeton just reused (without permission) the homeworks from a course at Harvard.
In my opinion, arbitrarily shoehorning a perceived infraction into a preexisting rule that it doesn't fit so that you can punish behavior that you hadn't thought to disallow before the fact is an abuse of university policies.
If madaxe is recounting the event accurately, then I think that the university is more in the wrong. University policies are hard enough to follow in situations like this when the university sticks to the letter of the policy. Plus, universities can always go back to update policies as they see new behaviors that they would like to disallow. But if the university uses whatever policies that they do have on the books to punish arbitrary behaviors that they don't disallow, then it puts the student in the situation of having to predict how this practice will impact them in the future. This is essentially impossible, and quite defeats the entire purpose of having policies written down in the first place. If this practice is common, then the policies are merely legitimacy theater, and are in fact illegitimate.
The situation is further confounded by the power dynamics at play. Tanking a students GPA is a pretty tremendous bludgeon, and outside of retaining a lawyer, a bludgeon against which students have little defense. This power discrepancy demands discretion on the part of the university. There is a level of injustice in the act of a university wielding this power against a student without a grounding in legitimate policy.
As far as the rest of your comment goes, maybe there are some cases when students are unfairly penalized for hard-to-follow policies. But the instance here seems pretty clear cut. I also think shady behavior from students more often than not goes unpunished, so your fears of a power-drunk university arbitrary destroying students' GPA just for the heck of it, seem unjustified.
I had no revenge, I just ended up with a worse than hoped for degree, a deeper distrust of authority, and utter contempt for university "education", which would be better described as "conformation".
Maybe the punishment was a little harsh, but I think it'd be hard to argue you weren't in the wrong.
> a deeper distrust of authority, and utter contempt for university "education", which would be better described as "conformation"
Based on what you've said so far, to me you sound immature and are rationalizing your immaturity by blaming "the system."
There was nothing that prohibited this, and I had posted data (astronomical observations & images) and assignments to my site for years previous to this incident.
Frankly, I would suggest that your thinking is extremely immature, if your first course of action is to call someone else immature, and to respect all authority unquestioningly - shows a lack of development of thought, and an absence of critical thinking.
Many university "plagiarism" policies prohibit all of (And this has been true since before the web was a thing): (1) plagiarizing others by copying their work, (2) "plagiarizing" yourself by turning in work of your own that is not original work exclusively for the course it is prepared for without explicit advance permission to reuse previous work (or use one piece of work for two simultaneous classes), or (3) facilitating plagiarism by other by way of publishing work done for class assignments without explicit advance permission.
> Tanking a students GPA is a pretty tremendous bludgeon, and outside of retaining a lawyer, a bludgeon against which students have little defense.
Most universities have procedures to resolve student complaints about irregularities in grading, application of policies, etc., short of requiring a lawsuit against the university, which do not generally require legal counsel to make use of.
Finally, the publication date on my website was several days after I handed it in - so I assume you, like they, believe I have a secret time machine?
Also, they usually have undergrads who will do free manual labor for them.
Then again, institutional refusal to understand reality is a pet peeve of mine.
I obey American law because I gave my word that I would, upon entering the country as an adult. I do not obey Italian law because the Italian state never asked me to, and even managed to fail to to secure my consent despite me offering. Due to the the aforementioned bit of utter idiocy, I consider Italian law impossible to follow, so why bother trying?
If code is law, law is code, and this one is one of those things that keeps dumping a stack trace at you and clogging the logs (also, I hate debugging Android apps).
Education isn't a zero-sum game, so if some people want to plagiarize, aren't they just cheating themselves?
That seems like a student's issue -- not the University's. Give an in-class closed-book closed-note exam and the students who did not bother to actually learn the subject will fail.
> I stopped this practice when I got a 0 on a major bit of coursework (cost me a grade boundary in my degree...), as their software found it online, on my site, and they refused to view my work as anything but plagiarism
It seems you did not fight this hard enough. It would be easily proven it was your work and posted after you began work on the assignment. It's actually customary now at the local University by me for the professors to encourage use of Github and the like.
In the end -- the University might "own" copyright over the exact phrasing of the questions that spawned the code solutions -- but they do not own the solutions themselves.
Actively forbidding students from learning and using version control is egregious.
The argument that other students might plagiarize so all the code solutions must come down is simply ridiculous.
I'm also upset that Github redacts the contact information from the DCMA Takedown requester. Students should have an option to directly contact the individual at their University and challenge this.
There are a lot of people in this thread stating that students are not allowed to post homework solutions online and therefore this is fair -- I have never seen in any syllabus nor student conduct agreement anything forbidding posting of a student's own solutions online. A lot of student code is online - and sometimes is even used as part of their first resume after university to land their first real job.
Posting homework you did and own copyright of online is not breaking any rules. It's breaking rules to copy/plagiarize that code and attempt to pass it as your own.
Students are definitely not forbidden from using version control. In fact, version control is encouraged. What they are forbidden from doing is making their repositories publicly viewable.
You are making a large assumption here. I have never seen this be explicitly forbidden in any syllabus nor student conduct code.
You can do a search of their "Honor Code"[1] for the keywords --- "online", "post", "distribute", "share" -- none are even mentioned.
I'd like to be proven wrong -- but this just seems like a fallacy. Posting code online is fine -- copying it and passing it off as your own is not.
[1] http://cs.illinois.edu/current-students/undergraduates/polic...
"As described in the Student Code, aiding someone else's cheating also constitutes cheating. Leaving your program in plain sight or leaving a computer without logging out, thereby leaving your programs open to copying, may constitute cheating depending upon the circumstances. Consequently, you should always take care to prevent others from copying your programs, as it certainly leaves you open to accusations of cheating."
Laws (and I'm considering honor code policies to fall in that category) are not programs. They intentionally have some ambiguity so that humans can interpret the meaning. Here, the intent is clearly that students should not share their work. They need not explicitly forbid all forms that such sharing could take.
From https://news.ycombinator.com/item?id=8806910 there's a link to http://matt.might.net/teaching/compilers/spring-2015/
and I quote: ''' How to cheat in this class
I've caught so many attempts at cheating in my courses that I feel the need to provide a guide to students.
You may not use code you found on the web, even if modified. You may not use code you found on the web, even if it's GPL'd. Do not turn in code with a matching md5sum for your friend's assignment. You can't simply change comments and spacing. I can tokenize your input to eliminate these differences. You can't just change variable names. I'm going to diff a token stream of your assignment against others. You can't just move definitions around. Same reason as before. You can't copy only part of an assignment. Same reason as before. If you're going to cheat, you need to rewrite the assignment from scratch. '''
Thanks to it being incomplete, the owner of the github accounts can not create a defense, nor try make any changes for compliance. That should be a clear sign that the notice is unreasonable vague in the description and thus need to be denied until a complete notice has been sent.
This, of course, allows people who don't want to learn to avoid learning, but it's the university's job to certify that you have learned things and make available the resources to learn. Policing you to learn with the graded assignments game leads to a lot of people who are really good at playing, not so good at having interest in their work or the actual material. (I knew so many people who succeeded through grey-ethical finding answers through peers and instructor's guides ... 10 people collaborating to each to 1/10th of the assignment, etc.)
https://github.com/github/dmca/blob/4e465059012c946abd3f2fa2...
Their README suggests they only redact personally identifying info, but I assumed that was in reference to the submitter (if an individual), as the other repos didn't receive any redaction.
"Works created independently and at the student’s own initiative for traditional academic purposes are owned by the student, but the University retains certain rights to use such works. These include class notes, reports, papers, and works prepared by the student as part of the requirements for a University degree, such as a thesis or dissertation. Note that it is the copyright only that is owned by the student. The fact that the student owns the copyright does not influence whether or not the student owns the underlying intellectual property. For example, if a thesis describes research performed in a professor’s laboratory, the University has a right to own the underlying intellectual property (e.g. laboratory notebooks, original records of the research and any resulting inventions or software.)"
A few years ago I got an email from a TA in a subject I took the year before, that they wanted me to take down solutions I hosted on Github. However, there was no provided code in the assignment, and it was basically implementations of previously known algorithms (A* among others). Not a formal takedown request, but they said I should understand that they had to use the same assignments each year, and if I were providing solutions this could be hard. My answer was that if they are worried about plagiarism, it's better that my solutions are public, as they can be checked against.
/ @file shell.c / #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <string.h> #include <sys/types.h> #include <sys/wait.h> #include <unistd.h> #include "log.h"
log_t Log;
/**
* * Starting point for shell.
* */
int main(int argc, char ** argv) {
/**
* * Analyze command line arguments
* */
while(1)
{
/**
* * Print a command prompt
* */
/**
* * Read the commands
* */
/**
* * Print the PID of the process executing the command
* */
/**
* * Decide which actions to take based on the command (exit, run program, etc.)
* */
}
return 0;
}
The provided code is rather sparse (by design), but the University holds copyright on it.What you've posted doesn't look substantial enough to be copyrightable to me; the idea of writing a main containing a while loop is certainly not original to the university, and the comments would presumably not be present in this repo since they'd've been replaced by working code. I sure hope the university of Illinois doesn't own the copyright on any shell I write from now on, because that would be ridiculous.
Homework boilerplate is distributed to students through private SVN. This typically includes some method headers or libraries. We then complete the assignment to specifications and commit it through SVN, where it is graded programmatically. Therefore, we can't modify some of the headers.
The class has been taken over by a new professor. As such, it is being totally restructured and the assignments are largely being changed now. However, when I took the class with 250+ other students, plagiarism was rampant.
As far as I'm aware, the course staff has indeed contacted individual repo owners on Github for take down.
Rather than just issue DMCA takedown notices, it might be useful for the University of Illinois to provide students with access to private git repositories. Of course, I suspect many students have drank the "github is your resume" kool-aid and would be less likely to use private repositories.
This is a bad and lazy policy for a school. Instructors should be creating assignments that cover the same material but are sufficiently different from one semester to the next that cheating isn't a problem.
When I was in school 15+ years ago, we had officially sanctioned ways of sharing materials from previous semesters of coursework. Is that uncommon?
tl;dr; What should have happened is that UofI should have worked with github to turn those repos into (free) private ones. That way the content is removed from the public and search indexes and the students can still use/review the material they created in the class later on if they want to.
I have only taught 3 classes/2 subjects - object oriented (heavy programming), and operating systems (light usage). I run my own source code hosting service and will pre-provision private repos for them (for free obviously). I also encourage them to get private repos from github (you can get it for free if you need it for a class) if they don't like mine (I am not one of those teachers who force them to use their book or service - students are free to use whatever resource they want....just maybe not CVS or RCS...).
I strongly recommend private because obviously I don't want other students to copy their work (but I do encourage collaboration for homework). However, most of my assignments are pretty open-ended to the point where I would notice obvious plagiarism. A few students have created public git repos because they aren't familiar with github or even git - which I am perfectly fine with. I would rather change my assignments than force a student to take down their git repo (which I should probably do anyways). The last thing that I would want is for a student to have a negative association with using source code hosting services like github.
Some comments suggest that the university may claim ownership over the code - which may be BS depending on how the code was acquired. The university may have paid some guy off the street to write this code and the university hired a professor and said "you will use this code to teach your class". If this was the case - then I could be ok with this takedown. If a professor wrote it in their spare time for the class and the university is trying to claim ownership - then I have a problem with it.
This does make me wonder - how many students requested private repos for their classes and shoved the code there? They won't have their code taken down obviously - so the only people who are punished are those trying to learn and understand the class and git/github.
This is more of a service issue where the University probably doesn't provide a standard git repo so students need to either set one up or have fun merging by hand. Unfortunately they have chosen a public GitHub repo rather than a private repo like BitBucket.
Really if the class they're in provided a git repo they wouldn't have this issue.
The DMCA says that is what the infringement is.
I don't think you can claim that changing code absolves you of copyright issues, it might make it harder to find though.
Ideally, of course, there'd be a process for getting exemptions - I know I would have been irate if my alma mater had claimed ownership of the year's worth of work I spent on my senior thesis project. But that's also code where the risk of plagiarism is relatively low-impact, what with it being specific to that particular project.
Answers to problem sets, though? Pfft, let them have it. I never had a reason to look at any of it ever again, so the value of retaining ownership to me is virtually nil. Whereas the value of having even a slight incremental improvement in the protections universities use to help me not have to spend quite so much time worrying about whether the kids I'm looking at hiring might have cheated their way through college without ever picking up proper problem-solving skills? Priceless.
There is no copyright transfer agreement nor is this a work for hire. This case at UIUC appears to be a copyright issue related to school provided materials which were further modified by the students.
I guess students should then learn to only upload parts coded by them? ;)
http://webcache.googleusercontent.com/search?q=cache:KmeV5ze...
/**
* Initializes the binary tree data structure.
*
* You may assume that:
* - This is the first function called for each instance of btree_t.
* - The btree_t pointer is a valid, non-NULL pointer.
*
* @param b
* A pointer to the binary tree data structure.
*/
void btree_init(btree_t *b)
{
}Is it really that hard or asking too much for this lazy department to tweak the code so that it's different from prior years?
Students can, should, and frequently do, use past assignments as a learning resource.
At the beginning stages of a music theory course, you are learning the very basic rules. How did Bach's music work? That's where pretty much everyone starts. And you learn how his music worked by finishing his stuff. The early exercises (which I think are analogous here to having some code or library provided) are basically, "Here's the first part of a piece of music by Bach. Finish it in the style of Bach."
Then you go from there, gradually, with less and less hand-holding.
Is it possible to plagiarize these things? Of course! You can just look up the piece and finish it the way that Bach did.
There are some students who did things like that. The professors never bothered to say anything. They didn't have to. Because by the end of the class, you are all on your own. "Write a short piece of music in the style of Bach with the following features: . . . ."
The real issue is that students keep this stuff and pass it down year to year.
I remember taking ECE 451 at Illinois and someone had taken photographs of the solutions that were posted on the wall for students to look it.
Really only enough to fuck your spot on the curve if you got zeros on them.
Exams were like 80%+.