I take every opportunity to talk with non-Computer Scientists about their perspective on the field. Over the past few years, I have discussed the role of CS in society with philosophers, artists, classicists, religious scholars, chemists, lots of mathematicians, and innumerable professionals working in just about every industry. Everyone today knows that computing is important, but many think about computation as a set of vocational skills.
According to this perspective, Computer Science is economically valuable but has nothing to teach us about the nature of man, our collective history, or the mysteries of the universe. Most are quick to point out that Computer Scientists will certainly benefit from studying the liberal arts, but a thorough study in the liberal arts does not necessarily include an introduction to Computer Science.
This professional/vocational view of Computer Science is at least partially correct. Most Computer Science majors will go on to take well-paying and intellectually satisfying jobs at tech companies, where they will develop software for most of their early careers. CS curricula should prepare students for careers in Software Engineering.
But the professional/vocational perspective of Computer Science is only partially correct. This point is made time and again throughout publications on Computer Science and the Liberal Arts.
For example, a recent charter published by the SIGCSE Committee on Computing Education in Liberal Arts Colleges explicitly mentions one possible effect of this viewpoint:
Administrations at liberal arts colleges may see computing as primarily a professional subject, and thus not central to the institution’s mission. Faculty in computing programs may therefore feel an on-going if not necessarily explicit need to justify their presence in the institution.
One case for teaching CS in a Liberal Arts setting is made by Walker and Kelemen, who observe that every field benefits from Computer Science, and that the societal impact of computing justifies its presence in a liberal arts setting:
Computer Science has come to share some topics with disciplines other than mathematics and engineering. A few such disciplines are psychology and biology (human-machine interface, brain theory, artificial intelligence, genomics, proteomics, bioinformatics), philosophy (logic and artificial intelligence), and linguistics (formal languages, natural language understanding).
…computer systems have become a significant factor in contemporary life. Understanding this technology and its implications, therefore, has become vital “for the honorable discharge of the duties of life.”
Some version of the final sentence in that quote – to prepare students for a responsible, good life – is central to most definitions of a liberal arts education. The liberal arts are not (just) a collection of topics, but rather a philosophy on the purpose of education. The utility and ubiquity of computers in society is exactly what Steve Jobs appealed to when he stated that Computer Science is a liberal art.
But as Walker and Kelemen note, the effect of computer systems on society – no matter how important – isn’t the only reason that computational thinking is a crucial component of a liberal arts education. We can also look at how computation effects other fields we consider important.
The original liberal arts – e.g., logic, grammar, arithmetic, elementary geometry – were all transformed by computational thinking during the 20th century. Understanding the current state of human knowledge about the classical liberal arts requires training in computational thinking.
Formal Logic, for example, underwent a computational revolution in the late 19th century, well before the modern silicon-based computer arrived on the scene. Gödel’s incompleteness theorems stand as some of the most important results in the history of formal logic. These results are examples of computational thinking, and have profound consequences for the scope of computational tools. Today, a huge amount of research on formal logic happens in the context of Computer Science and software systems. Look no further than my own publications page for examples of how logic informs and is informed by computational phenomenon. Informal logic – the sort concerned with logical fallacies, persuasion, and rhetoric divorced from any particular system of deduction – is also possible to study from a computational perspective!
The Chomsky-led cognitive revolution in grammar and linguistics was also an extremely computational movement – in fact, the Chomsky Hierarchy has pride of place in the canonical introductory text on Theoretical Computer Science.
And Tarski’s very computationally minded proof that Real Arithmetic admits quantifier elimination is perhaps the most exciting development in Euclidean geometry and Real Arithmetic since Euclid himself. Tarski’s discovery, like Gödel’s, epitomizes computational thinking and also predates modern computing machinery.
Logic, grammar, geometry and arithmetic – classical liberal arts – were indelibly transformed by computational thinking during the 20th century. Computer Science is worth studying because the classical liberal arts are worth studying!1
Unsurprisingly, Jeannette Wing has already said everything that I want to say, but in a much more pithy, cogent, and inspiring style. She prophesizes:
Computational thinking will be a reality when it is so integral to human endeavors it disappears as an explicit philosophy.
At least in the classical liberal arts, this prophecy is already fulfilled. But grammar, logic, arithmetic and elementary geometry are just the beginning!
And of course, Computer Science is also worth studying because Software Engineering is a great career and because computers are effecting every other career path! ↩