@inthehands There's soooo much wrong with education, it's incredible.
A lot of it is based on effectively infodumping students for 1.5hrs straight and then expecting them to understand. Of course this actually just filters those who, for whatever reason, aren't perfectly prepared for the course at that moment or cannot hold that for 1.5hrs.
Then there's absurd external time pacing with turned in homework.
And, something not completely unique to CS but very common there, unclear communication onto what CS is. Is it IT administration? Is it programming? Is it software engineering? Is it project management? Is it electrical engineering? Is it maths? Is it all those things?
Of course you'll have a lot of students who, even if they master the classes, actually don't really wanna do whatever subset of the above your university has decided upon choosing.
In my opinion the first year should have a good mix of very "practical" skills, even simple administrative tasks, some engineering thinking plus low-ball academic/scientific things with the next semesters offering specialization in different branches.
And for the other issues: Fuckin kill lectures (mostly). Use self-paced learning. Teach methods, heck, even group work is a method that one needs to learn!