The workshop I've been attending this week is called How to Design Class Hierarchies, about how to teach introductory computer science. It follows on the heels of TeachScheme!, whose primary philosophy is that the job of an intro class is to teach CS concepts, using a language with a very light, transparent syntax, rather than having to get bogged down in the heavy syntax of a language like Java. Of course, eventually you do get to Java, and what then? The thesis of this pedagogy is that you should keep developing concepts, and introduce language constructs only as they are well-motivated by the conceptual development.
The most revolutionary development, though, is that right off the bat it teaches class hierarchy. The notion of Shape being a class that is the abstract union of Circle and Rectangle (for instance) is one of the first things developed. The only concept taught before that is that of structured data, of treating objects as collections of related data. As crazy as it may sound at first, I think it'll work pretty well.
My main worries have to do with fitting it into our larger curriculum at Knox. Much though I'd like to start with a term of Scheme (as is presumed by the HtDCH book, at least), we don't right now. That means that there are some concepts, like boolean logic, that are presumed for HtDCH but that I'll have to teach. Furthermore, when kids finish the first term course, someone will have to take over teaching the second class, and so I need to bring them to a good stopping point, which could be tricky. And finally, the current plan is that after Winter 2005, I won't be teaching 141 (I think John is taking it), so I really need to get the other CS profs on board.
The IDE is also causing me some concern. I really like the notion of language levels, restricting kids to just a subset of java until they're ready to move on (and giving them error messages tailored to the level). But BlueJ doesn't implement them, and ProfessorJ---the official IDE of the program---strikes me as possibly not ready for prime time just yet. I'm pretty conflicted about which one I should use, since they both have their pros and cons. Just today, I think I decided that I'd teach in the Linux lab---which we control---rather than the Windows lab, so that I can maybe update the IDE mid-semester. We'll see.
"Well, I figured it was Anime, and thus I needed to know how japanese
it was before deciding if I cared. By "japanese" I mean does it tend to
throw out lots of pseudo-mystic crap that never gets even
perfunctorially explained? Are all the female voice actors most
comfortable conversing in a frequency only heard by dogs? Are there
commonly unexpected and earth shattering deus ex machinas, uh, I mean,
"plot twists" that happen at the end of every episode then completely
ignored in the next episode?
Ie: How japanese is it?" --Sam Walker