Student challenges prof, wins right to post source code he wrote for course

Kyle Brady writes, "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!"

Kyle's a student at San Jose State University who was threatened with a failing grade for posting the code he wrote for the course -- he wanted to make it available in the spirit of academic knowledge-sharing, and as code for potential future employers to review -- and when he refused, his prof flew into a fury and promised that in future, he would make a prohibition on posting your work (even after the course was finished) a condition of taking his course.

Kyle appealed it to the department head, who took it up with the Office of Student Conduct and Ethical Development and the Judicial Affairs Officer of SJSU, who ruled that, "what you [Kyle] have done does not in any way constitute a violation of the University Academic Integrity Policy, and that Dr. Beeson cannot claim otherwise."

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. Students work harder when the work is meaningful, when it has value other than as a yardstick for measuring their comprehension. I've always thought it was miserable that we take the supposed best and brightest in society, charge them up to $60,000 a year in fees, then put them to work for four years on producing busywork that no one -- not them, not their profs, not other scholars -- actually wants to read. Might as well get them to spend four years carving detailed models of ships from sweet potatoes (and then bury the potatoes).

And in this case, it's especially poignant, since Kyle's workflow actually matches the practices of real-world programmers and academic computer scientists: coders look at one anothers' examples, use reference implementations, publish their code for review by peers. If you hired a programmer who insisted that none of her co-workers could see her work, you'd immediately fire her -- that's just not how software is written.

Kyle's prof's idea of how computer programmers work is exactly what's meant by the pejorative sense of "academic" -- unrealistic, hidebound, and out-of-touch with reality. Bravo to Kyle for standing his ground!

How I Won a Copyfight (Thanks, Kyle!)


  1. Holy crap!
    I took that Prof at SJSU and that class CS146. You do some interesting stuff like a dumb down version of the google algorithm.

    So I can see why this guy would want to post it up, I have thought of doing the same in the past when I look over my code and some of the changes but stopped myself because I did not want to help cheaters.
    That being said, I dont see the professor or the school having a stance in this. The Prof should not be reusing projects as their has always been an underground code sharing groups at many universities so forced to changes things up is a good thing.
    Maybe now I should go back and post up some of the codes, tho, I must admit i did not do so hot in the class and I am worried my poor commenting skills will have me laughed off the internet =(

  2. More than that…

    The very job of an academic (in fact the reason they receive funding) is precisely so that they will publish in peer-reviewed journals thereby advancing human knowledge.

    Here was a kid that had the gut instinct to do basically the same and this hunk-o-crap of a professor wanted to stop him!

  3. The prof here was probably motivated by the antique notion that students should do their own work.

  4. The unintended consequences of this “victory” will be assignments that are less indicative of student ability, and more boring. I do not know the teaching load of a CS professor at SJSU, but between the state’s economy being in the toilet and the Cal State system being what it is, I assume it is relatively high…too high for a professor to have the time to tailor a brand new programming assignment each semester, with consistent difficulty and interest across semesters. The result will be rote assigments taken from books, possibly just optional assignments followed by a multiple-choice exam.

    The interaction between the professor and the student seems to have been badly handled by the professor, who should have worked harder to explain the reasoning behind the policy to the student rather than threaten him. (I say “seems” because we have only one side of the story.)

    I’m not sure how the student wins anything here. He was evidently a good student, by standing his ground with his professor he has now lost the opportunity to get a good letter of reference from him, and by going public on the blog he will likely alienate his professor’s colleagues, other potential letter-writers. It is hard to imagine that there is anything in the code for an undergraduate programming assignment, no matter how cleverly crafted, that would counter this loss, either with a graduate school application committee or with a potential employer.

    He seems smart enough to be able to step back, take the long view, and see if he can mend these bridges. I hope for his sake he does so.

  5. Have to say I agree with Ackpht, at least to some degree – while I think that sharing your code is a good thing simply on principle, it does open the door for serious academic dishonesty.

    However, I’m sure code sharing for CS classes happens anyway at most universities. I happen to go to a college (Harvey Mudd) where it pretty much never does, thanks to the school culture of academic honesty and our honor code, which people actually (gasp!) follow – the majority of disciplinary cases here are students self-reporting.

    Alas, freedom of speech is a double-edged sword, but I still believe that it must be preserved at all costs. Despite what problems this case may cause, those problems will probably be, for better or worse, a necessary catalyst for better policies regarding academic honesty.

  6. The professor’s load is 4 classes per semester or 3 classes per quarter.

    Students are cheating much more now than they were 5-6 years ago (I teach in the CSU, the system the CS professor is in). I spend a fair amount of time policing this, and it’s a real pain in the ass. I’m sure this was the motivation of the professor.

    Whatever it was, though, you can’t keep your students from posting their work online.

  7. I think you’ve pretty concisely hit on the reason that a good number of go-getters leave college before they graduate. They want to take all of that time and money and actually -do- something with their knowledge and skill. Regurgitating rote answers for tenure holders (or more likely their underpaid assistants) doesn’t prepare anyone for anything. Except the professor for retirement.

    I hope someone somewhere hires that kid out of college. And I do mean out, not giving him a chance to graduate, but paying him right now to do what he so clearly wants to do. I’ve found that after your first job, no one cares about your college degree anyway.

  8. When I went to NCSU several years ago things were bad enough in entry level CS courses that a custom application was written to detect copy pasta on submitted code…

    I think this would be one thing if we were dealing with a 400 level course doing significantly specialized code, a 100 level course is something else indeed. I have to agree with DR. He’s young and sometimes it’s better to build personal relationships with people than go it on your own.

  9. Behind this is the worry that a student is not really doing any work if they have access to someone else’s solution.
    This calls to mind the Turing test for working out if a machine is intelligent.
    In considering a students assignment ( e.g. their code for an project) should the rule be as follows?:
    If a professor can satisfy themselves that the student understands the points of innovation, the structure, the use, and the issues arising from the work they hand in, then the degree to which the work has been informed by other people’s work is actually irrelevant – the student has achieved the necessary learning.

  10. An interesting story, but beyond the prof’s self-interest there is the issue of IP. The university probably owns (or co-owns) the copyright to the student’s source code, and have a legal right to determine how it is used and where it is shown.

  11. First of all, I’m Kyle.

    Second, I’m not going to go tit-for-tat on all of these but I wanted to respond to the comment by Dr.:

    a) you would have both sides of the story if I thought I could post his emails word-for-word and not get a flurry of angry emails from him about it

    b) the point was not that the code was “clever”, but that I was able to accomplish the assignments. We’re not talking about “Hello World” type projects, but instead implementations of the Google PageRank algorithm, Dijkstra’s Algorithm, and others like it. Things that are actually hard to do… something an employer would like to know I’m capable of, even if it’s not especially “clever”.

    c) I have never had any intention on having “letter writers” as a side effect of my classes – I’ve always had to do things the hard way and on my own, so getting a job is not going to be any different. But even had I, this professor was not the kind that knew the students individually, and would not have been a good candidate for such a position in my future.

    d) the whole point of me defending myself was to set a precedent – I don’t roll over easily, and by doing so I managed to secure the freedoms of other students for the foreseeable future. If that means I have to sacrifice what a few professors at SJSU think of me, then so be it – this shouldn’t be offensive to them, and if it is, we wouldn’t have gotten along anyways.

    I intend to do this for all my CS classes through graduation, so this was just the tip of the iceberg and securing the ability for me to do so.

    Maybe the code isn’t that special now, but by the time I get to the end of the road, I’ll have a giant library of “yes, he’s pretty clever” code for potential employers to look at.


    p.s. I’m probably not responding to any more comments/criticisms.

  12. Two things:

    1) As a student I go to university to enlighten myself in areas of interest that I think will help pursuing the things I want to achieve in life. If I look at pre-made solutions I might be able to get higher grades but I also cheat myself. When it’s time to take the next step my knowledge gaps and lack of ability to apply what I (should) have learned will be sorely evident. On the other hand the world isn’t always a fair place and cheating oneself to a position has worked for far too many people.

    Looking at pre-made solutions can be a great help as long as I try to *understand* the solution. Say you have an oral exam in maths where you have to prove a theorem. If you cannot apply what you (should) have learned you will not succeed since merely writing the solution on the blackboard is no solution at all and no professor worthy of his/her title should let you pass without thoroughly explaining “why and how” of each step.

    2) If the professor has a problem with solutions being made available he is obviously not demanding enough of the students. Copycats will stand out as soon as any explanation of their solution is demanded by the professor since they will not be able to explain the “why and how”. Exams where you simply have to fill in a missing field to pass does not belong in a university environment. You should be able to apply what you learn and discuss the different aspects thereof.

    When I studied maths and physics (though, I’m a linguist nowadays :P) we *always*, let me repeat that, ALWAYS received the complete “official” solutions to any exam/assignments afterwards, since the solutions in themselves wouldn’t help you if you couldn’t follow the steps, the “why and how”. If you had put any previous effort into it, however, these solutions could be of great help for future studies.

  13. Kyle,

    You have a very sensitive trigger. Nobody was criticizing you, just trying to work out some context for the situation.

    I offer the rest of what I say (as a professor in a different STEM field, but who has taught CS courses) to you or to any other smart students at a similar stage in their career.

    If you bristle your way through your undergraduate career, all you will do is make your life hard on yourself. Other students will not be grateful for your work even if they appropriate it, they will react in exactly the same way as your professors do. When you are known as a student with an attitude, you will have fewer (if any) options for undergraduate research projects than your classmates, and lose that experience and credential.

    When it comes time to look for jobs, the employers will not be impressed that you have successfully completed your homework assignments. Good programmers are a dime a dozen. Employers will look for original work, but will count on your professors to do the job of drawing their attention to such work. They will want to know whether you work well in groups, but without the undergrad research project there might not be evidence for this. They will look for letters from your professors, because they do not have the time to look at the body of posted programs for all applicants, even those that have made the first cut.

    If you do not know this, then you have not had good career advice. Your school has excellent career counseling services, ask them what a job application in your desired field looks like, and what employers look for. Do this now, and not in a couple of years, since if you discover that I am right you now have time to adjust your approach to studenthood, whereas later that option will be gone.

    You can take this in the spirit of helpfulness with which it is given, or you can mistake it for an attack, or you can ignore it. I wish you luck whichever path you take.


  14. I’m all for the student publishing.

    That being said, it is a different breed of students in colleges and universities these last few years. It is, in all likelihood, the result of Bush’s No Child Left Behind crap.

    It is no pleasure to teach this new crop of students. I imagine it is even less appealing to be one of them, to be in the thick of this culture of apathy, cheating, selfishness, entitlement and aggressive ignorance. It can’t be fun. It can’t be satisfying. It must be pretty depressing.

  15. I lied, I am going to comment again.

    Dr: It’s not that I have a sensitive trigger… I was trying to help explain to you the motivations behind doing what I did.

    I understand what you’re saying, but at the same time I have my hand in a number of cookiejars that will impress employers. I won’t need the praises of a professor, or the benefits of some random undergrad research project (if there even are any, which is pretty doubtful given the budget cuts).

    I wasn’t in school for a bit and went job hunting for a few months right before the crash started this time last year… I know what it’s like, and I know what they expect, how they’re biased, etc. It’s part of why I’m back in school, so I can have a degree to keep them quiet about that.

    If you’re curious, subscribe to my company’s RSS feed (, and wait for the announcement that will come later this summer. Or just take my word that I’m like a Transformer, and there’s more than meets the eye.


    p.s. I know it’s not an attack.

  16. As a manager here’s what I take away from this story at first blush.

    The man is clever but no more so than other people who passed the same class. May not be a team player and might think he’s better than others.

    It would be nice to see this balanced with a great team project or two where the outcome was more than a class project. I’d like to see one where you were just part of the team and one where you show you can lean a team.

  17. Nah…those arguments about students doing their own work are bullshit, as are the posting of old exam questions.

    In REALITY, students with the right connections have always gotten ahold of old exams and home work questions. Professors have been able to ignore the fact that some students may have seen all the exam questions and others not, but it’s always been unfair.

    This levels the playing field somewhat.

    In addition, even if those arguments had validity, tough luck. Students DO have the right to post their own intellectual property in the US, so if that causes actual problems the “answer” can’t be to take away someone’s rights.

    In other words, the ends don’t justify the means, even when they do.

  18. Back when I studied Computer Science (back when the Internet was simply a glint in Al Gore’s eyes ;^) I had a very enlightened teacher – he made our final exams efforts to solve an actual problem of varying sophistication (based on level in class) and typically in a field of study we had little to no background in. The exams were not only open book, but open any book or other resource because, as Cory noted, that’s how it is in the real world.

    This was in High School, but the principle still applies.

    I remember one early exam was to write a program that drew an American Flag, using either text graphics or bit-map graphigs (we had TRS-80s and Apple ][s), and I took the opportunity to go out and research the ratios of the flag (size of stripes, length and width of “offical” flag, etc.), the proper ways of presenting the flag, etc. It could be argued that I spent more time studying the problem than I did coding the solution, but that is probably how it should be…

  19. Good for Kyle. Degrees shouldn’t be about box-ticking, and nor should they be about impressing putative future bosses. Education is a path and a goal in itself.

  20. While I’m glad for the victory over the ownership of one’s own source code, you kind of hit a nerve with the whole college tuition thing.

    It’s a sad world we live in. I thought the whole point of state universities was that people wouldn’t have to go into debt slavery to attend them. Not only has the price gone up far beyond anyone’s ability to work their way through like their grandparents did, but the financial infrastructure put in place to pay for college is little better than that which furniture stores and used car salesmen employ. On top of that, credit card companies are allowed unfettered access to students, few of which would ordinarily qualify for large lines of revolving credit a generation ago.

  21. “by standing his ground with his professor he has now lost the opportunity to get a good letter of reference from him”

    If his professor is a petty minded, spiteful individual who shouldn’t be teaching at any level.

    (I’m assuming here that disgregarding the minor personal grudge against the student the reference would be a good one)

  22. My programming classes in college were packed with cheating. Just about all of it was done person to person.
    However, cheating seemed to be a necessity in my professor’s classes – he really had no idea what was going on. He had taught ADA for years, and this was the first year he taught Java.
    One of the first programs I brought to him to figure out what was going wrong kept getting an output of 0 regardless of what went in. He looked at it, and said he’d have to look at it on a computer to figure it out.
    I mentioned this problem at dinner with my parents, and my dad, who only programmed during the early-to-mid 80s, told me that I had messed up one of my definitions, and exactly where it was.

    We couldn’t ask our professor for help, since he didn’t know what was happening. We usually had to check with each other and see if anyone had figured out how to get past different obstacles.

  23. I can so easily believe this.
    For starters Pipenta, the “new breed” of kids as you call them are tired of the system that doesn’t work for them (actually is counter-productive to being productive). Might for you so you can take your year long sabbatical’s and get paid your full salary while “researching” meanwhile the school frantically tries to hire more staff to teach while your out (and in turn driving the operating cost of the school up), but it doesn’t work for the students. I’ve been in a CS major for a little over two years now, at a pretty well known national college, and have participated in 0 of the schools “major” IT projects (they’re always handed to the fancy pants kids that have said “connections” and copy/paste code they find from the net, which we then sell to clients).
    As one person already mentioned, if you know enough students you can get your hands on any test you want, prior or forthcoming, doesn’t matter. Professors won’t admit this (because it would show flaws in the system of judging academic progress, thus everybody’s degree would be questionable), but it happens every day, and who knows maybe if you get more connected your graduate top of your class(and get that Ph.D in Medicine or Finance)!
    Many Professors keep recycling the SAME test over and over, semester after semester because they don’t feel that they should improve on it. I highly doubt they have any kind of curriculum oversight at ANY college.
    For example in my last semester I just learned how to use un-supported software (Frontpage2003) to create a website simply because my Professor “didn’t feel like he needed to re-tool his curriculum to new software because the class was method based”. Many of my classmates stopped coming to class about two months in when we were still being asked “what was HTML?”, which was belittling, but some people would chalk it up to a classic example of the “no child left behind” kids. Well when you administer the test based on completing tasks by only using the software then it’s not methodology based. It’s things like this that make this “new breed” of kids from the “no child left behind” slack behind and not do the work, because they feel that it is not important( more like conditioned to feel that it is not important). When your being made to learn something that the company producing it doesn’t even support it makes you feel like, um…your wasting time, money, braincells, and that your professor is a used car salesmen trying to sell you a busted education.
    I just can’t believe how privatized and vicious many publicly funded Colleges have become. I mean the UW has just signed a contract with GE to not let out any research done on their campus. If we kept isolating the academic community in this way will it still be?
    Schools are out for money, period, even though they get a good chunk from the government.

  24. I think this is a fantastic opportunity to re-evaluate the purpose of academic learning.

    Are the institutions there to nurture real learning, or are they there to teach kids how to sit tests?

    Are we to set our best and brightest 3+ years of busy-work going over problems that have already been solved – who then cannot tell anyone what they found out?
    I set myself research topics with the belief that I may actually learn something new. I’m sure many good students felt the same.
    We may have been mostly wrong, but to be told so directly (or told that anything useful we learnt could not be shared) surely encourages giving up and cribbing.

    Or are we to allow that “this is a solved problem, that is a solved problem (read about it here if it helps) but here is a real-world problem that needs research done on it…”

    I fully appreciate the learning value of nutting out a CS problem on my own. One of my best lecturers was the one who could guide us through an afternoon, then point out that “these arguments have already been made – go write some new ones”. Walking in the shoes of the great ones is part of learning (like the Gauss story). I love learning by making my own mistakes – and that is certainly part of learning to be a decent programmer. But nowadays I charge the big bucks by combining what I know and what I know how to look up. If I was averse to looking stuff up I would be terrible at my job. If smart people who had figured these things out before me kept their knowledge to themselves – the world would be a sadder and less efficient place.

    Wouldn’t it be great if universities once again became places where new knowledge grew and spread from, rather than where it went to be locked up and die?

  25. Timothy Hutton @16:

    The old carpenters mantra comes to mind:
    “Measure twice, cut once”.

    May I suggest:
    “Research twice, code once”.


    I think that you should ask Cory for a letter of reference. That would be worth something.

    Actually just give future employers the permalink to this thread. If they don’t hire you on the spot, they are not worth working for….

  26. the point was not that the code was “clever”, but that I was able to accomplish the assignments. We’re not talking about “Hello World” type projects, but instead implementations of the Google PageRank algorithm, Dijkstra’s Algorithm, and others like it. Things that are actually hard to do… something an employer would like to know I’m capable of, even if it’s not especially “clever”.

    These are pretty simple algorithms, and it makes the whole story far weirder to me. The teacher’s trying to prevent the publishing of code which is already so standard that it could be pretty much directly copied from an algorithms textbook, making approximately zero difference to cheating pupils. The student’s publishing code that no-one in their right mind would care to read.

    As a prospective employer, a pile of textbook coding exercises tells me little more than the fact that the candidate seems to have an overinflated view of what’s ‘interesting’ and ‘hard’.

    Perhaps it’d be fun to make next year’s coding project be a tool to detect plagiarism?

  27. Well, if Kyle was really a go-getter good student, he would come up with his own original problem, solve it, write the code for it, then post the solution on the Internet. He would then be godded and wouldn’t need a job at all.

  28. Professors have full discretion in writing recommendations or not: one needn’t adduce pettiness or anything else if they refuse. If I had a student who self-identified as troublesome (“I don’t roll over blah blah”) and who indirectly threatened to publish on a blog emails I’d sent them in confidence, then goodbye recommendation, even for Einstein Jr.

    I also don’t think prospective employers would look too kindly on the “piss me off, I’ll publish your emails” meme. Not professional!

    That said, Kyle, go write your own ticket and be a fabulous whatever: you’ve got skills, and life will (presumably) take care of the rough edges. Good luck to you! :D

  29. @DR
    What you are prescribing is ‘remain in your flock, sheep’. While that is good advice if you really need to hide in flocks, it definitely isn’t the advice you should be giving to all your students. The only time in your life you have the werewithal to take on big, seemingly foolish challenges is when you are an undergrad. If teachers start dumbing down students at an age when the student can make the most difference, colleges will keep flooding the market with sheep, and we will have the kind of Management graduate buffoons that run Wall Street these days.

    Kyle, you absolutely did the right thing. Never sacrifice principles for convenience. At the end of it all, how much you earned will matter little compared to what you did that defined you as a person.

    Sane people never amounted to much through human history. The only role of sane people in humanity is to sustain enough occasional diversity that sufficiently different lunatics can be born.

    If you are not radically different from your peers, you cannot bring about change.

  30. Whether it has any future effect or not, this fellow Kyle did what he thought was right. Good for him.

  31. too lazy to read if anyone voiced this (if they did, i second that)
    my concern with this story is whether students that publish school work as own are making it clear enough on the shoulders of which giants they stood. and the claim that its well “understood” is not enough for me. its not just the issue of credit, but that in the end, the students contribution needs to be clearly discernible form the assignment and intellectual resources that contributed. i have often maintained that the beauty of “yankee ingenuity” was identifying the problem. solving it is the work of engineers. elegant solutions deserve praise too…so in this case, since we’re talking an engineer – then at least it is an issue of proper sourcing as first step. and when done properly, nothing to see here.

  32. Cory,

    I am a CS dropout, though not for ever failing a programming class. My dad started teaching me BASIC on the Trash-80 when I was 5 years old. I have a comment on “rotework.” I agree that students are more motivated if they think that their work may be meaningful, but “rotework” will increase the looking-up of solutions even as it makes it less necessary because such solutions are easier to find. (Tower of Hanoi, for example.) Such cheating is not only a special-creative-assignment kind of problem.

    If this is “cheating”, then it exists for nearly any solution. If this is “research”, then the student has indeed added to their repertoire. I don’t see a problem with the student finding solutions wherever they can. It’s an efficiency skill. I also see the need to stimulate true creativity.

    One of my very first CS teachers challenged us to create an encryption/decryption program. He asked for only a simple letter substitute, but spoke a bit about famous encryptions. What I did was break the message into a bit class, create a pointer and spin it, insert random numbers, etc. It was crazy complicated and I was quite proud.

    Thus, an interest in encryption was planted. Years later, I learned that what I had created was called a “one time pad.” While they are quite secure, they are not that practically useful. Public private keys are better, but I would never have known even that if that early teacher hadn’t set us loose with dreams of the next great encrytion.

  33. Kyle,

    I am a computer scientist and the hiring manager for my department. I have interviewed and hired dozens of programmers ranging from former video game programmers to kids straight out of college. Never have I looked online to see the source code of what they have written while they were undergraduates. What I do is examine their resume to see what projects they have completed and ask them penetrating questions about them to see if they know what their talking about. On examining your resume, I would be very interested in your google search solution but the only thing that I would gain by examining your source code would be to see if you write your code adhering to good structured standards.

    On occasion, I have given candidates programming assignments that they had 24 hours to complete (knowing they will use books, past work and the internet as resources). Only that source code would I evaluate because I know what it should look like.

    Now I do google the names of the people to see if there is anything unscrupulous about them. I bet future google searches of Kyle Brady will show you posting the solutions to all the programming assignments you received in college which I would view as unethical. I would also interpret this conflict with your teacher as you having people skills problems and wouldn’t consider you to becoming a part of my team of developers.

    Re-evaluate your priorities, Kyle. You may have won this little battle, but it will end up costing you once you start job seeking.

  34. @DMAN

    Sadly, the answer to your first question is “sit for tests, of course.” As someone who works in the area of math eduction for middle grades and high school, almost all curriculum being developed is aimed at high test performance. Some of us like to include content that makes students thing, but with the awareness that most teachers will skip over it and go straight to the voluminous standardized test practice provided. Teachers have little choice but to prepare students for high stakes testing based on often idiotic state-mandated curricula, and that’s what the students learn. Sadly, most of the students aren’t prepared for anything but test taking once they get to college, because they’ve been trained that way since 6th grade.

  35. @JDOLLAK #21
    That sounds like a class I took. The Prof wrote an old book on ADA. He was sadly out of date, but for a variety of reasons he was considered untouchable by the powers that be on campus. Was it a Data Structures with Java class?

  36. Here at Dartmouth College we give *prizes* to students for coding innovative systems that they want to share with the rest of the world. (Note: I’m not sure all these projects have actually been released as open source, but that’s very much the culture of our department.)

  37. Oh no! Authority figures telling the bright young person how he’s screwing up his future!

    Lord save us from this novelty.

    Do it your own way, Kyle. I’ve had people telling me how I would screw up my future at every turn, how I would regret my foolish decisions to burn bridges and do things my way.

    These people never seem to realize that Bridges to Nowhere are worth burning.

    It’s even more fun to achieve when you know how many people thought you couldn’t, wouldn’t, shouldn’t.

  38. I’m just curious how Kyle won the academic integrity battle. I don’t think there’s any question that a problem solution is a derivative work of the problem itself, or that spoiling clever assignment questions damages future students. I wonder if there are multiple personality conflicts going on here…

  39. Maybe Kyle won’t be able to get a job from those who support conformity.

    Maybe he will be forced to innovate and succeed on his own.

    Those who can do that are the people who hire people who hire the sheep that keep the innovations rolling slowly along until the next innovation.

    my captcha “Yawned Franklin” how appropriate. He made big bucks reprinting(copying) government documents.

    It looks like the position of posting others work with a short note is taken.

    Maybe he will have to post stuff on the web and get a lot of people to search for it so that some who would have never looked for it or him will see it and he will get some good out of that.

  40. Kyle, I see where you’re coming from, but I see this backfiring on you. Professors will be very wary of you now and I agree with previous comments that most students don’t care where the code came from–or how you won the right to post it. I’m not trying to side with the school or more specifically against you–but I do think that what’s in your resume is between you and the company interviewing you. Making this a public battle is going to give you a reputation for being combative and less of a team player.

    Boingers can tear me down for that last comment, but that’s what employer’s value. It’s a hard lesson in the real world because we’re brought up to believe in the underdog and those who fight “the man.” If you ever want to earn a living, the first lesson you’ll learn is the man pays.

  41. FYI-

    I have hired 75-100 programmers and engineers in my career.

    I do not give much credence to reference letters from academics, because for the most part the academic environment is too different than the real world.

    I will review the candidates past work, and have other engineers perform code reviews.

    But, the most important part of a technical interview is to have the candidate explain the algorithms behind some of his work and survive the scrutiny of peer review, and engage the candidate in a troubleshooting session.

    Granted your 100 level work won’t be the stuff you will show a potential employer.

    But, as an employer, your comprehension of the concepts and your ability to solve problems are the most important assets you bring to the table. Reviewing how well you solved problems in the past and how well you understood the solution, is my best yardstick for measuring your capabilities.


  42. I agree with Kyle but I really don’t think that undergrad code is going to do a whole lot for him when it comes to getting hired. Every CS major does similar things so what is it about your undergrad code that is different?

    With that in mind it would be more effective to become a regular contributor to an open source project. That would be code potentially used everyday as opposed to what you have done in your undergrad work.

  43. In design school, when you do a studio project (which is usually the same from year to year), they put the best examples on display so that students in subsequent years can see examples of what good work looks like. Doesn’t seem to have destroyed the learning environment.

  44. @ Antinous #39:

    Yup, I was just thinking about how my design work went into the student gallery and my grad thesis went into the library. There are entire courses on how to present the work you create as a student to the outside world, it’s called a “portfolio.”

    So how do coders show they know their stuff if they’re supposed to keep it all secret?

  45. #39 – why it’s almost as if there’s some sort of difference between a design project and a programming assignment!

  46. Our privacy policy doesn’t permit me to disclose personal info on commenters, but let me just say that there are college professors trolling this thread.

  47. @CinemaJay – I agree that Kyle sounds overly aggressive and honestly seems to have an air of “I’m so awesome you don’t even know” going on. When my company hires programmers, its more important to us that we get along with you and that you can grow as a developer, not what your source code looked like in school.

  48. I’m a CS prof. I’d welcome a student like Kyle in my courses – I like the feisty ones. Better than the ones who just sit there dozing off.

    All my programming assignments are open source. Usually, I pick an existing open source project, get the students to fix bugs / add features, and award bonus marks if they get their fixes accepted back into the codebase. We all win.

  49. I think being a “team player”, “professionalism”, and “recommendations” smacks of something other than what university is meant to be about: Academics.

    bradyk / Kyle:

    Never mind about the plagiarists, the professors who aren’t professing, the people who want you to be shaped into yet another ant marching to their corporate cubicle. If your work is any good, you’ll have to shove it down their throats.

    Far too many bright students get burned out (or worse, far too many not-bright students plagiarise their way forward) solving problems that have already been solved, coding algorithms the way their professor wants them coded (rather than the way newly discovered requirements suggest). Universities often don’t understand that by the time a CS student reaches them, they may have already produced /production code/, contributed to an open-source project, built their own low-level code, run their own forums/websites/systems – and may be a productive team member in the work force.

    Asking undergraduates to run old hurdles when the discipline itself is all about overcoming new ones, is essentially wrong.

    I hope your stand brings about an essential overhaul of how universities train CS students, and how they evaluate CS professors (COBOL programmers should not be stuck teaching x86 assembly as if it were RISC assembly.)

  50. why it’s almost as if there’s some sort of difference between a design project and a programming assignment!

    I would hope that they have a lot of similarities. The design process consists of accurately identifying the problem and creatively developing a solution. If programming classes can be passed by rote copying, why are they being taught at college level?

  51. #49, try applying that same line of thought to an undergrad physics lab course.

    Physics is all about discovering new things about how the world works.

    Why on earth should a bright young physics student be tasked with performing experiments that were done years, sometimes even centuries ago?

  52. @45 – They can always bring printouts of their projects to the interview or email it to a potential employer if requested.

    @49 – “Asking undergraduates to run old hurdles when the discipline itself is all about overcoming new ones, is essentially wrong.”

    I bet you can sing the “ABC” song by heart. I bet black belts in each karate school all know the same katas. Sometimes teaching methods that have worked in the past are still valid. Most times, actually.

    But that’s not the issue of the article. It’s not whether or not the kid invented a new quick sort. It is about academic integrity. Coming up with a unique problem that requires a student to use several newly learned data types and algorithms is difficult. Try it sometime.

  53. If programming classes can be passed by rote copying, why are they being taught at college level?

    for the exact same reason mathematics, chemistry, physics, engineering, medicine, law, etc… etc… courses are taught at the college level.

    1. If programming classes can be passed by rote copying, why are they being taught at college level? for the exact same reason mathematics, chemistry, physics, engineering, medicine, law, etc… etc… courses are taught at the college level.

      So…you feel that all of these disciplines are taught by rote copying of pre-existing material?

  54. @ sleze #55:

    That seems like a silly restriction to me. I don’t think I could even get an interview without putting my design work on the web these days.

    You mention “academic integrity.” I guess you missed the University’s statement that

    …what you [Kyle] have done does not in any way constitute a violation of the University Academic Integrity Policy, and that Dr. Beeson cannot claim otherwise.

    The mere possiblity of someone using Kyle’s work to cheat is a pretty lame justification for a “no publish” policy. Almost all acts of plagiarism borrow from published works. That’s no reason to keep every book, thesis, term paper and essay under wraps.

  55. It really doesn’t matter if it’s a “good idea” or not to allow this – I own the copyright on anything I create and I can post it online under whatever license I want (MIT, BSD, GPL, etc.).

  56. #60.

    So…you feel that all of these disciplines are taught by rote copying of pre-existing material?

    I didn’t say that.

    But can you pass an undergraduate mathematics course by copying? Let’s say you had a photographic memory and access to completed copies of every test and every assignment.

    Could you pass the course?

    Of course you can, unless the teacher is truly exceptional. Same goes with chemistry, physics, medicine, etc…

    Memorization, solving canned problems, and covering ground that was covered by greater minds centuries ago are all extremely important parts of the education process.

    You gotta learn to walk before you can run.

  57. sleze:
    I work as a database/admin/coder; My entire work existence is finding my company’s problems and solving them with IT and code. These problems range from “We don’t have enough budget” to “we don’t have enough clients” to “how do these clients accomplish this goal best” to the fact that someone typoed when inputting a database record five years ago and no-one has discovered it in that timespan, or an intern “proactively” did something they weren’t supposed to. I don’t even focus on the code I write; I am constantly re-using someone else’s solutions or parts of someone else’s solutions or my own previous solutions. Once I even wrote code from just a published paper’s abstract (they’d implemented an old algorithm in a novel way and that alone was enough to point me in the right direction).

    There are plenty of unique problems. Professors who aren’t /practising/ – and professors are meant to be practitioners – who can’t come up with new or unique problems for their students to take cracks at aren’t worth studying under. Rote memorisation doesn’t benefit anyone over age 13 – Anyone who is in a CS track is capable of accessing the amassed experience and knowledge and work of the hundreds of thousands of people who came before them, that solves the small / tiny problems that comprise part of their larger problem – often far better than they could if they had to re-invent the solution.

    The really interesting stuff in computer science – and computer science is as much about computers as astronomy is about telescopes – is in engineering ways that compel people to participate in the solution to your large problem, wittingly or unwittingly. The scope of what is a large problem constantly moves forward; In 1975 the large problem was “how do we fit our solutions into this limited hardware?”. In 1993 the large problem was bringing inexpensive easy-to-use computing technology to small businesses and individuals. In 1996 it was establishing a standard for secure digital communications. In 2000 it was managing the millions of legacy systems that were never meant to last as long as they have. Today the large problem is dealing with addressing a network of these millions of inexpensive easy-to-use computers, it’s how to deal with the limitations of production resources, it’s how to use them to reduce our energy consumption, it’s how to pry the crooks out of control of the millions of (other) poorly-designed legacy systems that were never meant to last as long as they have.

    ALWAYS there has been a focus on how to make systems capable of meeting the needs of HUMANS.

    There will be CS students who aim to hand-tweak code for embedded systems. They will either end up writing tools that help them and other do their job or they will end up learning to use those tools or they will be replaced. There will be CS students who aim to effortlessly recite every accepted solution to every small problem, when databases are better at it.

    The model of “Trust no-one and write all your code yourself” is outdated. The model of “Trust your fellow humans and write your code with their help” is the future.

    Good programmers are lazy. This is a desired feature.

  58. @17

    “when the Internet was just a glint in Al Gore’s eyes”

    Dear Snark,

    When you have done as much for the Internet as Kahn and Cerf, *maybe* you will be qualified to say something about someone else’s contributions.

    But when you minimize Gore’s role, you just make yourself sound ignorant.

  59. After reading many of the comments from those in the know about coding, it also occurred to me that the professor should have (if s/he didn’t) make the case to Kyle that there wasn’t really a need to fight for the posting of the code since employers are more concerned with ability rather than a “portfolio” to show.

    To some extent, it would seem that the prof. missed an opportunity to educate his student about the environment of his prospective career and not just the assignment.

  60. @61

    That’s right.

    “The three chief virtues of a programmer are: Laziness, Impatience and Hubris.” – Larry Wall, inventor of Perl

  61. @Bardfinn
    So what am I supposed to do when all the professors are that way? I mean, my school doesn’t teach ANYTHING that I would consider to be “high tech” (i.e. Nvidia CUDA tech, cluster computing, cloud computing, etc.). They mainly teach Linux admin courses or highly specialized courses such as “Intro to Python using Jython” (this is for a CS BA BTW). So what should I do? Switch schools? They teach nothing of AD or Terminal Services, nothing on Windows or OSX, just Linux. Which we all know, is not the real world enterprise (unless your enterprise is open source software, but then we can’t all get a job there). I just feel like there’s nothing I can do about it, I have contacted school staff about this and they act like they don’t know what I’m talking about when I say “Nvidia’s CUDA program”.

    How are us as students supposed to impress you as a hiring manager? You say posting code that we do throughout college isn’t impressive because it solves canned problems(i.e. not real world). Neither does Professor recommendations. Neither does being involved in undergrad research because it also solves canned problems.
    You wouldn’t hire us because we stand up for what we feel is ethically right at the time?
    So if one of your subordinates (but my boss) came to me and asked me to copy the code so that one day me and him could release the project before your company could, wouldn’t you want me to be ethical instead of having “bad people skills” in telling you about it?
    Bringing printouts of code to a interview is something I’ve never heard of before. You know that with the complexities of programming languages you CAN write code that LOOKS GOOD but runs like GARBAGE, if it even executes at all. I’ve seen code look text-book beautiful, and not even run.
    I do like the idea of the 24hr coding assignment, but without providing testing enviroment, and other control variables, many if not all of your employee’s may/may not have copied the code from places around the internet.
    Good thing to know that the management is about as competent as the employee’s it hires.

  62. I have a problem with those stating “posting the answers is unethical,” or something along those lines, without some qualification. Maybe they’re assuming we’ll understand their precise point, but I’d like to clarify that point.

    If Kyle posts his code in the form of “course CS123, assignment 16, question 1, the answer: bla bla bla,” I would consider that to be questionable. However, if he’s posting code with a few lines describing what he was trying to do at the beginning, then that’s fine. One directly facilitates cheating, the other does not.

    Cheating and facilitating cheating may be difficult to describe or define in concise terms, but Profs. should know it when they see it.

  63. Kyle,

    While I don’t disagree with you posting your code. After all it is your work. The university did not pay you for it, so you can choose what to do with it. However, you time would be better spent contributing to open source projects. I have over the years done hundreds of interviews. Only once did I look at the code someone had previously written, and that is because the company was considering buying a license to that code. However, I usually do look at the open source projects the person contributes to. That to me shows dedication and a real commitment to what they are doing.

    As for code you write for assignments. If you can contribute it to improve or create a good open source project, go for it. In the end what you are doing is not much different then an engineer that brings their final project to job interview. If it is impressive, why not.


  64. Anonymous @67: Find a problem that you think could be effectively tackled using massively multithreaded in-silicon GPUs. This might be some real-world problem, it might be the problem class of “how best to write code for massively multi-threaded GPU clusters” or “best techniques for porting classic massively parallel processing code to CUDA”. You might look at running a statistical study on available tools for porting existing classic distributed computing code to the CUDA architecture, focusing on the performance tradeoffs. You might make a study comparing CUDA to Cell3 to existing massively parallel distributed computing. There’s crypto keys to brute force at the seams and proteins to fold and SETI data to analyse. You might /even/ figure out some other problem that’s amenable to massively parallel distributed processing. Is the architecture good for alogrithms that decode spoken English?
    Write a proposal.
    Beat your CS department and Nvidia over the head with it until you get what you want.
    Thus the saying: If your work is any good, you’ll have to force it down their throats.

  65. It really doesn’t matter if it’s a “good idea” or not to allow this – I own the copyright on anything I create and I can post it online under whatever license I want (MIT, BSD, GPL, etc.).

    Except most of the work you do in college is owned or partially owned by the college.

    1. Except most of the work you do in college is owned or partially owned by the college.

      I’d like to see some citations for that. You could make an argument that the work that you do for a job that’s paying you might belong to your employer. How do you justify the idea that the work that you do for school when you’re paying them belongs to the school?

  66. Except most of the work you do in college is owned or partially owned by the college.

    Where did YOU go to college?

  67. #60 –

    If programming classes can be passed by rote copying, why are they being taught at college level? for the exact same reason mathematics, chemistry, physics, engineering, medicine, law, etc… etc… courses are taught at the college level.

    So…you feel that all of these disciplines are taught by rote copying of pre-existing material?

    Nope. Didn’t say that. Read your words. You implied that if a course can be passed by rote memorization alone, then it shouldn’t be taught at the college level.

    That doesn’t compute. If you had access to all the tests and homework assignments and had the ability to “rote copy” all those tests and assignments using a photographic memory or cheat sheets, do you think you’d be able to pass most undergraduate math, science, engineering courses without understanding anything at all about the subject?

    Usually, you would. It’s the truly exceptional teacher that would find you out. In most cases you’d pass with flying colors.

    We devalue things like rote memorization and working on canned already-solved problems at our own peril. These techniques are hugely important when it comes to learning the fundamentals.

  68. A lot of colleges claim ownership over their students and faculty’s work. This is mostly in case someone discovers a cure for cancer so the school can make money off it. It is similar to the idea that if you create something at work your employer owns it.

    Not all universities are like that but ones that are aren’t rare.

  69. @ JCCALHOUN:

    For graduate-level research projects, sure. But I’ve never heard of a college claiming ownership over ordinary classwork.

  70. I’ve reread the story, and the thread since my last post, and frankly the whole thing seems a little sad to me, like the remains of an auto accident that could have been avoided.

    People (including Kyle) have pointed to some realities, with which I agree: (a) Students should have the ability to use their homework as they please, when the assignment is over; (b) Even at the most basic levels, homework assignments should be creative, so as to interest and challenge the student; (c) Cheating in computing classes is rampant, and easy, especially when assignments and exams are re-used.

    However, as a professor (a) I have to wonder why posting the assignment was so essential to the student? (In my day we could only have done this with push pins through the little holes in the cards…) As others have mentioned, a non-public portfolio would have served the same purpose. Had the professor and the student managed a genuine communication, the former might have been able to persuade the latter that his reasons for the ban had some merit. (b) The reality is that in nearly any field it is difficult to come up with interesting assignments that effectively measure the student’s abilities. That’s why, if you pick up two Calculus or Physics or Data Structures books by different authors, you’ll see very nearly the same exercises in both books of the pair. The magnitude of this difficulty might not be apparent to anyone who has not been a teacher for very long (or at all). When you do find such an assignment you don’t want to discard it after just one use. (c) One way to avoid cheating is to not base the grades on these basic assignments, so that there is no incentive for the students to even look at another’s solution before making their own best effort. The reality here is that then students who need these assigments the most, the weaker students in the class, will simply not do them. I see this whenever I make an assignment or project or review session optional: 90% of the A and B students do them, 10% of the C or lower students do.

    Then of course there’s the problem of what to base these grades on that avoids these problems. In the ideal world, the professor gives the students individual projects and monitors/mentors them closely. That works well if you are teaching a single class with 10 or 20 students. If you are teaching 3-4 courses with 30 students in each this kind of individual attention is simply not practical, especially if you are doing your own research/scholarship to stay current in your field, and doing other service activities for your department and University.

    SJSU has a well-respected, effective CS program. Their faculty seem to have found a way to fulfill their educational mission despite the limitations of heavy loads and limited resources. Those posters who support the derailment of some of their practices should ask themselves if they are really so confident they have equally practical, effective replacements ready to take their place.

    1. I have a good friend who’s a college professor. All her stories about work boil down to two basic concepts. Half the students shouldn’t have passed fourth grade. Half the professors are just killing time until retirement. The great students and the great professors will love each other. The crappy students and the crappy professors will enjoy their collective nap. Put a dynamic student with a torpid professor, or vice versa, and the fur will fly.

  71. Frankly, I don’t really see any difference between posting the source to your undergrad introductory programming assignments and posting the answers to any other homework. It’s not like disseminating this is some grand contribution to CS knowledge nor is it something that will impress recruiters – frankly we won’t bother looking at it.

    When you do work on more substantive stuff (whether it’s school related or not), by all means share your source if it’s unique (as opposed to implemented by 20 other people a class).

    When I recruit students, I look for experience with extracurricular projects, whether it’s for a professor, open source, a side job or just some fun game they’re working on. It gives us both something substantive to talk about and gives them a chance to stand out from the crowd.

    BTW, kudos for using source code control – I assume you also use it during development and not just to store the final copy.

  72. just how many professors have been prosecuted for stealing student work and passing it off as their own?

  73. Re: “If you hired a programmer who insisted that none of her co-workers could see her work, you’d immediately fire her — that’s just not how software is written. ” If you hired someone who published your company source-code online, you would immediately fire them, and they’d probably end up in jail.

  74. I’d like to see some citations for that. You could make an argument that the work that you do for a job that’s paying you might belong to your employer. How do you justify the idea that the work that you do for school when you’re paying them belongs to the school?

    Most was probably overstating. What I do know is that I was told, both at the undergrad and grad level that the college I was at owned my work. I have some vague idea we were told that’s the why it works most places.

    At the undergrad level I went to a very large university and at the grad level I went to a very small specialty college. Both were state schools. /data points

    I admit, I don’t remember what the justification was for them owning my work. We bitched about it for, maybe, 2 days? and promptly forgot about it. It wasn’t something that ever became an issue for anyone I knew.

  75. The point isn’t about what an employer is looking for, or getting a good letter of recommendation from the prof, the point is that it’s Kyle’s code and he can do what he wants with it.

    It’s a matter of principle.

  76. What a bunch of lazy profs. Sorry, giving the same old tired problems every year just because you don’t have time to create new ones is lame. Trying to claim ethical breach over the posting of answers is pathetic and a waste of time. For the students who will cheat, they already have access to the answers regardless of it being “posted” or not. For the students who want to learn, your problems are probably too mundane and not worth the effort for a talented student.

    Good programmers are very hard to find. The current CS academic system churns out tons of sub par programmers. I’ve had as much success hiring self taught programmers as ones who are CS graduates. So your challenging assignments are far from adequate to teaching students the theory they so badly need to understand.

    I am sure Kyle will have several other professors to choose from for a recommendation so he need not worry about this one. Sure he may piss off all the profs in the program if they are the same, but then Kyle will be better off getting references from other sources. As the program is probably not so highly regarded as the pompous profs think it is compared to the likes of MIT or Stanford.

    I have taught a variety of subjects and like someone else said, having students do something like contribute to open source is far more instructive and challenging than contrived problems and course team projects that have the students only work with each other. In the end, programming as a profession is being held back by professors who think and act this way.

  77. I think the solution to “oh noes! Now they can plagiarize!” is similar to what we do in the humanities which is to make the assignments more plagiarism-proof. It takes more creativity but it is worth it.

    Of course it is easier in some fields than others. One of my favorite classes to teach has ethnography for their final project and they turn in their recordings. They participate int he conversations so it makes it harder to plagiarize. There are still people determined to try though. We did have one guy try to use someone else’s project and the tape was he and his friends very obviously reading a script.

  78. #79 DR:

    However, as a professor (a) I have to wonder why posting the assignment was so essential to the student?

    Because he was proud of it. Admittedly, this is a concept with which many practitioners (and professors) are wholly unfamiliar.

    No other justification is necessary.

    #63 Bardfinn: Well put. (You actually sound underutilized.)

  79. “I’ve always thought it was miserable that we take the supposed best and brightest in society, charge them up to $60,000 a year in fees, then put them to work for four years on producing busywork that no one — not them, not their profs, not other scholars — actually wants to read.”

    Well, thanks for playing, but that doesn’t really count as thinking. If I apply that logic to my discipline, I should simply abandon teaching, and any associated assignments, Newtonian mechanics, electromagnetic theory, relativity and elementary quantum mechanics. Nobody wants to read those assignments, least of all me. But going through them is essential to learning how to create quantitative models of real physical phenomena, and that underlies all of modern science.

    You call it busywork. I call it pedagogy. I’m not naive enough to pretend that they don’t share their work, but I’m not stupid enough to believe that the experience (even if it is repeating one someone else already had 200 years ago) is worthless busywork.

  80. Some fear that this is a door for a dishonesty for other students.
    In fact I’ve seen many students cheat but then they have no real understanding of the code so were catch up easily.

  81. “Why on earth should a bright young physics student be tasked with performing experiments that were done years, sometimes even centuries ago?”

    Because a bright young physics student needs to understand what he is talking about.

  82. after re-reading, I can’t help but think that many here seem to believe real world hiring decisions are based on reason.

  83. So let me get this straight. The professor did not penalize this student in any way. He never actually made a change to his syllabus stating that students were banned from posting their solutions to homework. He simply uttered, probably in a fit of pique, that he would have to start banning internet posts from then on–which he probably knew was going to be impossible even as he spoke.

    And on the basis of this big nothing, this student decided to make a public issue out of his professor’s annoyance and to take it all the way to the top, AS IF he had been harmed in some sort of way, just in order to humiliate his professor and prove what a big man he is. And then he decided to post his exploits all over the internet in a further act of self-promotion.

    Wow. I’m so impressed.

  84. TheCrawNotTheCraw spewed:

    When you have done as much for the Internet as Kahn and Cerf, *maybe* you will be qualified to say something about someone else’s contributions.

    But when you minimize Gore’s role, you just make yourself sound ignorant.

    Wow, first-off, you didn’t follow the quote I put under my comment, did you – it was a refutation that Al Gore did NOT assert he invented the internet, it spoke of his support of the development of the Internet. (In other, smaller words, it supported Al Gore version.)

    Here’s the link again – try reading it before you condemn me further, OK?

    Now, about this having to do “as much for the Internet as Kahn and Cerf, *maybe* you will be qualified to say something about someone else’s contributions.” Really, I can’t make a funny remark with a link to the truth until I’ve done as much “as Kahn and Cerf”? If that is the threshold for comments, why pick on me – I know of NO ONE that has done as much for the Internet as BOTH Kahn AND Cerf, so NO ONE has the right to comment on anything Internet related…

    I think you need to get over yourself and lighten up, this is a conversation, not an amusement park with little clowns in front of each ride warning “you must have achieved this much to comment on this thread” signs by their out-reached hands…

    Wouldn’t your threshold to comment have kept a certain Austrian Patent Clerk from ever commenting on various topics in Physics, since he hadn’t “earned the right” to comment?

  85. Antinous asserted:

    You could make an argument that the work that you do for a job that’s paying you might belong to your employer.

    That words “could” and “might” don’t belong in that sentence, at least not in America. It is common for engineers and scientists to be handed a single crisp dollar bill and asked to sign a piece of paper agreeing that the one dollar is payment in full for any invention the employee makes during their tenure with the company. Refuse the dollar, and your job search begins a new…

    There is a famous story about Steve Wozniak taking the first Apple computer to his bosses at HP and submitting it for their consideration as an HP product. He needed HP to officially reject the device before he could sell it, since they “owned” his inventions due to the terms of his employment.

    If a programmer works for company “A” and implements an accounting program, he has no right to take that same code and peddle it to company “B” – that is stealing, and programmers have been convicted of such acts over the years. Everywhere I’ve worked the programs have contained copyright notices that reinforce the companies ownership of the code – it is a belt-and-suspenders solution to avoid problems down the line…

    I can’t speak for other countries, but here in the U.S. of A., that is the law.

  86. dronetimer – exactly. He suffered no actual harm, but he insists on a massive “victory tour” around the Internet about how he “spoke truth to power”.

    If this is the voice of a new generation, well, OK, but I guess we’ll have to call this the “Hey, Look at ME!” generation – a quick scan of YouTube submissions will bear out my argument…

  87. Gillagriene explained:

    What I do know is that I was told, both at the undergrad and grad level that the college I was at owned my work. I have some vague idea we were told that’s the why it works most places.

    I honestly think this relates more to funded research work that you might do while in college, not the homework assignments.

    The distinguishing difference would be that research is typically funded by someone outside the institution, and the school transfers your work product in return for the payment – they can’t turn over what they do not own, so they have to assert their ownership of that work.

    Trust me, no matter how clever, no one wants to own your “Towers of Hanoi” solution, or your answer to questions 2, 4, and 6 on page 243 of your text book… Those are yours to cherish throughout the years, but, put them in a filke cabinet at your fraternity for the sole purpose of letting the next student present your work as their own, well, then you might be in trouble.

    One school I attended had an “Honor Code” that you had to hand write on each assignment and test before you handed it in, asserting the work was your own – violate the code, and you were expelled. Period.

  88. I posted my freshman and sophomore level C++ code AND notes online – in a wiki, no less – and my former prof approached me later, kindly asking that I take the code down, because students had plagiarized it. Not could plagiarize, but did.

    What Kyle posted are implementations of stock problems and algorithms taught to CS majors, not to teach the algorithms themselves, but their implementation – how to use arrays, linked lists, sorting algorithms and such.

    The code is the implementation of the algorithm, and there’s not much the professor can do but find harder algorithms to use in the course, increasing the chances that students who could feasibly learn how to use the tools of a programming language will get mired in the details of a relatively complex algorithm and fail to learn the tools.

    My bigger problem with Kyle and his professor is… well, why the hell are they using Java to teach elementary CS? What a horrible foundation.

  89. From some of the comments I read, a multiple selection question:

    a)#79 posted by Antinous: Half the professors are just killing time until retirement.

    b) same post: The great students and the great professors will love each other.

    c) #81 TAKUAN: just how many professors have been prosecuted for stealing student work and passing it off as their own?

    d) #85 ANONYMOUS: What a bunch of lazy profs

    @DR and @dronetimer, #92. : rate yourself. a) b) c) or d)?

  90. This article just goes to show that professors have no rights to enforce the integrity of their classes. Education has been reduced to a mere product in this country, and the students are “consumers”. If a student pays for a course, so the logic goes, is not the professor required to do whatever the “customer” demands???

    This why the good professors, teachers and instructors are leaving the field.

  91. I took Arts in university, but took a programming class on the side (I was a hacker even then, although I had no interest in pursuing IT as an occupation at that time). This was in 1988.

    The assignment was to write a small program in Pascal on the VAX. I found a room full of JETS terminals and using the editor to submit my job.

    The prof tried to give me a 0 because the purpose of the assignment was to learn how to use cards (seriously).

    It was 2 days past course-drop date.

    I went to the chair of the CS dept and told him that either he let me out of the course without record, or I would make him and his professor laughingstocks. I got my way.

    I have never met an academic computer guy who was anything but an incompetent, ineffective, outdated, loser.

    In the corporate world, the university types go for Java because it’s what they learn in their 101 course. Self-taught programmers are far more effective than university coders.

  92. #35

    I’m not sure why this is supposed to be particularly impressive. With your general attitude, filtering you out as an employer would be an unexpected benefit of posting this online.

    Employment, after all is a two way street. If you’re going to be stuck with a boss who doesn’t appreciate people trying to change things or challenge the status quo it’s going to be a real slog.

  93. Good grief, this thread is still going?

    Anonymous @98 et al, a lazy or disengaged professor would be one who gives no homework at all, and bases the student’s grade on something easy to grade, like a multiple choice examination. Of course, the only students who will learn in such a situation are the ones who could have done it on their own, without the class, in the first place.

    The function of homework in a basic programming class (like this one seems to be) is to reinforce basic skills. It is great for a student to take pride in the way they solve a problem; I did this myself as a student, and some of us used to have side contests in things like who could do the problem with the least/shortest/trickiest code. However, sometimes the best exercises for reinforcing these skills, or the best instruments for testing mastery of them, are more prosaic than creative. If these instruments are compromised then the students are the people who suffer most.

    I don’t teach programming, so the issues discussed here do not arise for my classes in the same way. I also do not know the professor involved (though as it happens I do know some of his research work which touches on some of my own). I think the presumption on the part of some that he has crafted his policy out of laziness is rather a strong one, and if it has foundation I haven’t seen it here.

    Students have a right to dislike their professor or the way he teaches, and even strong students can disagree on whether they like a particular professor’s teaching praxis. I see this on my teaching evaluations all the time: two good students, one thanks me for something I did while another tells me I shouldn’t have done it. This class seems like it was a toxic match between a good professor and a talented student. These things happen.

    If a student and a professor disagree on a policy, each has the right and obligation to try to convince the other of their position. The question of who should win in such a disagreement is an interesting one that transcends this thread. What makes me sad about both the situation and the thread is that there seems to be a shortage of respect on both sides.

    PS to Antinous: “professors trolling“? Some of us made it fairly clear early on that we were professors. Are we not supposed to be participating on BB? I thought it was facebook and the like where professorial participation was generally deemed creepy.

    1. Those of you who identified yourself as professors acted ethically. I was referring to the commenters who dissembled. There were some. You must admit that the ‘I’m going to pretend that I’m not a professor while criticizing students’ ethics’ shtick is unfortunate.

  94. Yes, I agree. I’m also glad to hear that my tech-cred didn’t disappear just because I decided at some point in my life to earn a PhD and take up research and teaching!

Comments are closed.