EDIT: Also, universities need to learn how to scale their courses. For CS courses, it shouldn't matter whether 10 or 100 students are in a course: you should have enough undergraduate TAs who want to work on course development, grading and hours to scale your classes up with not-too-much friction. That's how one of our intro CS courses went from having 80 students to 180 the next year, and maintained the same attrition rate. Students learn best through each other: the professor should help figure out what the course should be, then get out of the way.
Isn't that kind of a general rule of thumb for just about any major/direction in college?
Sure, I took mostly gen-ed and low level CS classes the first year or so, but I was already accepted to the CS department while doing so.
(College dropout here... :-) )