Lessons learned through teaching
Feb. 11th, 2018 02:36 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Got home last night from California, where I spent Thursday and Friday teaching a new course on Concurrent Scala. (We'll eventually get that listed on the company website.)
It's been an interesting experience. While I've done a fair amount of Scala teaching (both in conferences/Meetups and officially through Artima), and of course I've been teaching dance and stuff forever, this is the first time I've taught a whole programming course that I wrote largely on my own.
In general, I think it went pretty well. Some students thought parts were too elementary, while others thanked me for covering the basics, so I think we got the level-set about right. I didn't see too many people yawning, even through the epic three-hour talk on Friday morning, so I seem to still be pretty good at holding folks' attention and explaining stuff. It was a good class: larger than I'd expected, with a good deal of give and take with the students. As with dance, a lively group makes teaching a lot more fun.
The only serious fail came during the second day's Project Time. For this advanced class, instead of our usual approach of alternating short talks with half-hour blocks of formal exercises (with unit tests to check whether your answers are right), I instead did much more in-depth talks, and then had the students pair-program on less-formal projects. Basically, I gave them an initial skeleton app, and a stack of stories, which they were then to go off and implement. At the end of the day, we got volunteers to come up and show what they had written, and had the whole class talk about it.
All of which went fine until most of the way through Friday. Since it was a dead run getting the class finished, I hadn't gotten around to actually working through the projects myself -- after all, I knew the topics deeply, so I was confident it was all doable. Only I'd trusted the documentation while I was writing the skeleton app -- and as we all know, documentation lies. So the skeleton was actually misconfigured for what I had assigned them to do, and we lost half an hour during the projects figuring out the correct config settings.
But all in all, as fails go, I'll take it -- for the first run of a course, that wasn't too embarrassing, and I'm going to go fix it this week, so it's ready for next time.
And with that survived, I now get to do stuff that's a little less insane for the next couple of weeks...
(no subject)
Date: 2018-02-12 11:01 pm (UTC)I found the Concurrent Programming In Java book invaluable back when; wonder if he's updated it in
the last five yearstwo decades o god time how does it pass.(no subject)
Date: 2018-02-12 11:09 pm (UTC)Different worlds -- I've mainly been focused on multi-threaded environments for the past 20 years. (Which is why I went so deeply into Akka: it's an approach to shared mutable state that doesn't require insane brilliance at all times.)
But it's wonderfully relaxing not to have to worry about all that crap when working in the browser...