I think you’re both getting hung up on the quicksort example. I bet, even as a self taught programmer, you’ve had to break a task down into manageable chunks. You’ve had to think about why you are trying to solve a particular problem.

That is Computer Science. Sure, no one in their right mind is going to reimplement a sort algorithm from scratch. Just like no sane baker ever breeds their own yeast – but they need to know how it works!

As for language – I view that as a distraction. It’s much easier to get people to talk in English (or diagrams) to make sure they’ve fully understood a problem – rather than wrestling with the precise placement of a semi-colon.

Take Scratch, for example. All the kids I’ve taught have enjoyed playing with the coding blocks – but it’s the ones who have sat down and thought about the problem they’re trying to solve which have enjoyed it the most.

Yes, we should get kids making and building – but they need to understand why a computer works, not just how.