With the exception of our C++ .NET course, all of our programming course work can be done on any computer that has a compatible C++ or Java compiler. I make sure my students know that they can use what they want.
I also tell them what platform I'll be using to test their code. (Usually Linux or OS X)
I push OSS for as many of our courses as possible for three reasons:
- It's budget-friendly
- It's license-friendly
- We can give copies of the software to the students without feeling paranoid. (SCO notwithstanding.)
It's not forced on anyone and the platform choice is always up to the individual instructor.
In the classroom, I use a standard Linux build with VNC to share my desktop.
Another plus: With Linux, I can give all my students root access, whereas with Windows we have a policy of not allowing Admin access. (This may change with Visual Studio .NET, which requires more than User access to compile and run code.)