Fuck you, Programming Language Concepts professor!

I have never heard of such a thing. I agree that the man should not be teaching.

Why code the Prisoner’s Dilemma when you can live it??

Before you go to the administration, you should go to the department chair (if this “teacher” isn’t it, of course) in order to keep to the “shit rolls uphill” protocol of academia, and then from there go to deans, provosts, etc.

An even better book (at least in terms of the amount of delight it gave me when I saw the title).

Uh, that’s the same book, isn’t it?

Each time I’ve seen the title, it’s reminded me of Bud’s Real Men of Genius commercials.

So here’s to you,
Mr. Programming Language Concepts professor!

Up until this point, I was sitting pretty much in the instructor’s camp. The OP omitted any mention of what the prerequisites for the class were, so I had to judge by Programming Languages Concepts classes I had taken as a student and later taught. None were below the Junior level. All had some level of formal language grammar and a data structures course as a prerequisite.

Given that, the idea that you should teach yourself Bison seemed eminently reasonable to me. It’s not that hard, and the calculator application is probably the single easiest thing you can do with it. In fact, it’s one of the most widely used beginners’ examples, so the assignment really boiled down to showing that you could learn to use a tool, modify one of many published Bison/yacc calculator grammars to fit the specs of the assignment, and apply the “obvious” C++ data structure to manage the mapping from variable names to data values.

It’s pretty much the kind of assignment I myself might give to 1) make sure everyone in the class really knew the prerequisites, and 2) set up the beginning of a more extensive project to be conducted over the rest of the semester.

And, yeah, I would get a fair number of students screaming about how hard I was making it, swearing on a stack of Bibles that they’ve never heard of grammars or maps (even though I know perfectly well what assignments are given each year in the pre-requisite classes. The fact is, a lot of students move forward to the next class with a C or C- and never realize that such a low grade in the prerequisite course means that there’s a lot that they should have learned, that the next course will assume they have learned, but that they hadn’t learned yet when they took that course’s final exam (and probably never went back to review after getting their final grade).
So my take on the whole situation is this: if the OP is being accurate in his descriptions, then he’s entirely in his rights to complain both about the “break you” announcement and the bizzare grading scheme outlined above. He and his classmates should indeed complain to the Dept. chair. But unless the OP has omitted some important information about the prerequisites for the course, the opening assignment itself is not a basis for complaint.

I do qualify that “if” above, though, because, in my experience, students are masters at taking statements out of context: “This assignment is intended to break everyone who is unprepared for this course and convince them to drop in the first week while they can still get their tuition refunded.” becomes “Prof. ChordedZither says he wants to break everyone”. And the number of misquotes, misinterpretations, and outright fabrications I have seen when people complain about grading policies is mind-boggling.

I disagree with those who might say that it’s fine and normal to have a super-killer-weedout CS course AND that this type of course is a perfect preparation for the “real world” of CS. Uh uh.

Sure, in some sadistic jobs, having to learn a computing language in 3 weeks or else basically get fired (the equivalent of a “weedout course”) might happen, but if that happens it’s either due to spectacular project mismanagement combined with indifferent HR, or your boss has it in for you.

In my jobs in IT, managers are, if anything, reluctant to try new technology without reams of white paper support and months of training courses. Google is good enough for whatever conceptual learning I’ve had to do on the fly.

(Ironically, it should be even better for computer setup/system engineering problems, because they are trivial and weird enough to not be amenable to first concepts, and more searchable. But Google an error message or a memory leak and all you’ll get most of the time is a dozen or so message board posts asking about the problem :wink: )

I snipped the rest because I want to voice my support for this very idea. In all but two of my classes at university did I not go back and discuss the final exam with the instructor. I even did that for the finals on which I received an A. I knew that the next term’s classes were going to require the knowledge tested on that term’s finals and I really didn’t feel like having a “knowledge deficit” snowballing through my college career.

It’s supposed to be this one, but it appears that O’Reilly’s website is taking a little nap. Which is rather ironic, when you think about it.

I beg to differ. First, in the real world the weedout course is the interview. Some colleges may vet CS and Engineering majors more rigorously, but if they don’t an instructor may find all sorts of abilities in a class - and having a hard problem early to force a drop is far more humane than flunking someone at the end.

Second, if you can’t do the job assigned in most companies, you will eventually be shown the door. If you don’t have the prereqs, you better learn them fast. Now, training is usually available for a new technology, but it is brief and in no way like a full college class.

That said I agree that this optional unless someone does it stuff is inappropriate.

A shop will certainly do best to hire people who have the skills to quickly pick up on new technologies. But if it relies on people who are forced to learn new languages that were not an explicit job requirement in 3 weeks and then put out a working product with it or get fired, it will soon find itself without employees who will work for any reasonable wage, as well as pissed-off customers.

Well, if the product had to be developed in the same time frame as a class assignment, you’d be right. Real products take a lot longer. Good programmers can define a chunk, implement it in the new language, test it, and learn. No one has time for someone to implement something that will be thrown away. A decent manager will appreciate that the first project in a new technology will take a bit longer. How better to learn than by doing?

I’m assuming that the programmer has the right background. Throwing Java at someone who has only had COBOL will be a problem.

BTW, the longest language class I’ve ever taken at work has been one week. In the old Bell System days we had two week classes on other subjects, but I doubt that any internal training organization goes more than a week anymore.

Also keep in mind what the professor’s “personal scaling system” might be. Does he have a history of actually failing 75% of the class in this discipline? I had an organic chemistry professor once who did this sort of thing. He came into class saying, “over half of you will fail this class outright, and I don’t particularly care.” He raged through highly complex lecture material with barely a pause for questions. He assigned assloads of homework. He designed brutal lab sessions for us. It was really extremely difficult.

When test time came, he told us that he has three types of questions, A, B, and C questions. A questions were pure rote memory. Derive the name of this molecule from the structure. Give the structure from the name. Define some terms. B questions were moderate level interpretation questions. Determine what chemical pathway this reaction uses, and tell why. C questions were his masterpieces. They were highly complex real-world questions. They were based on experimental results, had several parts, and started off with sentences like “Beta springene is a scent pheromone found in the anal gland of springbok gazelles. When isolated and combined with 3,4,5 crown ether, etc.” Very tough. As the tests progressed, it turned out that even though the two C questions were worth over half the test, very few people actually attempted them.

Now, here’s the trick. For those students who only completed the A and or B questions, he graded the tests as normal. But because the C questions were so deep, and frequently required recruiting detailed knowledge from previous chemistry classes (acid/base relationships, thermodynamics, a working knowledge of entropy, etc.), the students who managed to make a convincing assault on one or more of them got special consideration.

I remember completely hosing one test altogether. I didn’t know my terms, my structures, or much about my reaction pathways. I left a lot of A and B questions blank, but I answered one of his C questions pretty completely. I got my score back: 53. Ugh. I took it to him after class, and asked him honestly, “I don’t think there’s a way for me to mathematically get an A in this class after failing this test so badly. Should I just go ahead and drop?”

He asked to look at the test and said, “Ah. You got full credit on one of the C questions. I design those question so it’s damn near impossible to answer one for full credit. Stick around. You’ll be fine.”

I ended up with an A in the class. One my very proudest academic accomplishments.

So take into consideration how much credit you’ll get by really going balls-to-the-wall and taking the real-world aspect of the class seriously, no matter what the workload.

I remember having to re-take physics in college because even though I had taken AP physics in high school and physics at another college the credits wouldn’t transfer for some reason. So I hardly went to class and didn’t study at all. When I did go the professor never explained anything I didn’t know and when he did he explained it very poorly.

I got a 36% on the first test. I thought I was truly done for until it turns out that was the highest scoring grade. 36. Percent. The curve bumped it up to a D, but everyone else got a failing grade! The rest of the semester was quite similar and I wound up getting a C in the class. Can’t imagine many people passed in that course.

And that was a pre-requisite for Engineering. Not a weed-out course for an overpopulated major.

:eek: That’s why I am a big advocate of curving. I can see someone who has taught a class for 10 years using an absolute or near absolute system, but no one else. In your case the person who should have flunked is the instructor, not most of the students.

Using a curve can change your entire test writing strategy. At MIT we had really hard tests - a few questions, with lots of partial credit. Very few people got anywhere close to 100, but just about all classes were curved, so it didn’t matter. If you use an absolute system, you need to write easy, multiple choice questions that don’t necessarily test a true understanding of the material.

I taught data structures at a college where most teachers used an absolute system. My first test had a class average of 65 or so, and my students looked like they were about to have heart attacks, until I figured out what their concern was and told them that of course I was grading on a curve. I think they learned more about the basics rather than just answering multiple choice questions on sorting methods. I know I wasn’t smart enough then to construct a test that would yield the rignt number of As and Bs, and I couldn’t imagine why my class should suffer from my lack of experience.

Are you sure it wasn’t a weed-out course? At the university I taught physics, intro physics courses were weed-out courses for both engineering (needed B or better) and pre-med (needed C or better) majors.

No, I can’t be certain, but this was UCF, known for it’s good CS program but I’m not sure their other engineering programs were very competitive. I also didn’t see it promised that it would be a tough course either, nor did a lot of people drop out of it. Also, my final “C” also came from my relative lack of homework (as in, only 3 or so out of the 10 assignments completed :eek: . OTOH, they also graded the homework assignments very toughly so I probably wasn’t in the bottom 10th percentile in total homework score.)