Log in

No account? Create an account

Da Werkshop iz Ovah

I just spent a week more-or-less lecturing from 9AM-5:30PM (plus an after-dinner session Wednesday night), for a baker's dozen of other computer science faculty interested in learning new ways to teach beginning programming. I'm still jazzed about the material, as are (apparently) a majority of the workshop participants, although several commented on the brutally fast pace (we covered the equivalent of a 3-credit college course in the first three days). And one bitched me out for saying "Forget what you know about sorting algorithms; just follow this recipe;" she felt this was insulting to women who have gotten where they are only by learning and knowing stuff. Perhaps a better way of putting it would have been "Try to see and do this assignment through the eyes of a beginning CS student, not somebody with a Ph.D. in CS."

Anyway, I got home Friday night utterly drained, but sorta triumphant at the same time: there were no major disasters, I didn't look like a total fool, and most of the participants seem to basically "get" the most important points of the workshop.

Today was spent recuperating, catching up with chores and bills that had fallen by the wayside, etc. Tomorrow: mow the lawn, and clear a bunch of stuff out of the garage so the professionals can replace the garage doors on Monday. Monday: go to the chiropractor, go to the bank for a cashier's check to pay the garage-door people, do some more cleaning and chores, prepare a class on ornamenting dance music, photocopy some sheet music, maybe work on the textbook or the Ostgardr web site redesign....


Interesting stuff! I'll have to read it in more detail later. I have a bunch of saved up thoughts on the philosophy behind teaching programming (i.e., why the student should care)...but this is on a more nitty-gritty level, thinking about why and when particular language constructs are necessary for teaching, which is a really important piece.
The design recipes are a major part of the approach, more important than what specific language you use (although if you use a complex language, the design issues get obscured by a morass of syntax). It particularly impressed the workshop participants how naturally it led to recursion, and even a correct (albeit O(n2)-time) sorting program, without ever discussing how to sort things or how weird and mysterious recursion is.

By the way, I'm writing my own textbook on this stuff, aimed largely at an audience of mathophobes. It does manipulations on pictures for the first few chapters, and introduces variables, function definitions, function composition, design for re-use, and interactive GUI programming before mentioning arithmetic.

Oh, and do check out the testimonials and related articles mentioned at the bottom of the "intro" page.