Some thoughts on posting the source code of undergrad assignments

Basically, my habit so far is to post the source code of an assignment if either of the following is true: I've posted one of the assignments from Gary Nutt's Operating Systems Projects for Windows NT book, because the assignment was broken. For one thing, there was no sane explanation for what the virtual memory calls we were making actually did or why they existed. We asked in class for an explanation, and we didn't get one. I suspect this is a Windows NT problem, rather than merely a problem with Nutt's book. For another, the sample data set included in the book simply did not work. The calls we were instructed to make returned failure. It was, utter nonsense. However, due to circumstances beyond my control, I had a lot of fun writing the VM Wizard. Maybe if I can get into the Khaya Lab again I'll write a VM Wizard Pro and start asking users to ``register.''

Michael Main's Java assignments are posted in compiled form only. The assignments were so neat that I haven't been able to bring myself to risk ruining them for others by posting them.

In general, I think that all academic work, including old tests and class assignments, should be posted. Sometimes I think that maybe students of all kinds should be required to post their work, including papers, tests, and even journals kept in connection with a class. Part of my thinking here has to do with a fundamental disbelief in the fairness of ``technology transfer''.

okay, okay, I admit there is this eerie similarity between University administrators leaning back in their leather Administration Chairs, and important Chinese politicians doing the same thing in their dimly-lit highrise Beijing offices with secret circular beds concealed behind ordinary-looking brushed aluminum wall panels. But, nevertheless, I think there is an important place for communism in the US. an important, hard-won place for communism. And that means students, all students, must publish all their work freely, or we will be back on the slippery slope toward Capitalism: from each according to their ability to pay, to each according to their ability to arrange kickbacks, bribes, and other clever and patented ``business methods.''

But I'm not certain enough of these ideas to actually do it yet. By ``do it,'' I mean post all my work whether the professor likes it or not. The whole point of communism is, since it doesn't really matter either way, you may as well be an honest person and do your own work. I used to post about five more of Nutt's assignments. Then, I took them down and offered to help anyone who emailed me with some question indicating they had at least read the problem and begun to think about it. I wrote multi-paragraph replies to, well it must have been at least five people. No one wanted help. They all wanted source code, quickly.

Gary Nutt wrote me and asked me to stop publishing source code, because it reduced the value of the projects in his book. At first I was hesitant, which is why I took down the assignments and offered to interact with people more personally, instead of categorically refusing to offer them. Based on the caliber of his students who have contacted me so far, I can only agree with Dr. Nutt.

For what it's worth, he seems like a pretty nice guy, too!

Perhaps things would not be as dismal if the assignments were more educationally valuable. But I'm not too sure of that.

Anyway, for those of you who still want help with Nutt's projects, here are the assignments I've completed aside from VMWizard:

For what it's worth, I took the class twice, and got an F the first time and an A the second time. I think my code is pretty tight, for an undergrad, but it would probably still disgust certain people. The hardest assignment by far was 'ttalk'. Maybe it is not that hard to complete this assignment, but it is excruciating to complete it correctly when you have almost no experience and only a few productive hours before you get too depressed to lift your head and look at the screen any more. I'm not sure to what extent I succeeded, because I didn't build any ``regression test'' tools capable of testing its flow control. Flow control is the capability I suspect many other students might have left out. It's a tough problem because it needs to be independent for the sockets' two directions, which means select(..).

Right. Enough of that! I'm still here, and I still answer emails from fellow Gary Nutt detainees. However, in general I would advise you not to ask me for help. I think it's a better idea to ask attractive classmates for help rather than people like me. When you take a University class, you only get out of it what you put into it.

Loose lips sink ships.


rants / map / carton's page / Miles Nordin <carton@Ivy.NET>
Last update (UTC timezone): $Id: whatshere.html,v 1.1 2005/10/30 02:58:57 carton Exp $