Except that what's being talked about here is a Computer Science degree, not a Programming or even Software Engineer degree. While the former does generally involve learning some programming, its focus is more about understanding the way computers and programming languages work from the fundamental theory on up.
So if you're going to criticize it, at least get it right: it's not 4 years cobbling scripts together for <insert tired "those-who-can't-do-teach" stereotype here>, it's 4 years learning theory and fundamentals when you could be practicing the marketable skills you'll be using more directly.
Personally, though, I've found that while nearly none of the specific programming techniques I learned in my Computer Science degree have been applicable to my job since, the fundamental understandings of the underpinnings of the field have made it vastly easier for me to pick up new languages and techniques as I need to.