Don Blaheta, Knox College, Galesburg, Illinois

Note: Excerpts from a detailed three-page debriefing:

I've just turned in grades for my first-term intro course, the first I taught under the influence of HtDCH. It's not the straight-up HtDCH plan, because I didn't start in Scheme; that meant some things went slower, and I had to cover things that graduates of HtDP could be expected to already know. However, I think it went well enough to pronounce it an overall success; I have a lot of notes about things that worked well, things I screwed up, and so on, that I thought might be helpful to the readers of this list. ...

The inventory system (which in the HtDP design recipes is called a "template") was a huge, huge win. Early on it seemed like overkill, and I was starting to doubt myself on whether it was worth it. ...

Then, a week or two later, when we hit recursion, the payoff came. I was able to have them "take inventory" when they ran into the brick wall; and they all knew how to do it! ... The carefully-written method descriptions ("*determines whether* the *given String* is contained in *this* StringList") helped there. (This is exactly what HtDCH taught, of course. I'm just warning you, if you've never done it before, to teach them and hold your ground. :) ...

Even if you don't believe deeply in functional programming, delaying mutation as long as possible is a good idea. The folks coming from Scheme don't need convincing there, I'm sure, but even if you start right out in Java, there is a huge advantage to using mutation-free code: you don't need to talk about reference semantics! ...

For ProfessorJ, I have mostly praise. The comfortable straitjacket it provides for the beginner programmer has caused a sea change in how the students progress. They get past their syntactic problems a lot faster when there are less ways to get stuff silently wrong, and I think requiring the use of "this" was singlehandedly responsible for keeping at least a quarter of my class afloat in the first weeks. The ease of writing examples and test cases meant that my students actually did so (mostly), and this too was a big help. The only thing that really holds me back from wholeheartedly recommending it for use isn't even really its fault: it is still, fundamentally, alpha software. ...

December 8, 2004


Last modified: Sun Oct 29 21:52:24 EST 2006
Viera K. Proulx / vkp@ccs.neu.edu