Yeah, I hate it when people just “me too” something someone else blogged, but I’m doing it anyway, bringing it into a slightly different context.
This idea of a “computer science perpsective”, based in large part on the foundational idea of ‘abstraction’ (from which, I think, comes ‘refactoring’ and ‘seperation of concerns’), is one I’ve been thinking about for a while. I’m pleased to see that Wing has put a name on it too, and is exploring what it means exactly.
I learned this way of looking at things with a computer science degree and some years of experience programming, but I don’t think that’s the only way to learn it, and I think there’s a way to to learn it without actually learning how to program or being a programmer or computer scientist.
And it’s precisely this kind of perpsective (“computational thinking”) that I think the 21st century cataloger or metadata librarian absolutely needs, to be able to understand how what they do does and can fit into the digital landscape. I’ve thought before if it would be possible to design some kind of curriculum in what I thought of as ‘computer science perspective’ that wasn’t in fact particularly technical and was not about teaching programming or computer science itself. I wonder if Wing is exploring that idea with ‘computational thinking’, as she seems to think too that it’s a way of thinking that’s of utility for more than just computer scientists.
Looks like this article is a good place to start on Wing’s “Computational Thinking” idea. I think if you read that article, you will immediately be convinced “Yes! Catalogers do need to be able to think that way in the 21st century!” [Indeed, I'd make clear, that many catalogers do, or can, or _almost_ can think that way already, it's not TOO different from a certain type of 'cataloging thinking' ].
“Computational thinking is a way of solving problems, designing systems, and understanding human behavior that draws on concepts fundamental to computer science. Computational thinking is thinking in terms of abstractions, invariably multiple layers of abstraction at once. Computational thinking is about the automation of these abstractions. The automaton could be an algorithm, a Turing machine, a tangible device, a software system –or the human brain. Recursively, it could be a network of these. Computational thinking gives us the power to scale beyond our imagination.”