Student Who Released Code From Assignments Accused of Cheating
Death Metal sends in a story about Kyle Brady, a computer science major at San Jose State University, who recently ran into trouble over publishing the source code to his programming assignments after their due dates. One of Brady's professors contacted him and threatened to fail him if he did not take down the code. Brady took the matter to the Computer Science Department Chair, who consulted with others and decided that releasing the code was not an ethical violation. Quoting Cory Doctorow at Boing Boing:
"There's a lot of meat on the bones of this story. The most important lesson from it for me is that students want to produce meaningful output from their course-assignments, things that have intrinsic value apart from their usefulness for assessing their progress in the course. Profs — including me, at times — fall into the lazy trap of wanting to assign rotework that can be endlessly recycled as work for new students, a model that fails when the students treat their work as useful in and of itself and therefore worthy of making public for their peers and other interested parties who find them through search results, links, etc. But the convenience of profs must be secondary to the pedagogical value of the university experience — especially now, with universities ratcheting up their tuition fees and trying to justify an education that can put students into debt for the majority of their working lives."
The student released the source after the release date, which prevented any of his peers from cheating. In the computer science classes that I take, it's allowed to share the source code for your assignments as long as it isn't for a pending assignment and/or test.
The only reason that comes to mind for the teacher wanting the code to be taken down is because he was going to use the same assignments next year (Which is fairly common among teachers). Regardless, in this case it's his code and he has the right to do whatever he wants with it.
Unfortunately schools have become more about preparing you for standardized tests and such rather than giving you a real education with the information you actually will use in life (Which is why teachers always have to cover their asses). What Brady was trying to do was help his peers and kudos to him for doing so.
"The difference between genius and stupidity is that genius has it's limits" - Albert Einstein
When I did my undergrad at the University of Minnesota in 2000, they let us know that they took our code that we submitted and stored it in a program with a database. Whenever a student submitted new code, it went through this program. Essentially, some really fancy Hamming Distance that I think might have been similar to FASTA or BLAST algorithms for genetics were employed to score assignments against all the other ones.
:)
If it was common for students to write assignments -- say they had been given a design template -- then all of the scores would come back rather high. If the TA noticed an outlier, they would investigate. If two submissions came up sufficiently similar, they would investigate.
It was (of course) never explained in detail how it worked but I bet that today one could take this to many new levels with things like ANTLR that might allow the program to check the inherent structure in code to avoid something trivial like different comments or variable names skewing the results.
Was it me who was in the professor's situation, I would bite the bullet and code the very basic above application using a web form submission for TAs and Professors. Then I would ask for help from other members of the department and make it a customizable growing project to protect the academic integrity of my school and students. Then I myself would put the opened source on there and run all my students assignments against it.
Problem solved, you can keep all your assignments static, you lazy bastards
My work here is dung.
FIRST POST!! Oh, dear, you must have all had a good Friday night.
There's an old practice of fraternities at my college, where they kept file cabinets filled with old homework and course notes of all the classes their members took. I had wondered how some frat boys coasted through so many classes and got so much more sleep than those of us who struggled working to pay for college, paying for food, etc. Then I found out this was one of their most important reasons. It was a known practice, and one of the less publicly mentioned benefits of joining a fraternity.
Since small-scale publication of old hoomework and course notes, such as what I describe above, has been going on for centuries, it seems completely reasonable that larger scale publication be permitted.
And threatening to fail a student for reasons other than poor performance in the course is somehow not an "ethical violation"?
Profs â" including me, at times â" fall into the lazy trap of wanting to assign rotework that can be endlessly recycled as work for new students
For a first year course entitled "data structures and algorithsm" isn't this kind of unavoidable?
I mean, consider some of the projects on this student's website; things like sparse matricies, longest common substring, recursively solving an occupancy grid map, and so on.
How much variety can you put into an assignment to implement sparse matricies?
Of course, even without this student posting his assignments online, students could still google the problems and probably find working solutions, so taking down this one student's assignments isn't going to stop those who feel so inclined from just copying implementations they find through Google, so I'm not sure the teacher would have achieved much even if he had got this stuff taken down.
"Goodness me, how unlike the FBI to abuse the trust of the American public." -- The Onion
Simply put: professors do not own their students' coursework. If a student writes a short story as an assignment for a creative writing class, can the professor prohibit the student from later publishing it? To call that academic misconduct would be absurd on the face of it. Now, what is different about computer code?
Kudos to SJSU for backing the student on this. Beeson is clearly out of line, and I hope that students will make a big stink if he tries to insert some idiotic no-publish clause in future assignments.
Someday I hope to be a professor, teaching my own classes. The one thing I would like my students to do is respect me as someone who contributes strongly to their development as a person and as a professional. It surprises me that the teacher in question would rather claim idiotic copyright policies just to be able to avoid having to come up with new assignments. I can not think of any purpose this would achieve other than helping him be a lazy ass.
Even if there was a valid reason for him to ask the student to remove the code, I would expect a teacher to keep the student's intent in mind and try to be as accomodating as possible; clearly the student is taking his homework seriously enough and that is already a good thing that should be encouraged as much as possible.
This prof should be taken into questioning by the University. How can he / she agrue that the student commited any breach of ethics. If the profs wants to tell the student that he can fail if he doesn't take his code down then just what does this prof think of Open Source projects. I had a simlar prof at my College who couldn't stand when students shared even the smallest line of code, even a printf.
I have to give the student credit because he didn't put it up till after the due date, meaning no one could cheat. In either case it's his right to share his code and if he wants to post it then he should be allowed. If another student copies the code then get the other student in trouble and not the original author.
If a student is dumb enough to copy code straight from a source with out understanding it then they should fail. There is nothing wrong with reading code to understand it and then writing the code yourself in your own style.
The student who posted his code did nothing wrong, he wouldn't of done anything wrong even if he posted when he finished even if the dead line was not up. His code his choice, as long as he put a disclaimer up saying not to copy it or even the GPL or one of it's variants then he's covered.
...as I recall, the campus newspaper charged by the line for classified ads.
If, as a professional, you misrepresented the source of the work, it would be just as unethical as the student misrepresenting the source of the work they copied.
Nerd rage is the funniest rage.
The specific case (covered heavily - check Techdirt for one) in question has actually brought in a much larger problem to light. How should students treat code written as part of assignments or as part of their course-work in terms of licensing? Is there a precedent for licensing? Most research activities conducted by universities have already adopted licensing framework. Here's an example. There has been debate whether such licensing should be free. Just check Medical Research and you can open Pandora's box. One more example is Singapore's A-Star which is more of a group focused on preparing research for industry adoption including licensing and legal usage terms.
How about code released in books on Data Structures, Algorithms, Fundamental C programming? To my knowledge (do correct me if I am wrong), the code is usually licensed under the same copyright notice as the book itself. In some cases, the author changes this licensing and makes it available. One example is "Numerical Recipes in C" where the licensing terms of the code from the author(s) of the book is explicit and can be found on a google search.
When it comes to university assignments, it is no news that the same template (if not the same course material itself) tends to get recirculated over a periodic basis. In some cases this period is annual and in others, the frequency is different. The debate raised is ages old. For most data structure or standard assignments of programming, you could find most of the code online. You could use this as a starting point or choose to write your own and learn your fundamentals. That's up to the student and the professor who is teaching and grading.
There is some truth in the statement (IMHO) that the Academia is shielded from the real commercial world. It works positive in some cases and is counterproductive in fields like Engineering (not Theoretical Computer Science.) In this specific case, if the University were to read all the fine print they have on students sharing course material (for which they pay for) and lecture notes and assignments, they would find the right solution. Bringing this (issue between a student and the professor) out to Open forums seems more of a publicity stunt that is going to get someone infamous for some and noticeable for a few others.
Focusing on the larger issue, a Varsity must be clear on how course-work and assignments from the students will be licensed and treated. They already have set legal precedents for most research work (which in some cases is funded by commercial bodies.) Hopefully this issue raises a flag and lets varsities understand and embrace Open Source, encourage students to use it particularly in programming assignments. At the very least they should at least reserve procedures to let a student obtain due permission for displaying his/her works online under appropriate licensing. In the absence of a precedent and clear guidelines, such confusion and unnecessary nerve wracking experiences between a Professor and a Student are more likely to surface. I hope not.
No Greater Friend, No Greater Enemy! (Lucius Cornelius Sulla)
I can sort of see where the professor is coming from. This is similar to a student posting scan-tron results from a test, but unlike the scan-tron results this actually has other uses besides cheating. Anyway copying is now an archaic form a cheating, and it seems most students who are going to cheat are moving to outsourcing. Instead of buying an essay that was already written, they pay a professional to write it, or in this case they pay a programmer to write it. Most professors won't do much until it becomes a problem, and even then there's really nothing the school can do until they find the original writer, or the student confesses. Most teachers will just increase the workload trying which pretty much just tortures everybody instead of just the cheaters. Hell about 2 years ago it seems like schools were almost proud there CS students were outsourcing.
A professor is someone with a PhD who is tenured at the university in question. Cory Doctorow, if I am to believe what I have read (blessed and purified by The Man Himself), doesn't have so much as a bachelor's. The fact that he has been allowed into the front of university classrooms does not make him a "prof." That being said, we can't really hold that mistake against him as he does have all the education of a glass of water.
Me, I've been teaching university in the US and Japan for 6 years. I, too, am not a "prof." I was pretty stoked when I started this job in April and moved up from "Senior Lecturer" to "Assistant Professor." My former boss in the US runs an entire state university's Japanese program, and has done so for 20 years. Her title? "Lecturer." Why? No PhD, just a master's.
This right here is the core reason I loathe Cory Doctorow. He constantly blows himself up to be things he clearly is not. The moment my opinion of him turned for good was the moment in the talk he gave to Microsoft, wherein he described himself as a "half-lawyer." My buddy who just finished law school but hasn't found out if he passed the bar yet is a "half-lawyer." Some Drew Carey lookalike who writes about as well as you would expect from someone who graduated from a "free school," and who likes to pontificate endlessly about legal issues is not.
I would post this on Boing Boing, but I was banned for posting something similar.
...especially insufficiently clueful screeners in human resources departments.
This is absolutely true. If that HR wonk doesn't have that "degree requirement" checkbox marked, your resume takes a one-way trip to the trash can. With degree inflation being what it is, you'll need a Phd to work at McDonalds in ten years.
For that eventuality, I'm still working on my thesis titled: "Recidivism in McDonaldland: A Restorative Approach to the Hamburglar Problem".
Where does the school board find them and why do they keep sending them to ME?
Cory - If a student is going to be spending most of their working life repaying their college loans, they made a bad choice of college. Perhaps we need a bigger emphasis on economics while the student is in high school.
Yeah, instructors who reuse assignments and expect students to pay the price for that suck. On the other hand, those instructors are just as much the victims of circumstance as the students.
Simply put, instructors are not paid to develop courses and assess work in any manner that can be considered pedagogically sound. On top of that most professors (heck, even most school teachers) have responsibilities that extend beyond classroom teaching. So most of them are expected to use curricular materials that were developed once and used many times over, while reading at a speed more appropriate for an entertaining novel than a serious academic discourse. Instructors who go beyond that are virtually always sacrificing their own personal lives in order to improve the quality of education.
Teaching at any level is hard. Teaching in over crowded introductory university courses (that are often used to fund smaller upper year courses) is among the most challenging jobs that a professional can do. And, unfortunately, I doubt that battles like this one are doing anything to address the issue of the quality of education.
I am sick of anti-intellectuals belittling academia and the educated for being out of touch with the so called "real world" implying that they - the insecure - are somehow more in touch with "reality." Its most often an attempt to undermine the benefit of actual expertise and critical thinking skills to create a level playing field where often there shouldn't be one.
If one actually digs, you find that reality is so big and complex that all aspects can not be covered (especially with limited time even with a limited scope... one can get into endless debates about how to limit the scope too.) Its an appeal to ignorance which often traps intellectuals who if they are honest with themselves have a good idea of how little they know of "reality" even in their field of expertise. The US media often takes two sides and presents them as equal when 1 can be pathetically inadequate; a similar tactic.
Often the "real world" person is conceding ideals the academic is not; which are part of a different side debate I've rarely seen the "real worlder" willing to explore. At its heart, Academia explores the real-world at depth and tries to abstract (to help comprehend) and explain the nature of reality-- so its quite an odd claim it is out of touch with reality when its purpose is to better understand reality. Now, sure it can't cover everything and even a moron could contribute something constructive-- the infinite scope of the problem allows for that and many academics can forget this (which is easy to do just from conditioning from interaction with "normal" people.)
Modern culture has raised the money makers into the new high priests of our society and finally in recent years their status is being questioned (just a little.) Over a generation ago, scientists were the high priests who were going to take us to space and solve all the worlds problems with their mighty science. They didn't accomplish these unrealistic ideals (which wasn't heavily promoted on their part) so it stands to reason many people were disillusioned; lack of significant progress in recent times prevents a repeat on the same scale as before. (Computers almost did but people were more jaded.)
Democracy Now! - uncensored, anti-establishment news
Computer science is in such a continuous state of flux
Really?
Maybe I have a view of CS that's be artificially narrowed through only being taught the things I have been taught, but:
In the last ten years,
In short, how has CS changed?
The Church-Turing thesis still stands unchallenged. No one knows whether P equals NP. The parallel revolution is still in the future (even though algorithm guys study parallel algorithms). We still don't have quantum computing or biocomputing worth talking much about (yay, we can factor 21---into 4 and 6). By and large we still parse languages into a LALR(1) grammars like in... the 70's? User interfaces, they're still mouse-and-keyboard, Window/Icon/Menu/Pointer.
Exactly what do you mean when you say "Computer Science is in flux"? What's fluctuating?