It might interest you to know that in the 1980's, it was normal for CS programs not to teach programming at all. Particularly the CS programs that came out of math departments, as opposed to the out of engineering departments. The school I went to didn't, other than a quick intro to Pascal as part of 101 that was mostly designed to reduce the incoming mass of students by about 80%. Programming languages were something you were supposed to pick up on your own, just as English departments don't teach handwriting or typing. Most of us used C, which was particularly useful because you could emit the assembler rather than compiling directly to an executable. I remember a professor (a brilliant guy, btw) offhandedly dismissing Object Orientation because "there are no ideas in it." It's bizarre to me that many programmers today graduate without ever having used a language in which you manage memory yourself and have direct access to the machine. Having interviewed thousands of programmers over the decades, I've found that most younger CS graduates don't actually know how the machines work, and think only in terms of the idealized models of computation presented by higher level languages. Clearly, for most purposes, you no longer need to know, but it's a fascinating shift in mindset.