I don't see why CS can't “take a problem and produce a suitable solution.” Understanding the essential underlying theory (complexity theory, etc.) is essential to solve these problems.
Furthermore, not all Computer Science degrees are purely theoretical course where all you do is esoteric logics and category theory. If anything, I think there's too little theory in the UK's CS courses these days.
But most real world probles arn't "impliment a bubble sort" pure CS problems 99% of the time you need domain knowedge to point out the the customer err you have used the wrong equaion for that design.
Furthermore, not all Computer Science degrees are purely theoretical course where all you do is esoteric logics and category theory. If anything, I think there's too little theory in the UK's CS courses these days.