I think most of us want some kind of Software Engineering degree which is not what a Computer Science degree is. Most colleges want to teach "Computer Science" as they see it which is basically just "Math with Data Structures and other BS thrown in to make people hirable".
I think at this point what needs to happen is colleges need to stop branding "Computer Science" as something that will get you a job and stick to what they want to do, the hard algorithms and theory stuff and someone else needs to offer a "Software Engineering" course that teaches all the stuff that colleges threw in to make people hireable. If that happened we'd all be more happy.
The only way to make this happen is to stop posting job profiles asking for "Computer Science" unless you acctually need a Computer Scientist (theory-side). You should instead say "Software Engineer or similar" in the posting. Colleges will see this, parents will see this, students will see this and after that all happens we'll all be able to make better choices. Students will find colleges wanting to teach what they are interested, the stuanch theory CS professors will be able to teach at colleges, and employers will actually find programmers who can program after they've graduated from college. Maybe we'd be able to kill off a few major zero days, save a chunk of change in the global economy, or make something cool by making this small change.
I also don't think Software Engineering is as much of a "science" as it is a "trade". Programmers program, painters paint, carpenters carpet.... I mean build. We all have a skilled knowladge and tallent and know how to use that to shape the world around us. Most of the information that must be taught is experiance based and can be given in a trade-school enviroment. I think that's also another way forward.