Correct they teach theory and not really a language, but generally by the time 4 years is up a student SHOULD be proficient in at least one language. If they aren't then they shouldn't be in CS, because they lack the drive that's required.
A while back I interviewed lot a people with and with out cs degrees. A lot of the fresh guys were proficient in Java, .NET, or rarely C++. This job was for PHP, but my thought was I wanted to hire a couple of green guys and have them work with the senior guys to learn PHP. I have no idea how some of those guys passed CS. A lot of them couldn't even properly describe what a linked list was or how something like a binary search works. I wasn't asking them to write it in a programming language and having it compile and run. I just wanted a flow chart drawn that explained them. After that incident I lost a lot of faith in our current CS grads.
Those are the guys who eventually get jobs at the DoD.