My experience with a BS in CS degree was that 60% of the classes provided no career value at all. There's all the general ed classes meant to make you well rounded, and then there's classes in the core that are either useless (Calculus, very few CS grads will ever use it) or provide history/background about the field that is nice to know, but not generally useful or necessary.
Out of the remaining 40%, the level of overlap and repetition was just absurd. It seemed like each class spent the first half of the semester re-covering things that were covered in prerequisite classes. So maybe 30% of your actual class time is spent on new concepts, skills, etc.
Of those, probably 1/3 involve very basic things, like bubble sorts and the like, which help you build basic problem solving skills and language familiarity, but not much else. Then you get another 1/3 of CS related stuff, like architectures, patterns, SDLC, etc, which is probably the stuff that separates the degree holders from the self-taught in most cases. Then, if you're lucky, you get a couple of classes that are elective and teach something moderately interesting or useful. As I recall, the only classes I had in that category were a class on Computer Graphics (which ended up just being a bit of Java Swing and a bit of math to explain some of it), Web App Engineering (neat class using ASP.NET MVC), and an AI class that really just covered some solvers and search algos, topping out with Genetic Algorithms and Simulated Annealing.
Point being, I could definitely see someone being able to learn all the same CS stuff in a year, if they were self-motivated enough. A few good programming books, a few good CS concepts books, and you'd be covered. Honestly, you could probably cover CS with both more depth and breadth in a year than I got in my degree, if you put a full-time effort into it.
And all that is ignoring the fact that half my class graduated with virtually no ability to actually sit and write code of their own beyond just copy-pasting snippets from online examples until they had something that worked well enough to pass. The only real value of a CS degree, as far as I can tell, is to signal to employers that you can show up and put in at least a minimal effort at something for years without giving up. I guess that makes for a useful enough filter to keep employers using it and keep colleges in business.