In my opinion, there are far too many people enrolled in CS programs who would be much better served by a software engineering degree or program. However, modifying the way CS is taught us not the answer. A separate niche needs to be carved out.
Nowadays there are even bridges to "proper" universities if you want to pursue a more academic MSc after your vocational BSc.
The whole bachelors -> masters -> PhD process is just winnowing out the unworthy and stupid. The ones who survive this and go on to publish papers are the entire point.
The entire IT industry is a byproduct of CS research, not the point of it. The point of it is to explore the intellectual realms enabled by the mathematics of CS.
Reducing this to "university CS departments exist to train programmers" is ridiculous.
Slightly tongue in cheek, but not too much.
Also, most of their money.