I think academia focuses too much on computer science theory instead of practical software engineering. They are two completely different fields, yet treated as the same degree.
Computer Science is essentially a branch of mathematics, while Software Engineering is construction and craftsmanship. Confusing the two is exactly why so many grads feel lost on day one of a real job.