6 ms·
Student challenges prof, wins right to post source code he wrote for course
- ionfish 17y agoGood for him. It's perverse for the gatekeepers of an institution supposedly dedicated to increasing human knowledge to attempt to restrain its dissemination in this fashion, and it's cheering to see the university backing the student here.
- michael_dorfman 17y agoI think the gatekeepers of the institution feel that human knowledge is not increased when homework answers are published on the web, rendering the assignments obsolete for future instances of the course.
- ckinnan 17y agoThis seems like a reasonable concern. The situation is akin to publishing test questions and answers.
- mileszs 17y agoWhat is the chance they are doing anything new in a 100 level CS course? Interesting, perhaps, but new? Couldn't one find answers to most of the problems in 4+ languages with a single search? I understand the argument, to an extent, that the student is simply lowering the barrier to cheating, but isn't it he really just lowering it from just above the knee to just below the knee? It was easy to cheat 8 years ago (from what I remember), it's surely easier to cheat now, and it's certainly not because this one kid stood up for something in which he believes.
- michael_dorfman 17y agoNo, he's lowering it from just above the knee to the ankle. One link to his site, and you'd have all the answers to all the homework questions for the whole semester, presumably ready to print and hand in.
- Jem 17y agoBut the professors aren't stupid (one would assume). They're going to know about this guy, remember his site, and very easily compare the work? (Edit: I don't have all the answers, or an opinion on this piece, just playing devil's advocate)
- michael_dorfman 17y agoYeah, but why make it harder for the prof? What's the upside to allowing students to publish the answers?
- DougBTX 17y agoTo encourage students to take pride in their work? Nowadays it is hardly any extra work for the prof either, any coursework of substance gets put through plagiarism detection anyway.
- ori_b 17y agoThis guy, yes. What if other people do the same without telling the profs? Although, honestly, people are going to hand down homework answers no matter what. Professors simply should assume that if the question isn't new, an answer has been made available to the students somewhere at some point.
- pmorici 17y agoAnyone who thinks that has never heard of MOSS, http://theory.stanford.edu/~aiken/moss/ http://theory.stanford.edu/~aiken/moss/ in order to fool it you would have to know the material well enough that you would be able to complete the assignment w/o cheating anyways.
- dlnovell 17y agoThe homework assignments are only rendered obsolete for cheaters... and hopefully the overwhelming majority of the students do their homework because they're trying to learn the material. Also, after "Intro to X Programming Language", there aren't going to be any trivial assignments and every (or nearly every) solution should be different. At NCSU they had software that would examine all code for assignments to detect people sharing code and trying to make trivial modifications such as changing variable and function names, and changing the order of code. I had quite a few friends get caught by it. The point of my rant is that some students are going to cheat no matter what. Having the solution posted online isn't going to really change how many people are cheating if it is made clear that the professor will be looking for cheaters.
- Afton 17y agoI TA'd and taught an intro to unix course at UCSC a couple of times. We found that repeatedly pointing out the tools that we'd use to catch duplication (grep/sed/awk), and show how they worked was the only thing that reduced the cheating count (which sat at around 10%, but dropped drammatically with repetitions of how we'd find cheaters). tl;dr: "don't cheat, we'll find you" -> no effect on cheating. "These are the tools we'll use. Here's how they work" -> massive decrease in cheating.
- protomyth 17y agoit could be your demo showed them how to cheat and avoid being flagged by the tools :)
- Afton 17y agoHere's an example 1. write a sed script that strips out html-tags from arbitrary, well-formed HTML. It's pretty hard to fail to notice that 5 people used the one-liner from http://www-h.eng.cam.ac.uk/help/tpl/unix/sed.html http://www-h.eng.cam.ac.uk/help/tpl/unix/sed.html, but can't explain what the hold-space is. Also hard to hide the fact that you used the hold space!
- wallflower 17y agoIn the past, having seen sizeable fraternity archives of Physics/Chemistry 101/201 tests, I can attest that professors reuse problems on tests all the time. Even if they change the initial parameters, its the same problem.
- lacker 17y agoProfessors should already be using new problems in each instance of the class. In particular, frats and other student societies often pass things down, and you don't want to advantage them. Trying to stop people from posting knowledge on the web that is already public is ineffective and unfair.
- grandalf 17y agogreat point -- the prof is just being lazy. It would actually be a nice idea to build a website so that students could post old quizzes, homework assignments, etc., to help force profs to come up with something new each time.
- michael_dorfman 17y agoWow. what a colossal waste of professor's time! The prof isn't being lazy, he's being efficient-- he's carefully crafting a set of exercises that he hopes best serves the need of his students, and there shouldn't be any need to change them until the curriculum changes. Believe me, there are many better things he could be doing with his time than re-creating exercises....
- grandalf 17y agoWell, as someone else pointed out, frats, etc., routinely create archives of past tests/quizzes, etc., for the benefit of their members. Some people are currently exploiting the "efficiency" you mention, which is in my opinion a bigger problem than the extra time needed to create fresh materials. What course could you imagine where it would take more than a few hours to create a fresh exam or batch of quizes? We're talking about undergraduate classes and any prof qualified to teach them could easily rattle off dozens of great (and unique) questions on a moment's notice. So not only do I not think it would be a waste of time, but it would result in fairer tests/quizes, less exploitation, and fresher and more topical material.
- jurjenh 17y ago
- scott_s 17y agoIn every programming intensive course I took as an undergrad CS major, the programming projects were original. The themes are the same (the linked list project, the balanced binary tree project), but the professors came up with original project specs every time.
- jrockway 17y agoHow does someone's solution to a problem make the problem obsolete? I have a friend who was an art student. Every major assignment was put into a public portfolio for future employers (etc.) to look at. This is considered standard for the field. It's also possible that someone else could look at her portfolio, copy her assignment, and turn it in as their own. Despite that, it's still her right to share her creative work with the world. As programming is just as creative as design, I don't see why programmers should be held to some other standard. We need jobs out of college too, and we are also proud of our work and want to show the world. If this makes the professor's life harder... well, that's so sad that I'm going to cry.
- IsaacL 17y agoSolutions to class assignments don't generally "increase human knowledge". The only people they will be useful to are students looking to cheat. A lot of people on BoingBoing were saying that the prof should generate a new assignment each time: that's really not realistic (pg mentioned this in on of his essays). I've just finished the first year of a CS degree, and I can see the advantage of having assignments that have been set for multiple years: they're more 'polished' IMO and better able to stretch actual CS skills and not just the production of boilerplate code.
- coolnewtoy 17y agoActually, I really appreciate the assignments and solutions on the Stanford Engineering Everywhere courses. It's probably just as valuable as the lectures.
- jsonscripter 17y agoIn my program, I had to sign a non-disclosure when doing an assignment for a local tech company. They didn't use anything I made, but I can't share it. It's basically gone for a minimum of 4 years. I always feel like I've lost a little bit of myself when I lose code or IP I've created, even if I'm paid for my time.
- edw519 17y ago"I always feel like I've lost a little bit of myself..." You shouldn't. Because you haven't. You are greater that then sum of what you have done. You wrote it once, you can write it again (not exactly the same, of course, but you get the idea). They can claim your work as their IP, but they can't claim who you have become in the process.
- mikedouglas 17y agoYou wrote it once, you can write it again (not exactly the same, of course, but you get the idea). Can you? That code is now a trade secret for that company, and if you wrote a clone (or compatible version) using your knowledge of the product, that seems like a clear case of infringement.
- edw519 17y agoThe code may be IP, but the thinking behind it is not, and who you are most certainly is not. Once you learn how to ride a bike, the owner of that bike has no claim to prevent you from riding another.
- mikedouglas 17y agoIANAL, but the thinking behind it, if not generally known, is definitely a trade secret. Using or disclosing that information to another party is trade secret infringement. If (as an employee of that bike company) you developed a way to make the bike 20% lighter that wasn't readily discernible, you can't leave and start a competing company using that idea. The law around trade secret misappropriation is such a minefield that most companies separate the reverse engineering team from the implementation team (ie. clean room design).
- TallGuyShort 17y agoAside from the question of publishing source code, I wanted to applaud the author for his observation that students want to do meaningful work. I work as a programmer (and have done so for more than a few years) and am only going to school to "get my degree". Nothing is more frustrating to me than when people who have spent their whole careers in academia correct me on dumb things. I once got marked down because my curly braces were on the same line as the function definition in Java. They said it wasn't "the way it was done in the industry". I learn 10 times more from my job than I ever have at school - their students would be far better off if their projects were more realistic, and if their teachers had real experience.
- endtime 17y agoIf you've worked as a programmer, then what you have to gain from a CS degree won't be found in introductory programming classes...
- edw519 17y ago"They said it wasn't "the way it was done in the industry". I learn 10 times more from my job than I ever have at school - their students would be far better off if their projects were more realistic, and if their teachers had real experience." Definitely my experience! And one of the most important comments I've seen on hn in ages. Cut it out and put it on your bulletin board. As smart people who deal a lot with binaryness (there is a right answer), we place high regard for education, as we should. But please understand that business and academia are 2 different animals with only a little overlap. I have lots of education and lots of practical work experience, and I have to be careful when to apply my formal education, which isn't often. Classic example (I'm sure many of you have many more): I graduated Allegheny College with the founders of ijet.com. At an alumni event, they presented their business case and web site. It was very interesting, like many discussions here. At the end, a business professor summed things up. Not a single thing he said made any sense or had anything to do with the presentation. I wondered if he had even watched it. That's when I decided to stop feeling bad about sleeping through all that Cost/Value Curve bullshit so many years ago. Get your degree. Get your education. But please understand they aren't necessarily the same thing. {{{{{{Aside: If anyone wants to talk about my curly braces, I give them 2 choices: discuss issues with me or discuss details by themselves.}}}}}}
- chez17 17y agoI had a good teacher at UVM who took time out of class to discuss this subject one day. He made it crystal clear that as a student, you own everything you code. As a professor, or paid person of the university, that is not necessarily the case. But as a student, what you write is yours. From the other side, I could see how the professor doesn't want people posting code (most likely solutions) online.
- robryan 17y agoOne of the problems I'm seeing where I go to university is that with budget cut's one of the most effected area's is course preparation. Lecturers aren't getting paid properly to update there courses and as a result are using the same or very similar lecture notes/ assignments and exams for years. Basically meaning that any innovation in the courses is coming out of the lecturers own time. A pattern emerges in that the young, recently graduated lecturers will put the extra effort in to make there subject good and the older ones by and large will just run what they have been running with for many years.
- dxjones 17y agoOutstanding result. Compliments to both the student and the Chair of the CS Dept at SJSU. Not only was the matter resolved properly, the Chair also managed to stop it from "escalating" until lawyers had to get involved. Instead, the Chair successfully "hit the pause button", reflected on the issues, got some expert advice, and then communicate the result clearly and definitively, so everyone could close this chapter and move on. Even for the prof who initially complained about the student posting code, this is a good result. It lets him know how he should update his course in the future, and what limitations on students posting code is reasonable, or not reasonable.
- keefe 17y agoI sure hope he doesn't take that guy's class or any of that guy's friend's classes. He may find his work held up to a higher standard... I think the prof was pissed cause the solutions being posted meant he had to do more work. I am all about free speech, but if I were doing my degree there I wouldn't want to antagonize the faculty so much.
- jmonegro 17y agoI think that to some extent, the professor might be right. What if I was to take that same course, with the same professor, and got the same assignment. I could easily browse his source code when I get coder's block.
- alexgartrell 17y agoLet me tell you something about labs. Challenging labs a) are REALLY hard to make and b) ALWAYS suck on the first iteration, ALWAYS. This guy has set back the whole course to the very beginning, because now everything needs to be rewritten. He's a jerk. No one's impressed by his sophomore-level introductory data structures and algo classes. And because he posted his code to the public, I have the following comments: his code is poorly commented and kind of crappy. I'm further bothered by the fact that he's a senior-to-be and hasn't done anything substantial yet. Where's the kernel, 1337 freedom of information defender?
- jrockway 17y agoThis guy has set back the whole course to the very beginning, because now everything needs to be rewritten. So? As someone who is not a student there, I could also read the labs and post my take on the code. Information wants to be free. Anyway, my advice would have been to take down the code when asked. Wait a week (until grades are published), then put the code back up. By that time, everyone will have forgotten. (People are very, very lazy.) I'm further bothered by the fact that he's a senior-to-be and hasn't done anything substantial yet. Where's the kernel, 1337 freedom of information defender? I don't think undergrads ever do anything substantial (as part of their official coursework, that is). So I would not fault this guy for that, that is a problem with the system in general.
- alexgartrell 17y agoProfessors can fail students at any point between starting the class and graduation. Piss one off bad enough and he'll change your grade. True on the lazy part though. At the risk of being that guy, at _my_ school, many undergrad CS majors write an honest-to-god ground up Kernel. So, from scratch to able to boot on x86 hardware and run multiple different programs and everything. Arguably substantial.
- philwelch 17y ago"I don't think undergrads ever do anything substantial (as part of their official coursework, that is)." Really? I've heard of: -Systems programming: Implement ext2. -Operating systems: Write a kernel. -Compilers: Write a compiler for a C-like language. and that's at my school alone. Though 2 of those are senior level classes, systems is a junior level class. I just assumed that's how CS was done everywhere. Want to learn about (foo)s? Write a foo!
- gchpaco 17y agoA lot of folks seem to believe that this fundamentally screws over the professor. If it does, he's an idiot, and I speak as someone intimately involved with all this before. There are basically three kinds of CS assignments. The first is the moral equivalent of algebra problems, where you change the parameters every year if you care. These were boring to give, boring to solve, but very easy to grade. The second is "write an implementation of X" for X ranging over things like binary trees, etc. In these cases there is one correct answer that the TA is looking for and it is already in the book. No creativity is necessary. Simple copy/paste detection will catch obvious cheaters, and anybody who modifies this guy's code enough to be non-obvious has just performed as much work, if not more, than was needed to do the assignment in the first place. The third assignment requires creativity, and here if two students solve the problem in the same way you can usually be sure they colluded. Most of these can be trivially changed, but they're a bitch to grade (although my favorite problems on both sides of the aisle, they're very time consuming) and so are not favored by lazy profs.
- johnnybgoode 17y agoCongratulations to Kyle for violating the spirit of the modern university by going up against faculty. ;)
- pageman 17y agoI actually encourage my students to POST all of their WORK under a by-nc-sa Creative Commons license so that other people/students can build on their work - it's actually EASIER to check for plagiarism when their work is online - I just Google it and it will flag if they are copying verbatim.
- hs 17y agouniversity is an extension of high-school-as-prison system, except that it's very big that one doesn't feel in one (maybe because one pays for the delusion^W priviledge of 'freedom')
- gurtwo 17y agoIsn't Computer Science a complex enough subject for the teacher to be able to write new problem sets every semester? Isn't he just being lazy by trying to reuse his problems over and over?