There’s a joke that goes like this
In theory there’s no difference between theory and practice. In practice there is.
I was reminded of this saying, when I read this piece in the New York Times (OK, yes, sometimes I have a backlog of reading).
This is a very strongly worded piece, and I am sure that some people will disagree with it. I find myself resonating with parts of it. That’s not terribly surprising of course. Perhaps what really resonates with me is being careful about separating economic systems from the context that surrounds them. The author says
As I see it, the economics profession went astray because economists, as a group, mistook beauty, clad in impressive-looking mathematics, for truth.
And I reasonate with that because I feel that sometimes this very same thing happens within Computer Science. Sometimes, the human-centered aspects of the discipline are articulated as not being a part of the discipline. I did say sometimes. The author is arguing that human-in-the-loop makes economics more complicated. The financial collapse is a story of humanness in all its forms… it doesn’t mean that understanding the mathematical underpinnings is not valuable, it just means its not enough.
And the same is true of a discipline of Computer Science. The Computer is a human-designed, human-built artifact. The principles upon which is it based, are human-generated (by Computer Scientists). Computers are also human-used, human-consumed. And we use these facts to talk about our solutions. Our visions of what is made possible through scientific and technological innovation in Computer Science are human-motivated. For example, people want to mine, search, and access data, stream video around their house, debug their code, connect their laptops securely to wireless networks, be supported by intelligent machines in office and house work, … the list goes on.
So, I vote for a Computer Science that pursues theory and practice, because they matter equally to our discipline.