Computing Community Consortium Blog

The goal of the Computing Community Consortium (CCC) is to catalyze the computing research community to debate longer range, more audacious research challenges; to build consensus around research visions; to evolve the most promising visions toward clearly defined initiatives; and to work with the funding organizations to move challenges and visions toward funding initiatives. The purpose of this blog is to provide a more immediate, online mechanism for dissemination of visioning concepts and community discussion/debate about them.


Why Democracy Needs Computer Science Education

August 5th, 2011 / in CS education, policy, resources / by Erwin Gianchandani

Henry Kautz, Chair, Department of Computer Science, University of RochesterThe following is a special contribution to this blog from Henry Kautz, Chair of the Department of Computer Science at the University of Rochester. His research interests are in knowledge representation, satisfiability testing, pervasive computing, and assistive technology. He is currently President of the Association for the Advancement of Artificial Intelligence (AAAI). If you have comments on this essay, e-mail Henry or add an entry to the bottom of this blog post.

Countless gallons of ink (real and virtual) have been spilled on the need to infuse the humanities into science and engineering education. For example, philosopher Martha Nussbaum’s recent book, Not For Profit: Why Democracy Needs the Humanities, passionately argues that the liberal arts teach the abilities to think critically, criticize authority, and sympathize with those who are marginalized and different. These abilities, she argues, are necessary for the citizens of democratic societies, if democracy is to survive.

Many computer science majors deeply engage with the humanities during their undergraduate years. At our university, as at many others, it is not uncommon to meet computer science majors who double-major in the humanities or spend an extra year studying subjects as diverse as music, Japanese, anthropology, political science, or dance. At the same time, computer science departments nationwide have begun initiatives to enlarge the base of non-traditional students studying computer science. For example, in the past three years we have more than doubled the number of students from the humanities, social sciences, and physical and life sciences enrolled in our courses, by offering both specialized courses for non-majors and advanced courses with broad appeal, such as human-computer interaction and web programming.

Beyond teaching particular useful skills, computer science teaches ways of thinking that are necessary in order to be an effective and engaged citizen. Computer science teaches an appreciation for complex systems, including the need to understand context and requirements, the unexpected consequences of small changes, and tradeoffs between maintaining a legacy system and building anew from scratch.

As computer scientists, we understand the necessity of testing and iteratively refining solutions to problems, a lesson often missed by follows of political or social dogma. We value both abstraction and attention to detail, a lesson that leaders of government or business sometimes ignore to their peril.

Perhaps most importantly, computer science teaches optimism in the face of enormous complexity. We can reframe ill-posed problems into well-defined ones; we can tame the tyranny of complexity using the tools of structured design. We strive to distinguish failures based on errors in our solutions and failures that arise because the problem we are working on has no precise solution; indeed, much of the theory of computer science deals with what cannot be computed. Even in the latter case, we retain our optimism, and work on good approximate solutions to inherently intractable problems.

These lessons from computer science support vibrant and progressive democracies. While the humanities may help us sympathize with those who are marginalized and different, the habits of mind inculcated by computer science can lead us to go beyond mere sympathy and create a society that promotes human rights and economic security. Nussbaum wrote,

A catalogue of facts, without the ability to assess them, or to understand how a narrative is assembled from evidence, is almost as bad as ignorance, since the pupil will not be able to distinguish ignorant stereotypes purveyed by political and cultural leaders from the truth, or bogus claims from valid ones.

Computer science certainly involves assessing evidence and the validity of arguments, but also goes on to the tasks of designing, building, and validating solutions to problems. The great political scientist, economist, psychologist, sociologist, and computer scientist Herbert Simon pioneered the research area of “general problem solving,” studying how people solve problems and exploring the degree to which general problem solving expertise could be encapsulated in a computer program. However, the importance of computer science to society does not depend upon whether the dream of artificial intelligence, the mechanized general problem solver, is ever actually created. Instead, we would argue that computer science is crucial to democracy because it promotes attitudes and cognitive skills that enable citizens, in a spirit of confidence tempered by a respectful humility before the complexity of the world, to actively shape the future.

Why Democracy Needs Computer Science Education

3 comments

  1. Doug_Fisher says:

    Nice essay!  There are great life lessons in a CS education leading, we hope, to the humility and optimism that you speak of; I don’t think its ideal to compartmentalize by highlighting these lessons only in ‘CS and Society’ or ‘CS and Ethics’ type courses — so I am going to share your essay with my AI students.