The hardest question I was asked during my interview at Oxy was how I think computer science fits into the liberal arts. The answer I gave depended on who I was talking to. Sometimes I focused on how knowing a little bit of computer science is necessary in the modern technological society (even if I’m vague on what the “little bit” is); other times I focused on giving students the computational skills they need for whatever disciplines they are actually interested in. Both these answers focus not on the technical aspects of computer science, but on how computer science integrates what other topics.
These are good answers, but I’ve never been entirely satisfied with them. For one, in the extreme, focusing on the usefulness of computer science would lead me to treat the subject in a vocational manner, which is not something I want to do. This is a slightly different question than the one I’m asking now, and how to balance teaching students to be a good developer versus being a good computer scientist is something for another post.
Instead, I want to examine my thoughts on what computer science has to offer a liberal arts education. The problem, as I see it, is that for most scientific fields, as a student progresses into the more specialized topics, they are necessarily dissociated from most other fields of knowledge. This is most obvious in math, where the subjects very quickly lose obvious applications, but the same apply to chemistry and physics, and most of the other hard sciences. That this is universal across schools, liberal arts or not, suggests that perhaps being part of the liberal arts does not matter at this level of expertise.
I see more for computer science. One comparison that I enjoy making is that while math is the study of structure – of how things relate to each other and the logical consequences of that relation – computer science is the study of process. The relations of the real world are rarely interesting to math, but problems that the processes of computer science is trying to solve are often rooted in the real world. This is especially true for artificial intelligence – a subfield which I am biased towards – but I think is also true of ideas in parallel processing or security.
Which brings me to the last point. I believe computer science, as the study of the organization and processing of information, contains a lot of useful abstractions for students to apply to other fields. For example, the testing and debugging cycle is a very concrete example of the scientific process, of how to methodically figure out a phenomenon you don’t understand. More philosophically, the uniform binary representation of code and data, as well as the many layers we build on top of it, lends itself well to discussions about representations and map-territory distinctions. That AI often leads to many more discussions in the philosophy of mind is not worth mentioning.
These connections are unique to computer science, and something I would like to take advantage of. More than the obvious usefulness of its applications, I think computer science has a role in the liberal arts because of how directly its thinking can be applied, and the common structure that it reveals in everything else we do.