For so many years Alan Kay has been saying “The computer revolution hasn’t happened yet”. He sees the computer as a new medium, just as the book and printing press represented a new medium in the Middle Ages. He’s said that we will know when the computer revolution has arrived when we learn to communicate in a way that is only possible with the computer. I can’t find the source for this, but I know he’s said it. I don’t believe he meant things like YouTube, or even blogging, though tagging would probably be a part of it. He meant something more socially transformative. Just as the book and printing press democratized knowledge, and enabled people to discuss ideas with each other using argument and logic, instead of always appealing to authority–creating fertile ground for democratic movements–the computer has the same potential. Most of all, the computer revolution, in his view, is not the “automation of paper”. Remember the “vision of the future” that was once touted as the business computing panacea of the “paperless office”? He says that’s not it.
I tried a little exercise after hearing this. I tried to think what would this unique form of communication be? The only thought that came to mind was simulation, the ability to model a phenomenon or process, and use it to communicate ideas about them. When I thought about whether this was being done already, the first thought that came to my head was the whole issue of global warming and what’s causing it. A lot of the arguments around it are generated off of atmospheric computer models being generated by scientists, though right now it seems to me this process is imperfect. I’m just using it as an example of something that’s starting to happen with respect to computing as a medium, and what it signifies.
I found this blog post recently by Mark Guzdial, called “Computing for Knowledge Transformation”
(it’s on his author blog on Amazon.com) (Update 5-24-2013: This is from Mark’s Amazon blog that has since disappeared. He created a new blog a few years ago using WordPress, though I don’t believe he moved his old blog posts). He has outlined some more ideas regarding what the true impact of computing will be on the future.
Guzdial has been exploring what computer science education means today, given the current state it’s in. An idea of his that’s been catching on where he works, at Georgia Tech, is Media Computation–applying computer science and programming to media, such as graphics, video, and audio. It’s been attracting a lot of interest. And get this, most a lot quite a few of the students in his class are female! People should take a look at this.
Anyway, he discusses a concept of writing I found interesting: that beginners, writers just starting out, “write to tell,” basically regurgitating knowledge, and experts “transform knowledge” in the process of their writing. The writer synthesizes his/her piece, drawing together varying sources of information, and the writer is transformed in the process, gaining new knowledge. I could relate to this. Just doing a little self reflection I’d say I’ve been doing quite a bit of the former on this blog, and a bit of the latter. He said that the same could be said of computing: there’s “knowledge telling” (he cites PowerPoint as an example of this mode of computing. Quite apt I’d say…), and then there’s “knowledge transformation.” The future of computing is the latter:
Computational scientists are using computing as a way of creating knowledge, of figuring out how to communicate it, and of a way of transforming their own knowledge in the process. In fact, all forms of Computational-X (where X is journalism, photography, biology, chemistry, and so on) are about transforming knowledge in X through effective use of computation.
Programming is an important tool when using computing for knowledge transformation. If you are using the computer as a way of creating new knowledge, you are almost certainly using the computer in a new way that others have not considered. You cannot do an HCI process of task analysis when the task is “invent a process or representation that has never been created before.”
Note that “effective use” has nothing to do with software engineering. Most computational science code that I’ve seen is pretty poor engineering quality. (Which does raise the interesting research question of what kind of program methodology and structuring makes the most sense for computational-X professionals and what will they actually use.)
“Computational Thinking” and “Computing for Knowledge Transformation” are both verb-like phrases — it’s what you do. What do we teachers teach if we want people to learn computational thinking, to achieve computing for knowledge transformation? What computing for knowledge transformation is about includes:
- Representations: Using computing to understand how information and models in a domain might be structured.
- Mappings: Between representations, between models and the real world counterparts.
- Simulation: Execution of a model to test it, to gather data on it, to expore information in silico.
- Integration: We don’t program in C4KT in order to build an artifact. We program to explore ideas and create knowledge, where the output will probably be read into Excel and graphed, or will drive a script in Maya to generate an animation. Programming in C4KT is not about programming a blank sheet of paper to create a new killer app. It’s about creating the data, models, and representations that can’t be created in existing tools, then moving back to the existing tools, perhaps for analysis and visualization.
(my emphasis in bold italics)
I’ve probably cited this before, but as I read this, I can’t help but think of the spreadsheet. It accomplishes some of these tasks for some domains. I think the key is to build on that model of what an application is, to create more opportunities for exploration. At least that’s a way that most people right now can relate to this. Kay would probably argue for the “total computing environment,” where programming and “tangible modeling” (you create models and manipulate them using an intuitive system interface) is emphasized more, and applications hold less sway.
What Guzdial discusses here sounds very scientific. I can imagine scholars and researchers using these sophisticated techniques to advance knowledge, but I’m wondering what about opportunities for this in the business community? What about opportunities for this among average people? Certainly spreadsheets are used by some average computer users. A more popular example might be the use of photo editing software. It typically doesn’t involve programming, but it does delve into the realm of simulation (you can preview what your edit will look like before you finalize it), though it’s a simple form of that. It does at least allow exploration.
I’m not expecting Guzdial to come up with the answer for this (though if he’d like to, I wouldn’t mind hearing about it). This is sort of a train of thought post. I thought Guzdial’s post was very interesting, because it helped answer a question that’s been rattling around in my head ever since Alan Kay talked about this: What will the computer revolution really look like? I think Guzdial is on to the answer.