When I started college in the 90's personal computers and the internet were just hitting the mainstream and people started hearing stories about how computer nerds were getting rich. So of course the computer science and computer engineering majors had huge in coming classes.
The first intro classes that start the cs and ce majors were pretty large. But that did not phase the professors. Just because everyone wanted a degree did not mean that everyone was getting one. So those first classes had some shocking curves. There were rumors that more than 50% were failing the intro classes. And then another 50% of the survivors would fail the next intro class. Huge hordes of pissed off students were leaving cs for econ, bio, social science, etc.
But the professors were unapologetic. They simply said that you cannot pass their class unless you learn how to program and if 50% do not learn than 50% will fail.
The funny thing is that those intro classes were not really that difficult, but you just needed to know how to program to pass them and many people couldn't. After that classes started getting really hard, but then the people that remained knew what they were doing, so the curve normalised after the first year.
Anyway, I started in a major of about 200 people and I graduated with about 30 people. Many people that graduated with me had started earlier than me having taken more than 4 years to finish the major. But of course we all knew what we were doing, and our diplomas meant something.
But for the class years after me things changed. I think someone in industry told the school that they need to graduate 10 times more people each year. They made everything easier. Classes started getting large throughout the major. People were not failing as much. I met people junior to me that were taking the same classes I had taken yet all the assignments they were doing were much much easier than the ones I had to do. They started using a lot of high level tools without knowing what happens under the hood. Nobody even knew about pointers. So then my degree started meaning less and less.
This has to end. The solution they have now is that the really good people are supposed to proceed to grad school, but life is too short for that. I think they may have to use two levels of undergrad degrees -- one really challenging that exposes you to all levels of computer science, and another easy one that is for people that will be the future "X certified professionals."