"In my most humble opinion, the value of CS education is not to prepare young people for a job in IT. Instead, its value is in teaching young people how to think in an abstract and rigorous manner."
How can one disagree with such a goal? Yet surely any education should aim to teach the young how to think rigorously, and abstraction should be one of the tools. What then distinguishes CS education from what the should be doing across the quad in the departments of philosophy/history/literature?