In the past I underestimated how important the multi-media aspects of a computer are to teaching computer science. Whereas in the past it seemed like the instruction in my lab was happening in human space, all the programming was done on the screen. Those lines are starting to blur, though, as more and more instruction can be done via the computers themselves.
In the past Linux was easily my preferred programming environment--still is. However, I'm a teacher, and I need to do more than just write code. I never imagined the Mac lab to be so far ahead of anything else I've ever used when it comes to making my teaching more effective.
This coming Spring students and I will be making screencasts for future students (and for present students that need a review)--ranging from the basics of programming (how to use the unix terminal, text editors, etc), to other particular skills. I can think of no more efficient way to capture knowledge than to just record examples in realtime.
I teach Computer Science at a progressive public high school, using mostly open source tools. I improvise a lot and spend most of my time working with students and writing code in Python, Java, Obj-C, LISP....