Computer Science and Empiricism
In a talk given at UW today, Alfred Spector, Google’s VP of Research and Special Initiatives, made a point that I hadn’t thought about before. He made the statement that computer science is much more empirical today than it was when he was a graduate student 30 years ago.
I’m currently reading Logicomix, a graphic novel with a twofold role as a biography of Bertrand Russell and a concise history of the quest for mathematical certainty that took place in the early 20th century. Reading it alongside a courseload of discrete math and theory of computation classes has me knee-deep in the mathematical foundations of computer science. While these foundations are valid and necessary for a historical appreciation of the field, they don’t always lend themselves well to contemporary issues faced in industry and academia.
Spector’s talk reinforced the image of Google as grand archiver and distributor of the consolidated sum of human knowledge, a role not always well-served by a traditional approach. In recent years, we’ve seen a rise in parallel and probabilistic approaches to emerging problems: MapReduce/Hadoop, machine learning, Bayesian this, Markov that. With the astronomical amounts of data that companies like Google have to deal with, the door is opened for statistical methods.
Computer science deals with more measurable quantities than it used to. For example, as networks and systems grow larger, small margins of error or delay become more readily measurable. When the entire world is your testbed, you have to measure and test every aspect of the systems you build. In this sense, CS is increasingly becoming a more empirical science.
My only hope is that this was more often emphasized in classes, instead of by visiting guest lecturers.
