Doesn't this have a simple solution? Break down CS into componets just like Chemistry has Chemical Engineering or Physics has Mechanical Engineering. Offer different types of courses: Computer Literacy (for those completely new to computers), Software Development (for those wanting to work with computers vocationally), and Computer Science (for those who want to become Researchers). Maybe the Computer Science route should be known to take longer and more effort (generally speaking) as well. Maybe Computer Scientists need to know both theory and industry thoroughly?
Also the reason why Physics has: Mechanical Engineering but Computer Science has no vocational counterpart is because: there is money in Computer Science. Microsoft could not afford to not do R&D. Computer Science research can pay off within 5-10 years. Theoretical Physics research cannot. :P
So the industry tends to be as up to date as Computer Scientist are while there is money to be such. (Although, I have met plenty of programmers who do not understand theoretical computer science topics).
Also the reason why Physics has: Mechanical Engineering but Computer Science has no vocational counterpart is because: there is money in Computer Science. Microsoft could not afford to not do R&D. Computer Science research can pay off within 5-10 years. Theoretical Physics research cannot. :P
So the industry tends to be as up to date as Computer Scientist are while there is money to be such. (Although, I have met plenty of programmers who do not understand theoretical computer science topics).