From Indian perspective I see this part broken big time as well.
It takes 4 years to graduate with an engineering degree where as the core content could very well be taught well under 2 years.
The first year is common across all streams; so one is taught workshop/welding, workings of ICE and what not. 3rd semester the specialisation topics are gingerly introduced with heavy emphasis on adjacent courses (e.g., CS students are taught analogue electronics). Heavy duty math is taught for 4 semesters (PDE, Laplace transforms and what not). Only from 5th semester do the stream-specific topics start in full earnest. Then there are some fluffy courses which don't make any sense if one doesn't have experience working in as a s/w engineer; OOPs, Software Engineering.
What's worse, the syllabus has only been slightly tweaked for last 50 years or so.
I say this as a software engineer professional of 15+ years; I've had to use less than 15% of what I learnt in those 4 years. It's such a waste of precious time. Engineering education needs to radically change in India. Something similar to trade-school in Germany? Part time theory, part time working/interning under professionals? Even that shouldn't be more 2.5 years IMO.