Mostly it informs the student of their current level of understanding. 70% of lecturing is marking assignments. That’s what you don’t get when you teach yourself.
Mostly it informs the student of their current level of understanding. 70% of lecturing is marking assignments. That’s what you don’t get when you teach yourself.
Honestly, it needs to be. Employers are not going to be impressed with grads who've not encountered basic things like version control by the time they've graduated - and it's irresponsible to market a degree as a stepping stone to a e.g. software engineering job without covering these basics properly.
The theory is still incredibly important - mathematics, algorithms, performance & time complexity, data structures etc. It underpins everything we do in industry. But there really needs to be some element of practical software engineering too because the vast majority of the UG cohort are there to get a job.
That's true now. It certainly wasn't true in the past; especially with larger companies who would hire people with the intention of training them.
I wonder if there will be a bifurcation in education. To some degree (excuse the pun), there already is; software engineering "boot camps" and the like that teach software engineering rather than CS. Maybe we'll see that split reach upwards to the formal education level; a more vocational college for the software engineers, a more mathematical alternative for the informatics enthusiasts.