I had to do a little verbal kung-fu in front of my Linux Security/PHP class in order to save face a little over an hour ago. Here's my story:
A little introduction
Recently, it became required curriculum to take a "PHP and Linux Security" course. Never-you-mind the fact that we never had enough time to either go indepth in PHP or Linux Security very much during the session aside from a very broad and ultimately useless overview of both concepts. I'm not sure whose clever idea it was, but it wasn't a very good one to combine two completely different subjects into one amalgamation that can barely be taught in a semester.
So, the course has gone as I expected - slow, meandering, and without any real substance since its been divided between "Here's Linux" and "Here's PHP," and it comes time for final exams - except they're final projects instead, for some as of yet unnamed reason.
The professor seems very laid back, and in the beginning that was alright -we were verbally instructed to create a "PHP and MySQL" webpage, and then at the end he mentioned something randomly about homework. Yes, he gave homework the same day he told us about our final project, assigning them both to be due on the same day, which is of course an immediate priority conflict: one of them has to take precedence. They're not hard, per-say, but they are time consuming, an issue compounded by the fact that this isn't the only class I have to take. He is of course the only teacher still giving out homework so late in the term.
So, today was one of the alloted days to give presentations. Two people, who were obviously basing their presentation of existing PHP projects, went first: one smart foreign fellow was creating a CMS for the commpany he worked at to handle task tracking, and one other dude who had developed forum software for use with his associates. The rest of the projects were obviously from scratch and incomplete, judging by the quality of the one other I saw, and the people shaking their head and saying, "I'm not done yet" or "its not presentation quality." Hey, no sweat. We all have other classes, too, right?
Me? I volunteer. I'm done. I did the smart thing: I based my website off an existing template that came with the book for the course, whose author gave his blessing for modifications. I transformed one of the template sites to an ad-hoc image gallery, nothing really fancy but to be honest that's all I had time for, between those magical things called other classes.
So, when I'm done, what's the first thing he calls me on? You got it: the template. Well, that's great, except in his verbal "I-didn't-write-it-down-so-there's-no-proof" instructions he said we should consider using the examples in the book as templates. I can't quite tell him this to his face of course, because its incredibly insulting to call him out like that in front of the class, and the project is worth 35% of the final grade. I'm no sucker.
Gotta retaliate though (I have an ego), so I start quipping good development practices, like "a good programmer knows how to reuse code" and the typical, as the polite conversation almost turns into a debate. I had already queued up a logical argument on the issue of web development in general, when he suddenly distracts me with a copyright question. I hadn't removed the template author's copyright from the HTML page. I tell him its OK, since the author gave permission. He said I should have taken out the copyright notice. In hindsight I should have probably made a seperate 'credits' section and named him there, but I had more important stuff to do.
Still, totally caught by suprise by the nature of his comment, I mumble the knee-jerk, "Uh, questionably legal area?*" and the class starts an ad-hoc discussion about it. By then I had lost my opportunity to argue the issue of using a template in my favor, though the professor still looked pretty displeased when I got up to go back to my seat.
I believe I saved quite a bit of face, though.
In only two hours I'm probably going to have this same situation with another professor: the assignment didn't say to create our own data structures, so I logically used the tried-and-true STL data structures instead.
I've made a grave mistake assuming my professor's are all aboard the logic train.
*This is the only thing I remember from my CyberEthics class, even though the semester hasn't ended yet.