how do you tell if someone learned…

“How do you tell if someone learned a topic” was the dinner-time question tonight. Karen finished her classes for the quarter (I keep wanting to call them semesters), and one of her finals left her really depressed and kinda wigged out. The instructor (who I shall not name) was “ok” by all repute, but not awesome – and seemed to have a flair for showing off how much he knew more than focusing on making sure his students added to their knowledge. At least, this is my (somewhat brutal) synopsis based on hearing many evenings of “I can’t believe he…” things.

So it wasn’t really unexpected that the final in the class was equally baroque and difficult to comprehend. And I’ll get a little more specific, because for those of you in the “know” about programming languages – this’ll just top it off. The class was about Perl. To my mind, there’s only one language that can be more viscously obtuse than perl – and that’s C++. So after a quarter, giving students a final where the questions included some of the finer points of this or that function call seemed a little more like “Cool Perl Trivia” quiz than actually attempting to determine if the students learned anything. And just to pour on the praise – if my sweetie had a hard time with this final, I expect the remaining students would have darn near guaranteed to bomb it. (yeah – she’s a pretty smart lady – and she had the benefit of having done perl in the past!)

So how would you determine if someone’s really learned the language? Or enough to use it? Do you think it’d be a fair test if they knew and could quickly look up the answers to the questions? At this point, I think that’s a pretty fair way to deal with similiar things in an interview (albeit not a class test) situation – I want to hear when someone doesn’t know exactly, what their guess might be, but most importantly how they’d solve the problem – where to look or what to do.

Having taught a little previously, I know the challenge of determining “how much someone has learned” and “how much they know” of a language. Frankly, it’s often really tough doing that even with coworkers that you’re around all the time! Getting a gradation of knowledge through a test – well, it’s damn tricky to do that reasonably well. And when it comes right down to it – I don’t know what I would have written as a test of someone having learned perl. I think I probably would have gone into debugging questions and tried to get the students to explain why the code generated the results that it did, and what they would need to do to make it work “correctly”. Yeah – essay test. A pain to grade, but I think you need more granularity and detail than you can get off a multiple choice…