Most CS students don't care about CS, and there's nothing
wrong with that.
Our society shouldn't look down on trade schools so much. There's too much of an importance placed on the prestige of graduating from a university, making everyone feel pressured to go to a university. These kids are wasting their time (and their parents' money) if they don't care about the material and are never going to use the material anyway. They're just there to get the rubber stamp from the university to impress their family, friends, and employers.
This emphasis on the college degree as a sign of prestige has a toxic side effect: the people who do care about the material get a diluted version of the material to better serve the university's goal of graduating as many people as possible.
I want to see more schools in the style of Digipen. Digipen offers a rigorous degree in "Real Time Interactive Simulation" -- in other words, Game Programming. They really do learn to code, and they really do learn the relevant mathematics for 3D graphics, physics simulation, etc. They probably don't sit through irrelevant courses on the theory of computation or programming language theory. Why aren't there similar programs for programming in general? You should be able to go to a trade school or university and get a solid and comprehensive degree in programming. And society should respect you for it.
Sidenote: I do think that it's possible to do this without devolving into a technology-specific curriculum. You can (and should) still teach at a conceptual level, with individual languages and APIs considered implementation details. I'm not advocating creating a degree in ".NET Programming" or "Ruby on Rails Programming" that'll be obsolete in 2 years.