Keep Working, Worker Bee!


Today was essentially dedicated to the craft of test-writing, a craft to which I'm not at all accustomed but I found I actually kind of like. I'm glad to report that I'm a perfectly decent Java programmer, at least according to the midterm exam I took for my officemate, who's giving the test to his Java class tomorrow. He, as it turns out, is also a perfectly decent Scheme programmer, though his Scheme is possibly slightly rustier than my Java (I didn't even know that was possible!). My test is going to be pretty tough, I expect, but I think also fair. I'll find out tomorrow, I suppose.

The process of writing a test itself is really difficult, particularly for an intro class midterm — these are people with barely any programming practice at all, essentially anything they could possibly do on paper in any reasonable time looks easy to me. Writing a good intro test, then, seems like a game of extraordinary empathy, where you have to really put yourself in your class's shoes and figure out exactly how much it takes to challenge them but not break their backs. My initial draft was probably on the tough side, and the point weightings for different problems were all over the place, but I think I've rebalanced and tweaked things to the point where the test is probably fair. (Ironically, I made the test easier by approximately doubling the length. That's because I rewrote problems of the form "Do task A" to problems of the form "1. Do subtask X. 2. Do subtask Y. 3. Do subtask Z." Many more pages, but the result is that you don't get hit with one big problem, you get hit with lots of littler problems telling you how to do what you would've had to do anyway.)

In the process of writing the test, I ended up ditching the TeX macros I was writing for the problems in favor a Scheme program that takes a logical test description and spits out LaTeX. It's amazing how much easier it is to generate LaTeX using Scheme programs than it is to generate LaTeX using LaTeX macros. I was able to add quite a bit to what I was able to express and make the code much simpler. (Probably I just don't understand LaTeX very well, but I've been using it for a long while and the Zen that makes everything make sense and work beautifully has not yet hit me.)

Other than that, the only major thing I did was one more revision pass at the programming contest phase two specification; lots of red ink but the spec looks like it's in good shape and hopefully the contestants will like it.


Post a Comment

<< Home