Technology
and the Values of a Liberal Education
Barry
S. Fagin: Professor of Computer Science at the
United States Air Force Academy, CO 80840-6234, and Senior Fellow in Technology
Policy at the Independence Institute, Golden, CO.
Few would deny the dramatic impact
of technology on scholarship and teaching over the past few years. Computers
are now an essential part of college life, and many bright students who
previously might not have considered “hard core” jobs in computer science can
now find lucrative opportunities as network administrators and web site
designers. Demands from parents and students to support technology-related
education and infrastructure can strain already tight academic budgets, with
less “relevant” departments in the humanities and social sciences feeling the
pinch. Faculty too may feel overwhelmed by pressures to adapt their teaching
methods to this brave new world: using email instead of office hours, placing
course information online, and so forth.
These issues are important, and have
received extensive treatment elsewhere. Most of the writing on technology and
education, however, focuses on the delivery of educational services and
educational content: the how and what of a liberal education. We should
be equally concerned with the why.
Fortunately,
the news is good. Faculty across the disciplines who are committed to
fundamental principles of liberal learning will find them strengthened by
increased student exposure to the computing sciences. Computer science can
neither be taught nor mastered without embracing objective truth, critical
thinking, and personal responsibility. Any discipline that reinforces these
concepts in the modern university should be welcomed with open arms.
Computer Science and Objectivity
The goal of computer science is to
get computers to do what human beings want done. The challenge is both
technical and social: human beings want things done better, faster, and cheaper
today than yesterday, and often they do not know what they want until computer
scientists show them what is possible. In a classroom setting, however, the
environment is more controlled. Students are introduced to computer science by
an instructor who knows exactly what he wants: successful completion of a
programming assignment.
Program correctness is not political
correctness: correct software is not a social construct. If a program produces
an incorrect answer, then it is wrong, period. There is no alternative
perspective, no cultural context through which one can view the behavior of the
program as being valid. This is why, for clearly worded and tested assignments,
complaints from computer science majors about judgments of whether or not their
programs work are virtually nonexistent. What is far more common are complaints
that a given assignment is too difficult, concerns that they lack the knowledge
to complete it, or visits to a professor’s office knowing that their program
does not work without being able to tell why. The existence of a clearly
understood programming problem and the self-evident failure of an attempt to
solve it provide a visceral, experiential encounter with an objective truth
that is independent of cultural bias.
Computer Science and Critical Thinking
Critical, reflective thinking is an
essential skill for those who aspire to become educated. The ability
to ask oneself why one believes a particular thing, to ask about the evidence
for and against a proposition, and to re-evaluate one’s position in light of
new facts are all characteristics of a well-educated mind. These are precisely
the skills one acquires as a computer scientist. The most productive
programmers, the sharpest researchers, and the most effective computer science
teachers are the ones who are constantly asking “What am I doing wrong?” “How
can I do this better?” “What assumptions should I be questioning?”
All science advances through
continued falsification. Theories that hold up under repeated attempts to show
them wrong are considered correct until something better replaces them: the
longer they last the stronger we believe they are. Computer science is no
different. Computer programs, strictly speaking, are never proved correct. They
are repeatedly “falsified” by an intellectually rigorous process of discovering
errors, testing with appropriately selected data, and repeating the process
until further attempts to break them are not successful—in other words, by the
repeated application of critical thinking skills.
When a student beginning the study
of computer science produces a program that does not work, the initial approach
is to try different things more or less at random until the problem is solved.
He soon discovers, however, that the most efficient use of his time is to try
and develop appropriate answers to the question, “Why did this happen?” If he
assumes that the proper way to test if two numbers are equal is with ‘=’
instead of “==” (a common mistake made with one programming language in
particular), then he will learn that assumption is wrong when his program
produces an incorrect answer. If he assumes that a user will only click the
mouse in a certain part of the screen, he will learn that assumption is wrong
when his roommate crashes the program.
Students who are exposed to computer
science learn very quickly that the best way for them to accomplish their work
efficiently is constantly to question their assumptions: their assumptions
about how they wrote the program, their assumptions about how the computer will
work, their assumptions about what the inputs will be, and their assumptions
about what users will do. Students who do not learn how to do this will find
themselves spending hours more on their assignments than their humbler and more
reflective colleagues, and are more likely to give up in frustration.
Computer scientists, perhaps more
than anyone else, reap immediate and satisfying rewards from critical,
reflective thinking. This is one of the strongest arguments for requiring
exposure to computer science as part of a liberal education.
Computer Science and Personal Responsibility
Personal responsibility,
accountability, and integrity are essential virtues, required for civil society
to function. As such, they are key components of a liberal education. Students
in pursuit of a quality education must take responsibility for their own
learning; faculty who provide a quality education must always have this
expectation whenever they take the podium. Any student of computer science who
has ever struggled with getting a program to work will get acquainted with
personal responsibility very quickly.
The humorist and social critic P.J.
O’Rourke has written, only slightly tongue-in-cheek, of “entire majors where
nothing is anybody’s fault.” Computer science is the exact opposite: everything
that goes wrong is somebody’s fault. Novice users and the popular press may
anthropomorphize computers and blame the machine when something goes wrong, but
computer scientists never do. Any student tendencies to do so disappear with a
semester or two of exposure to the discipline.
When a student’s computer program
does not work, in the overwhelming majority of cases it is due to student
error. More importantly, once he discovers the error, he recognizes where the
blame lies. Over time, this repeated process of recognizing and acknowledging
mistakes provides students with a direct encounter with personal
responsibility. The most common sentiments computer instructors hear from
students when debugging their code are “Man, that was so stupid!” “What was I
thinking?” “Oops, I forgot about that,” and so forth. The worst thing a
computer science student can say when he walks into his teacher’s office is,
“My computer isn’t doing this right.” A computer science professor knows that
he has done his job when a student comes in and says, “Something is wrong with
my program. I’ve tried some things to figure it out, but I need help.”
Personal responsibility is endemic
to computer science. Attempts to blame society, culture, or one’s background
for a flawed program will not produce working software.
Conclusion
Scholars in the humanities and
social sciences have legitimate concerns about the impact of computer
technology on their budgets, their time, and their institutions. The discipline
of computer science, however, is extremely well suited to the values of a
classical liberal education: students who study it become intimately acquainted
with objectivity, critical thinking, and personal responsibility. As such,
computer science and computer technology should be a welcome ally in the battle
for the soul of America’s universities. In the long run, they inculcate values
and intellectual habits that represent the best in American higher education.