I received this as an unanswered question in a lab and I wanted to respond to this before the close of the semester.
I teach old school C programming on UNIX because students will see this type of code in the real world. Sure, C++ and C# are popular. You’re learning Ruby and that’s cool too. In an academic setting you should explore the newest, cutting edge techniques and languages, but not to the detriment of learning how things used to be.
Once VTC students become technology workers, they may happen across 10Base2 networks, software systems written in C, they may be asked to covert a mainframe COBOL system into a Web 2.0 system. Teaching them what once was and how it once worked is something that will be very valuable to them in their future.
I always chafe when I hear about a teacher telling students that they MUST have an MSCE in order to succeed in the tech sector. I cringe when I hear teachers telling people that they only need to learn linux and they’ll have a job for life. I would argue that a solid understanding of linux and an MSEC would put a person in a great space for employment. In this economy it’s unwise to become embroiled in the zealotry surrounding company’s marketing or the FOSS movement.
So there’s your answer why I teach
printf and not
cout, odds are that you’ll find code (and lots of it still) where an understanding of the old ways will aide you.