Friday, October 30, 2009

Computational thinking

I just read a little article from CMU's Jeannette Wing where she discusses "computational thinking" as a basic skill that everyone should have, and that should be taught in much the same way as a skill like critical thinking is at universities.

The idea is that computational thinking is collection of mental tools, approaches, and metaphors, more or less drawn from computer science, that we can bring to everyday problems. This would include things like useful abstraction, suppressing detail and complexity, optimisation of solutions, formulation of algorithms and so on. Computational thinking also has one up on straight up "mathematical thinking" (which has all these goodies I've just listed), in that it requires one to wear the engineers' boots while wearing the mathematician's hat, bringing a vital pragmatic element into the mix that might be well be missed amongst the glorious abstractions of a purer mathematical environment.

The article itself is pretty interesting, and could usefully be summed up by saying that she'd like to see everyone learn to embrace their hacker nature.

By the way, the points that she makes about education, about teaching people outside of computer science and engineering departments about programming is exactly the kind of thing that Felleisen, Findler, Flatt, and Krishnamurthi are trying to accomplish with their wonderful book How to design programs which is in fact the very text that a course called "Ways to think like a computer scientist" should be based on.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.