across the network: Kyle Brady: Blog  |  Kyle Brady: Fiction  |  Kyle Brady: Projects  |  Kyle Brady: Profile contact
across the internet: on Twitter | on Facebook | more...

Expose:

How I Won a Copyfight



subscribe to Expose posts:  rss - email



follow the update thread for the latest chapter in the saga



As a brief introduction, I'm a student at San Jose State University, as a Computer Science major, in San Jose, CA.  I had a class the last semester (Jan 2009 - May 2009) called "Data Structures and Algorithms", taught by Dr. Beeson, where the homework was all code, submitted by a certain date to an online submission/analysis system.

Throughout the semester, I posted my correct/working code publicly (project descriptions returning sometime in the near future), after the due date, and didn't think much of it - I thought exposing the code to the public could be helpful for some people, as well as a good employer reference for the future.

However, I was contacted by Dr. Beeson after the semester had ended (May 22, 2009), telling me to remove all public code or else he'd fail me, since he considered it a violation of the Academic Integrity standards.  I responded very politely, citing SJSU Policies and Student Senate Resolutions/Statements:
Professor,

How is this a violation of Academic Integrity?  I posted them after the initial due date, and very clearly state that these are not to be used in lieu of a student doing their own homework, nor are they likely reliable enough to be used in a corporate environment.

You may ask, then, what the point is - the point is that I'm starting to create a repository where my future employers can see code I've written easily, something that is more important for the interview process in our modern world than ever.  The work all semester was difficult enough that I felt it warranted being included.  Additionally, sharing code with the world at large, in the spirit of the Open Source community, is not incorrect when the code is your own - even if no-one ever looks at it.

According to the Academic Integrity Policy of SJSU [accessible here], I do not qualify for any of the terms of Cheating or Plagiarism.

According to the Student Conduct Code of SJSU [accessible here], I do not qualify for any of the terms of Section B.  Any arguments for Section B Item 14 are invalid, because they are not being disseminated for commercial purposes.

According to a statement by the SJSU Student Senate on April 20, 1990 [accessible here], "Academic institutions exist for the transmission of knowledge, the pursuit of truth, the intellectual growth of students, and the general wellbeing of society".  My actions are within the spirit of this.

Finally, according to the same Senate Resolution, students have a right to freedom of speech (which this is classified as), "So long as a student demonstration does not interfere with the classroom".  Having posted the code after the due date, I did not interfere with the classroom.

Thusly, I do not see a need to remove my code under threat of grade penalty.  If you disagree on any of these points, or wish to discuss it further, I will be more than happy to bring this discussion to Dr. Louden's attention.

He responded rather explosively, and was visibly upset/angry.  In lieu of posting his response, which I'm sure he'd find and take action on, let me summarize it:

  • what were cited are examples, not a full list

  • he had expected me to cooperate, otherwise he would have filed a Cheating claim against me

  • take down his PDF files due to copyright (note: I did; they're being retooled for reposting as my own content)

  • does everything need to be stated as acceptable or not?  spitting on the classroom floor was mentioned.

  • future classes will expressly prohibit the public posting of code solutions at any time


Obviously, the last bit worried me, and as a first response I replied to him:
Professor,

I understand that they are merely examples, but I thought it was important to point out what the spirit of Cheating and Plagiarism is, since this may very well result in a new definition set.

I will remove the problem descriptions.

I appreciate that you didn't file a case, because, as you said, it was not my intention to help others cheat or facilitate it.  In fact, I still don't believe this could be considered cheating, since it is a very different situation than passing a Final around the room.  Perhaps I could have posted the code at a later date than I did for each assignment, but the principle remains the same.

There is no reason to not make homework solutions public at an appropriate time, and what I have done is no different than sharing answers after they have been turned in for grading - or reviewing graded homeworks in groups before a Final Exam.  I merely used the Internet as my distribution method, instead of a paper-and-ink solution.

Finally, I believe spitting on the floor is completely unrelated.  That would fall under basic actions of human decency, whereas what I have done over the previous months is more intellectual in nature.

Thank you for the consideration of my response.

Following that email, to which I received no reply, I emailed Dr. Louden, the Computer Science Department Chair, because of the potentially devastating nature of what Dr. Beeson intended to do:
Hello Dr. Louden,

I have been contacted by Dr. Beeson today regarding the posting of my homework solutions for CS146, past due date, online as a reference for my future employers as well as the general public (if they were interested).  He seemed to think this was a violation of Academic Integrity, and considered it Cheating.  While we still disagree, he has agreed to not penalize me because he didn't explicitly state it was forbidden.

However, this is still a concern to me, as he has indicated this will be a tenet in all of his classes henceforth.

The code I have posted is code that I wrote, and posted past the due date.  As such, it cannot be considered cheating.  But for a Professor to prohibit post-grading distribution of solutions is ludicrous.  What I have done is, essentially, no different than students comparing answers after handing in homework, or comparing graded solutions of a semester's work prior to the Final Exam.  Neither of those are considered Cheating, or any manner of an Academic Integrity violation, so why should mine be considered different?

To prevent it would not only be destructive, prohibitive, and harmful, but potentially a violation of Freedom of Speech as well.

I have included the emails between myself and Dr. Beeson as an attachment.  I hope that you can review these details and make an appropriate decision as to whether the prevention of such sharing is both legal and intelligent.

Thank you for your time, and I hope to hear from you soon.

I got a prompt response from Dr. Louden, indicating he would research the issue and get back to me - all of the above occurred on May 22nd, 2009.  I received a response from him on June 1st, the important snippets being:

  • the Office of Student Conduct and Ethical Development was contacted for a ruling

  • Dr. Louden did not believe Dr. Beeson can unilaterally prohibit the public posting of code

  • copyright issues could arise if the problem sets were highly unique or code from Dr. Beeson was used (note: not the case)

  • Dr. Louden disagreed with the assertion that posting code online was the same as sharing homework solutions, because of the medium in which they were posted (note: the Internet)

  • Dr. Louden stated he thought the claim of Freedom of Speech would be a stretch


A mixed bag of responses, but overall fairly good for my concerns - I considered it a win that I had the Department Chair largely on my side.  On June 3rd, I was notified of an official response from SJSU:
"I have now heard from Debra Griffith, Judicial Affairs Officer of SJSU, and she agrees that what you have done does not in any way constitute a violation of the University Academic Integrity Policy, and that Dr. Beeson cannot claim otherwise."

Thanks to some perseverance and asking the right questions, SJSU Professors are now prohibited from barring students from posting their code solutions online, as well as penalizing their students for doing so.

A win for students, programmers, and copyfighters nationwide!

--- --- ---

Update (6/11/2009 1:08am PST): BoingBoing picked this up, with a pretty glowing pat-on-the-back from Cory Doctorow himself!

Update (6/11/2009 6:50pm PST): TechDirt picked this up as well!

Update (6/12/2009 1:55am PST): I only just noticed it showed up on Hacker News a long time ago...

Update (6/13/2009 12:00pm PST): ArsTechnica and Slashdot are now in the mix.

Update (6/15/2009 6:40am PST): The dust is starting to settle a little, but Linux.com did a writeup as well.

Update (6/15/2009 12:05pm PST): The Chronicle of Higher Education (an "old world" publication) wrote about this.

Update (6/16/2009 7:00am PST): Another non-nerd blog has done a piece, this time with an interview, courtesy of Jack Stripling at Inside Higher Education.  Probably the last one for all this.

Update (8/24/2009 6:45am PST): Featured in SJSU's Spartan Daily, first issue of the Fall Semester, but in bad taste.  See my response.

Expose pieces are irregular posts attempting to hold people and organizations accountable for their actions.
Kyle can be found on Twitter and MySpace, or reached via email.


subscribe to Expose posts:  rss - email

submit to reddit Add to Mixx! Share on Facbeook Retweet
Printable Version Printable Version

More Expose Pieces

see more...


Commenting Rules

The following is a basic set of rules that are enforced for all commenters.

Any violations of these rules will result in comment deletion, user bans, or both.

  1. No excessively foul language.
  2. No racist remarks.
  3. No SPAMing, unrelated linking, or otherwise unnecessary promotion of outside material.
  4. No trolling.
  5. Be respectful.
  6. Be valuable.
  7. Feel free to respond, argue, or counter-point an article - but do so coherently and intelligently.
  8. Use a personal nickname, commenting account, or moniker. Do not use your business' or website name/account.
  9. Do not trackback/pingback to this post unless your content is relevant.
also available as a standalone page

  • uknownstudent
    I go to SJSU and I feel your pain. The school is a national discrace as it has so many problems that the top heavy administration is unwilling to deal with. Our campus library is the main San Jose Public Library which is usually crowded with the homelsee all year round. We have antiquated labs from the 1950's and a faculty that is still braging during class time about how they took on the administration during the Vietnam War but is scared to tackle the real problems of today. If you were considering going to this school think again and go anywhere else even a good junior college is one step up from this school . I hope they loose acredidation as it might wake them up.
  • With free software, all software should be free (gratis and libre) but the support and modifications of that free software can be the for-pay industry.

    It ought to be similar with education. All the tangible parts of education should be freely available. All of it.

    - The student's homework, essays, research.
    - The lesson plans, the lesson materials, lecture videos.

    No copyrights, no patents, no special cases.

    The real value that is added is with the educational process itself. The classroom time, the study groups, the environment, etc. Oh, and the scrap of paper you get that says you paid a huge amount of money and you are now eligible to compete for a job.

    Professors who worry about "cheaters" (exercising their free speech rights) are just too lazy to change their lesson plan every year. They shouldn't have a job.
  • Kyle, I heard about your blog from Cay Horstmanns post (http://weblogs.java.net/blog/cayhorstmann/archi...) and I looked at your TicTacToe code. My honest opinion is that its ok for an early novice, but it will certainly not help you get a job. Most Engineers that I know would tear your short piece of code to bits. Lastly, I understand your professors point of view but he should not have threatened to fail you; that is complete bs. Good luck to you in the future.

    Paul
    http://twitter.com/mondain
  • MoFoQ
    I don't agree with Prof Horstmann's conclusions, at least not a hundred percent.

    In JAVA, yes, "if (someboolean == false)" may not be as "readable" but in the real world...especially if it's PHP and not JAVA....it's not a bad thing (of course it should be "if(someboolean === false)" instead for PHP since it doesn't have the same ordinal data types as JAVA).
  • Yeah I just went over and read what he wrote...

    I said something about that too. This was my first time doing Java, and I was learning on the fly. I didn't figure it out until a bit later that !var would work. If you go through the code from Project 1 -> Project [last], you can see a pretty strong progression of structure, syntax, and style.

    Thanks ;-)

    --Kyle
  • MoFoQ
    yea, and to a potential employer, the capacity to grow and learn is more valuable than an old dog who can't/won't learn new tricks.
  • Amen!

    --Kyle
  • Hey Paul,

    Well, I agree. I had to take down the problem descriptions and things associated with them for the moment to prevent Beeson from having any valid claims on this...

    But if they were up, it would have been obvious why this is kind of hacky code: we received a handful of assignments at the beginning of the semester and had to solve them in a week (maybe two) or we'd be dropped from the class. Along with the rest of the semester's activities, you can imagine why the code isn't that great ;-) The implementation of the Google PageRank algorithm [ http://projects.kyle-brady.com/svn/filedetails.... ] is probably more impressive.

    That being said, I'm really not expecting it to help me get a job. And if I were, I definitely wouldn't be pointing them to this code without some sort of context, the way you came across it.

    Thanks for the feedback though

    --Kyle
  • i am posting a link to this debate for the students visiting my site. how great that you maintained a sense of calm and wit during this. ludicrous is the right word.
  • Nice Blog...interesting "CopyFight" with the Professor...I am old school "did not finish my PhD" back in the early 90s...my thoughts on this issue: the old model of higher education "Ivy covered brick structures" is fast changing...Open Source and online publications first changed the newspaper media, and now the intellectual world...no one in their right mind wants a hunk of dead tree thrown on their lawn @ dawn with news that is one to two days old...a rather failed business model...now in intellectual circles research is undergoing a massive 360' degree about face...I feel it is all for the good...err remember those Monks in the Dark Ages who held all the books in the World in their libraries...books chained to the desk..and they decided who "got to see them" or some rich Lord or Baron in a rather smelly castle decided who could read what book or research document...just like the printing press changed all that muck...online publications (including this rather well written blog) have changed the information systems of the third planet back from the Sun...good luck and may the force be with u...
  • Hey Kyle, SJSU CS Alum here again, I seem to recall some clause (if memory serves) somewhat CS specific regarding any code/invention created by the student as part of a class or similar was some sort of work product with ownership going to the university. Maybe Im pulling out of my hind end, but Im sure I saw that somewhere sometime, maybe not at SJSU though. I figured you might have come across something of that nature during this incident, or may it didnt apply in this situation, curious if you came across anything of the sort?

    B- SJSU BSCS 2007
  • I never signed anything to that effect, nor was I told about it.

    I also feel like it would have came up when Judicial Affairs came down with a proclamation. ;-)

    From what I know, it's research universities and private schools that tend to do this... not so much SJSU.

    --Kyle
  • ivo
    It's physically impossible to prevent the professor from giving you a penalty for causing this trouble - he can just "be in a bad mood" every time he grades anything you do.
  • Are you dumb?

    This is code, so there's really no subjectivity. It works, or it doesn't.

    And, do you really think, after all this, I'm going to put up with being graded down for bullshit?

    Please.

    --Kyle
  • SJKim
    This is an interesting issue. I went to a rather expensive private university in Boston area and had the priviledge of TA-ing for one of the really good professors. As part of this class, I had to develop all the assignments. It was definitely more work than reusing past assignments, however, at the same time, it made us constantly evaluate the purpose of the assignment.

    We weren't as focused on whether students could copy the code but more on whether they were able to internalize the concept and employ it in a different setting. This isn't always easy but it is worth it both for the teachers and the students. We were always able to hone in on the challenging topics (based on the questions from the assignments) and focus more time/effort helping students learn.
  • Hey Kyle,
    Saw it got slashdotted and as a responsible alum might, had to come by and offer my congratulations! When I arrived in 2003, budget cuts had forced senior tenured professors back into the classroom instead of TA's doing that work for them, they were generally pretty grumpy about it. I think this may be a vestige of that along with an evolving digital age. I have to agree this was definitely a case of academic laziness on the part of Prof. Beeson, and academic dishonesty and immorality with the threats. That said, I understand his concern as being at least maybe half heatedly legit although his actions sour his motivations. He was one of my favorite professors, through all this I hope its not lost he is not a bad man, nor do I think he is a bad professor, in fact one of the better professors on offer at SJSU imo. He is probably too close to the situation to appreciate that the code generated from his class was something you felt exceptional or otherwise worthy to be included in your online portfolio which reflects very well upon him. I was able to learn with great success in a couple of his elective classes that have me growing an amazing carrer by over-delivering my pay and experience grade due in some small part based on my time in his classes. Please, by no means, am I trying to in any way diminish his actions as anything other than wholly inappropriate imo, just dont throw out the baby with the bath water I guess. Once again congrats. Hope to meet you in the club next time I run through.

    Bryan- BSCS SJSU 2007
  • Markos Nt. Apostolidis
    I am a Professor of computer science from a private university in Greece, EU (cooperating, as a franchise, with a British university) and I do not allow my students to post their answers to homework questions online or otherwise make their code available to anyone else. The code written for the purposes of education is the intellectual property of the university or the professor (depending on who wrote the initial homework questions). The reason is simple: if students were allowed to post their code, we (the professors) should change our questions for each new class, something we have no intention of doing as it is time-consuming and easily avoided by treating the students' answers as our intellectual property.
  • A.P.
    Mr. Apostolidis, you are wholly in the wrong. I too am a teacher (both at the high school and college level), and I would never dream of asserting copyright or IP rights over my students' work. At best, your argument is profoundly lazy on both a professional and intellectual level. I go to the effort of rewriting exam and homework materials for every new class, and consider it part of the job. I see no reason you shouldn't do so as well, or at the very least, reuse materials on a rotating 5- to 10-year schedule.

    Frankly, I don't think any teacher or professor who would espouse that point of view belongs in the profession, because whatever your professional qualifications might be, your argument is a betrayal of some of the fundamental premises of a liberal education, and has no place in such institutions. Shame on you.
  • Ah, but he's in Greece.

    Not exactly known for being "liberal", is it?

    --Kyle
  • A.P.
    True, though I mean to use the word "liberal" specifically as pertinent to those principles of education that come from the classical liberalism of the Enlightenment -- which don't necessarily map onto present-day political liberalism. (Having said that, I am also a liberal in the political sense, and damn proud of it.)

    And Greece does have a strong authoritarian streak, which is an unfortunate irony all things considered...
  • Exactly one of the points I was making.

    Congratulations on having a horrible point of view.

    --Kyle
  • Meh
    Hey,

    Good job but for the sake of not coming off as a ponce, learn to write in simple English and never brandish a thesaurus and dictionary like weapon in the future it just lessens the impact of your writing.
  • Lol?

    Simple English? Brandish a Thesaurus?

    I hope you're either foreign or in middle school, because otherwise you have no excuse for being stupid. This is one of the simplest-written pieces I've done in a while... just because you're too stupid to understand it doesn't mean it was written at a high level.

    Maybe you should learn to carry a thesaurus and dictionary with you at all times to translate what you don't understand.

    --Kyle
  • MoFoQ
    yea, I had Beeson too, not one of the most "pleasant" characters and I guess after this, can definitely be considered as one of the "old dogs" who doesn't understand the desire to post your own work for the public good.
  • I had Beeson for windows programming in Fall '08 as well as other classes and posted all of my source code also. I guess I'm just lucky he didn't know about my website ( http://kylewilson.info/2008/10/09/windows-progr... ). I found your article via Ars Technica http://arstechnica.com/open-source/news/2009/06...

    This whole thing just reeks of laziness to me. Can't be bothered either to change part of the programming assignments from year to year or even to check carefully for plagiarism compared to previous submitted assignments. I'm glad Judicial Affairs ruled on your side.
  • Thanks.

    I had two things going for me that probably didn't help... the first being that I have a Google PageRank and show up when you use the right keywords. A more probably reason, however, is that a student found out about what I was doing, wasn't happy, and could have easily told Beeson.

    But I know I'm not the only one ;-) The others just weren't discovered.

    --Kyle
  • Joe
    This is obviously an act of academic dishonesty. From section 1.1.7, you may not aid others in cheating. Whether or not that was your intention is not at issue. You know---in fact, it seems to have been part of your motivation for posting your solutions---that professors reuse assignments. Thus you also know that unless the professor discovers your solutions and changes his assignments, your solutions *will* aid future students in cheating. What you have done is to blackmail a professor into teaching the way *you* think he should teach, and then to claim that you have been treated unfairly. Professors have a hard enough job without having to deal with issues like this; if you tried to blackmail me, I would respond explosively too.

    *You* should be ashamed.
  • Kyle, you don't have nothing to be ashamed of. You are the one in the right side here.. this guy Joe is an absolute academic dishonesty... hopefully one day someone will kick him from his position, cause if he is a teacher.. he doesn't deserves it at all. And yeah... what a baseless argument.

    Kyle, thanks for giving that hard fight! Very nice and polite answers, and congratulations on your victory for knowledge freedom :)
  • alex
    I think I agree to an extent with Joe here. Dijkstra's algorithm and Binary Search Trees aren't going to change much from year to year, so I think it's unfair to call it lazy to reuse assignments.

    Now, every year that the class is taught Beeson has two options. Make a minor modification to an assignment or completely rewrite it. If he opts to make a minor adjustment, then a student who has access to the previous years answers can simply tweak the source code to match the new behavior. They don't have to fully understand what they're doing, or why the algorithm works. They just need to figure out what part of the .java to hack and then they learn nothing from the assignment.

    It seems reasonable to not want to have to rewrite assignments every year. The algorithms aren't changing year to year, and students aren't going to learn more from year 2010's version of the problem then they are 2009's. This is an intro to algorithms course, not a bleeding edge research course where the curriculum is going to change every year based on new research. The basic algorithms this year are going to be the same ones that are being used next year.

    And then there's the question of how much you're actually helping people by posting your answers. For me, the actually having to figure out how to translate the psuedocode into real working code, and understanding the concept behind the algorithms were the useful skills. I don't believe that post your source code aids either. Learning to put down an algorithm from the psuedocode is something you learn through doing. Once you learn that skill you don't need the answers from someone else, because the answers are all right in the book. And in the case where I couldn't figure something out I went to Beeson's office hours and he was able to help me figure out what I was doing wrong.

    It might be useful to other students who've taken the class to see another approach to the problem so they can see how others did it, but you can just send emails back and forth or talk about the problem in the CS club room to do that. Realistically, I doubt many people outside of the people taking the class are going to be very interested in your particular implementation of the Bellman-Ford algorithm, and the people who are taking the class would get more out of the assignment if they were to figure it out on their own.

    I don't disagree that you have the right to post your solutions on the internet and be a smug jerk about it. You're in the right here, but you're still a smug jerk at the end of the day. If I were in your situation I would take down the answers. Not as matter of freedom to do what you want with your code, but as a courtesy.
  • I don't even care if posting the code will help other students... It's his right, Period. But, you are just trying to justify a bunch of lazy and mediocre teachers. In fact, there are a tons of ways to know if a student copied a code, but it's just teachers are lazy and they don't even check the code.

    You can do when of things to reuse a homework: Modify the statement in a key point where you can recognize a new implementation of the whole algorithm or a deep understanding of it. If you can't get to that, then, add something else to the homework, something else that requieres to know how the algorithm works.

    If you just want to use the same homework, well... chances of cheating are always there, he can even pay another student to do it's homework for him.. It doesn't matter.. it's the same shit, if you want to cheat, you cheat, however you want. Now, make a good list of question, regarding the implementation of the algorithms, and seat with each student, ask each a couple of questions to see if he really understands the code. ASk the student to turn around, break the code at certain point, and ask him to fix it. Ask him for details of implementation, why he thought of his implementation of that way, etc. There is a plenty of questions you can do... and if indeed the student can answer them all, and fixes the code, and everything else is right.. he either made the code by himself or copied someone else's code and fully understood it. If he fully understood it.. What's wrong? How fucking cares? He did what he got to do, understand the whole thing and that's what really matters.. Someday at work he will have problems trying to implement the algorithm and is going to regret about having the code copied. Even if I implement an algorithm myself, and i'm going to use it 10 years later, i'll have to reread the whole thing again and understand it once again, but if I understood it the first time, i'll be easier the second.

    Just stop justifying lazy teachers.. teaching is such an important profession, you need more than a Ph.D to be a teacher, you need the feel to be a teacher, you need to recognize the important of your job, you must give a lot of time to your classes because that's your job, what you are paid for.

    So.. Alex don't come here to call someone "smug jerk" just because he wants to share his knowledge, you are the real smug jerk trying to justify things because you are a lazy person and just think of knowlegde as a matter of doing a homework.. how naive.
  • Whatever.

    I'm not being a smug jerk. Just doing what I want with my property, as I'm allowed to.

    I'm not taking down the answers... courtesy to who? The Professor?

    Please. They're paid to work with students, and it's not really my problem if this means he feels he can't reuse his assignments each semester.

    --Kyle
  • Well,

    I'm going to go ahead and guess you're a CS Prof. at SJSU trolling here.

    And I'm not going to even counterpoint you, because your argument is baseless.

    --Kyle
  • Joe, that is an absurd assertion, especially after the SJSU Judicial Affairs Office agreed with Kyle's position. A professor teaching a course should, as a matter of good practice, update assignments after each term specifically to prevent plagiarism, and also to keep course content relevant and current. Reusing assignments year after year is intellectual and academic laziness, a disservice to the students and a failure to maintain doctoral rigor. Additionally, peer reviewed solutions to any problem in a foundational course are widely available on the Internet, so it makes little difference if an assignment is posted publicly by a student after the due date. As long as a student gives proper attribution, uses peer reviewed sources and does not plagiarize, I don't care what they read or where they get their ideas. We (academics) are trying to teach problem solving and the student's work will speak for itself. There was no blackmail here; this was an honest difference of opinion and Kyle prevailed (and conducted himself admirably).
  • Jikim
    Congrats on winning your "fight." Hopefully the outcome will cause more Computer Science majors to post their code online. Honestly, I never thought about it as you did. I always just hurry and try to do the hw/project, struggle, and just stash it away in some dark corner or trash can so I never have to see it again. I think your way is more helpful though. (:
  • Thank you, on behalf of student everywhere. It's absurd that so many professors have been able to remain stagnant in the way they teach their courses, such that students are nearly restricted from learning anything directly applicable to their field.
  • Poor Dr. Beeson. If he hadn't responded in the first place, he wouldn't have helped make his test answers so famous.
  • This points out, in a loose manner, to a long standing concern that I have had with how computer science is taught. I have been out of school for a long time, so it is possible that I am out of touch with reality. But, it seems to me that students are an underutilized resource for the open software efforts such as LINUX.

    What I would like to suggest is that student assignments be based on solving a current issue, versus rehashing prior projects. Essentially our current approach is to re-invent the wheel. What I would suggest, if LINUX does not have driver for a printer/monitor or other device, why not have that as an individual student assignment and/or class project? It would be a win-win approach.
  • Donkey Face
    and now Hacker News
  • Noted, thanks!

    --Kyle
  • M. Heer
    I have enjoyed reading this story. As a teacher myself, I can see where the professor is coming from and the slippery slope you have set him on. As a former student, I can see where you, the creator and designer, want to display your work.
    I feel like he is fighting because he doesn't want to make more work for himself... Coming up with new assignments every year so people can't just copy your work. I applaud your fighting for what is right. Change is the only thing that is constant, and you are forcing him to re-think and modify the thing he has worked hard to create.
    The world will be better because of this. It just means more work for your professor. But he's a smart guy, and he will adapt and overcome. Good for you for sticking to your guns! I wish you the best of luck in the future.

    M. Heer
  • student_a
    All this tussle for some basic algorithm recreations? I bet you think you're the man now. You need to learn to respect your elders, son.
  • js
    @student_a It seems that it was the prof that started the "tussle". And from what was posted I think that Mr. Brady approached this situation in a polite and respectful manner.

    But the point is that profs should not be able to stop students from posting their code solutions online, or penalize their students for doing so.

    Way to hang in there Kyle!
  • I actually have done the same, all my old homeworks from CS classes are available in my public subversion repo. I can actually tell when certain assignments are given out each year because I see a huge spike in Google referrals to those pages with keywords that indicate people are clearly trying to cheat. I can see his argument that it can dangerous if the professor isn't smart enough to add slight variations each time they reuse a problem. Of course students are usually far more industrious when it comes to cheating than to actually doing the work, and they will find old answers even without the aid of the Internet. Luckily these specific assignments are not only different each year, they are keyed to each student.
  • Jonthecomposer
    Great Post!!!

    Some people are lazy. I'm not just talking about Dr. Beeson or any future student that wishes to copy code. But here's the deal:
    1) Those whose code has been published knowingly have a much easier time knowing when someone else copies it. So they are MORE protected.
    2) Just because people can find the answers doesn't necessarily mean they will copy them or that the professor must "retool" his lessons every year.

    I've taken programming courses and, unless you know what you are doing, it's a VERY BAD thing to try to copy. Because once questions or a test comes, you're just lost. Then guess what the teacher knows you've been doing if your "work" is great? Alternatively, if you HAVE learned what you need to know and you find you must look an example up, you'll be smart enough to simply apply the logic to your own code rather than copying it! Either way, it means that the teacher really isn't in much jeopardy by letting students post code.

    Finally, I really don't like all of these peoples' hard-line ideas about copy protection. Some of it is just ludicrous. I mean, why is it that a patent (something that could potentially earn an individual or business billions more than a copyright) is up after only 20 years, but a copyright is basically forever? It has to do with money, big business, and lobbying groups. Yeah, try to lessen the length of a copyright with the RIAA around--- and try to extend the years of patent protection when the military needs to borrow the tech!!! Not gonna happen.
  • Congrats on the victory. Always good to see when common sense prevails.

    BTW you made techdirt.com as well.
  • Jorge Reyes-Spindola
    Dear Kyle:
    One thing that I believe really helped your case was that you were articulate and polite in all of your correspondence. You stated your points clearly and concisely without accusations or name-calling. Would that everybody be as polite as you. Congratulations on your victory.
  • True, and thanks.

    However, I'm not always that polite. When it comes to legal situations or other important issues, I am, but I can fly off the handle just as easily in other situations.

    Just wanted to point out that if you look hard enough, you'll find I'm not always that polite ;-)

    --Kyle
  • Rob Williams
    Excellent! Thank you for having the courage to act and then following through with it. I especially thank you for making it public, because such struggles need to be known to establish precedents and to encourage others.

    I also applaud Dr. Louden for his sensible, measured response and eventual follow-through.

    Dr. Beeson should be ashamed, not because he held a different view, but because he actively, emotionally vilified you in the process. Such behavior reflects very poorly on himself and his institution--that is NOT the academic spirit of inquiry and debate that should dominate such interactions. Instead, such behavior is typical of an authoritarian police state. It makes me think of the cops that recently tazed the 72-year-old grandmother or the tiny Chihuahua (and then shot it).
  • Alex Gartrell
    Your introductory-level Java is unlikely to wow employers. If you want to do that, you should work for an Open Source project or on a real project. But more power to you for making life harder on a guy who tried to teach you something. You really kicked "the man's" ass on that one.
  • Why bother? It seems like the fight was for the sake of a fight. I mean, is it THAT important that your homework were online? Why not just show future employers with a portfolio? (generally speaking, I don't think employers after graduation will really care about 2nd year homework assignment code)

    As a side note, I think it should be ok for Dr. Bresson to reuse assignments. If he comes up with an assignment that really teaches students, why should he have to change it every year? Don't get me wrong - I totally think that you posting the homework is fine and should be allowed...I just don't see what the point is of making such a big deal about it.

    To further this point, I am even more liberal than you and believe assignment answers should be posted by students before the assignment is due (definitely considered cheating currently but I don't think it should). I support this website http://www.studypipe.com that actually allows students to anonymously share answers online.
  • Ok, just reading some more of these comments. I can see that the principle of it is important - so good work. I can understand the reasoning for sticking up for yourself.
  • Andrew
    I find it startling that this issue arose at all. At this same institution, it is common practice for students to retain copies of their classwork for use in personal portfolios. If an art instructor indicated that students could not share the results of their efforts on assigned work to anyone outside of the class, post photos on Facebook after they had been submitted for course work, etc. there would be an uproar. How is code different from artwork, essays or mathematical proofs?

    I suspect that too many instructors rely on reuse of homework exercises each time they teach a course and struggle with the level of plagiarism this practice generates.
  • trolley
    No comments in your code...tsktsk! ;)

    Good for you for sticking up for yourself.

    I like your SVN web interface. What software is that?
  • Yeah, well I tried to comment in the beginning of the class, and gave up... we had one of these projects due every week or so, and I had to move to fast to be able to care about comments. ;-)

    I think I did a fairly decent job of making it "readable code" though...

    The SVN UI is "WebSVN": http://websvn.tigris.org/ It's made by the same people who do TortoiseSVN and a bunch of other stuff... it's pretty cool, and very easy to setup.

    --Kyle
  • kjinx
    Re: michael_dorfman -- "...... All that was accomplished is that the professor now needs to spend time every year retooling all of the homework problems so students can't easily copy from the now web-published version of) last year's answers."

    Which is precisely why the professor raised such a fuss in the first place. Having created these assignments once, he did not want to put in the "extra?" work to generate new ones (I speak here from experience having been a prof myself). It's just "academic laziness" disingenuously masquerading as concern for "academic Integrity". He might have approached the issue with the student by explaining his concern about having to redo the assignment (ie. "just been honest"), instead he attempted to bully the student with threats. The student stood his ground ... excellent .... and learning occurred, to wit: "Do not let authority figures bully you, remain respectful, but stick to your guns when you believe you are in the right." Could very well be a more valuable lesson than anything having to do with coding.
  • Bob
    Well said, Kjnx. As someone who has taught graduate classes I can tell you that it can be a lot of work to create new assignments every semester, so from that point I can see why the professor would not want the results posted. However, the professor in question should have just ask nicely, been honest, and explained his reasoning. But instead of trying to bully his student under a serious threat of academic integrity. This action should be noted in the professors record. I don't mean to say the professor should be disciplined for doing this once, but it is a serious breach of conduct if this is a normal pattern of behavior.
  • ForksNKnives
    I would tend to agree with Mr. Dorfman. I appreciate open source as much as the next guy, but I certainly understand the professors point of view. It is not a matter of current students looking at your bits of code, but future students. Now because the answers to his assignments are public, he is in a position where he has to make all new assignments each course session. As far as being able to show your code to future employers at east, there are obviously simple ways to accommodate the professor while at the same time keeping your code available for others to view at your discretion.
  • Furthermore, I think the fact that Dr. Beesan now must create new assignments for his courses is a good thing. As a college student myself too often do I find myself thinking that professors are simply using assignments and paper topics that they have recycled for years. Sometimes forcing creativity and change is a good thing. I commend Kyle for not allowing Dr. Beesan to simply re-use assignments over and over again.
  • I'm on the fence about the overall issues involved here. But you must see the difference between pressuring a professor to update his assignments and making sure that no assignment can bear even a passing resemblance to a previous assignment.

    By the way, your commendation is exactly the opposite of what Kyle himself is saying: that he never had any intention of making it easier for students to cheat. You're admitting to the potential for future shenanigans, even if Kyle isn't.
  • Yes, if the goal was just to make code available for future employers, there were other options.

    But this was also about me being able to do what I want with something I created... my property, my rights, my decision.

    --Kyle
  • I just posted over a Boing Boing, as someone who took CS146 and Dr. Beeson's class I give you a big pat on the back as well. I thought about doing the same after the classes ended, some of the codes I thought I did well on or I thought had use outside the classroom but stopped because I did not want to be helping cheating.
    But by putting the ground work you have opened up an avenue for those tho wish to post their code can and I think that is great.
  • Thanks!

    --Kyle
blog comments powered by Disqus
Kyle Brady: Blog
coherent thoughts on diverse topics


Site Navigation:
About Columns Ethics Rules Contact