@hrefna I’m half with you, and half strong disagree.
Teaching the new hotness is foolish. Teaching that focuses on •any• specific tool — “this is a Java class” — is foolish. It’s cheap learning that comes with a very short shelf-life. Education should teaching deep principles, underlying patterns, and cognitive strategies that allow students to keep learning every new hotness if they need to (and allow them to have the confidence to ignore it).
BUT
Active, hands-on learning is vastly, vastly superior to exam- and lecture-driven courses. It doesn’t just produce better learning outcomes; it makes the field more accessible and more welcoming to students who don’t already have the hidden curriculum and social approbation for the shockingly few students for whom lecture-and-exam classes actually work. Among other good outcomes, moving to a more hands-on approach has IMO done more than any other single thing to increase the diversity of the CS program I teach in. I’ve seen students learn both ways, I’ve seen the effect of both on the human beings in the classes, and I’m a hard-core believer in the active approach. It’s better and it’s more humane.
Classes can be hands-on and involve computers without turning into cheap “code camp flavor of the week” nonsense.