Karin Dalziel’s Why every Library Science student should learn programming reminds me that I’ve been thinking about, and meaning to write about, algorithmic (or computational) thinking.
What is computational thinking? It includes
- Thinking Recursively
- Thinking Abstractly
- Thinking Ahead (caching, pre-fetching…)
- Thinking Procedurally
- Thinking Logically
- Thinking Concurrently
That’s from Jeannette Wing slide 21 [PDF]; subsequent slides give examples. Or, if you prefer podcasts, she chatted about computation thinking with Jon Udell.
I would like to find examples of where librarians and archivists use computational thinking, especially outside the digital realm. It’s hard to argue that programming per se is needed for school media specialists or archivists. Some digital librarians and LIS educators also argue that, for digital librarians, managing programmers and interfacing with users are more pertinent skills than programming per se.
So I’d like to shift the debate. Instead of “should all LIS students learn to program”, I’d like to ask, what can LIS learn from computer science? Programming is only a very small part of computer science; as Jeannette M. Wing writes* [PDF]
Computer science is not computer programming. Thinking like a computer scientist means more than being able to program a computer. It requires thinking at multiple levels of abstraction
Having to solve a particular problem, we might ask: How difficult is it to solve? and What’s the best way to solve it? Computer science rests on solid theoretical underpinnings to answer such questions precisely.
Can LIS benefit from considering problems in this way? As a librarian or information professional, have you ever considered a problem from this angle? How did it turn out?* Jeannette M. Wing Computational Thinking [postprint, PDF] (2006 March). Communications of the ACM, Vol 49, No 3, 33-35.