(note: personal bias below; beware!)
The use of computers, and the programming and development of software and systems, is so broad and so pervasive that a CS degree prepares you only for some small aspects of it. Still, like degrees in almost everything except maybe medicine or law, the degree is just a small part of what you need to be GOOD at a field.
Back in the 70's when I was in college (!), San Francisco State was just starting to put together its CS program. The Math department championed it, because the business department and nursing/education department already had computer classes, and the math department looked down their nose at those departments. So, they wanted CS to be 'elite' and not for those fools taking MBA's or becoming nurses. Thus, the math department offered a CS major that was all of three CS classes and a dozen math classes. Sigh.
It has improved a lot since then, but I think CS departments have been mugged by math departments and tend to ignore a lot of 'real world' issues. That's fine, because there is a place for all that theory, as 'movielad' points out.
There are, however, many many jobs where you develop software full time and never use math beyond high school level. Where efficency is measured in human terms, not in machine terms. Where quality of a product is defined by how much money it makes or saves, and not by how many bugs it has. Where your value as a software engineer is measured in terms of how well you communicate, not in how complicated your code is.
I imagine CSCGal has done more good and learned more by working on this forum than on any class in school.
Just my humble opinion....