I agree, but IMHO most jobs in the industry that don't require you to prove that an algorithm is O(log n) shouldn't need a degree at all.
In the area of the world where I live, if you want to be an electrician, you can do that after you finish high school. You have to take a course and get a certificate for it as a legal requirement (which is true of any profession where you can get people killed) but it's pretty straightforward, and the course only involves pretty basic stuff.
And don't look down on electricians. My degree is in EE and when I need some work done on the installation in my house, I call an electrician. I could do what they do, but sloppily and with far more dangerous results.
The CS equivalent to an electrician would be people who do basic IT support (i.e. tell someone to reboot their Windows machine) and easy programming like creating a blog.
And they can do their job just fine. This isn't 1995, when writing dynamic websites was a pioneer's job. What they do is enough of a commodity that it can be outsourced to college freshmen at the end of the world. People don't need a degree to do that now, just like they didn't need one back then, only for different reasons.
Also, no, doing electrician's work is far more complex than IT support. For one thing, the chances of dying because of doing it improperly are quite disproportionate, and the amount of theoretical knowledge you need in order to be an electrician is not negligible at all. Your average hipster who's proud of the amazingly cool things he's hacking on his Arduino knows a lot less about it than your average electrician, even if the electrician isn't so obnoxious about it.
Of course you still need to get a basic understanding of how computers work with a software engineering degree, but knowing how to mathematical prove some algorithm is O(log n) is pretty pointless for most (not all) jobs in industry.
One of the things that is not taught well across the board in computer science programs is how to actually write code that is readable and maintainable and how to work with a team using source control, bug trackers, etc. Just to be clear, I am sure there are programs that do this well, but based on my experience they are not the norm.