The Identity Crisis In Computer Science
In the Spring of 2010, I was in a meeting where Computer Science
faculty sat around voicing opinions about what's important in the
field and what students should learn. The discussion centered
around trying to define CS and the question of where the field
is going. I had a feeling of deja vu because the same basic opinions
had been voiced many times in preceding years. As I sat listening, it
suddenly occurred to me that an underlying psychological problem had
taken over Computer Science: the field found itself in a malaise,
experiencing an identity crisis and questioning its value.
Let me explain. During the discussion, one of the Computer
Scientists mentioned that in the 1980s, there was talk of CS
becoming the next Pillar of Science, which would finally put CS
on equal footing with fields like Physics, Chemistry, Biology, and
Earth Sciences. “What happened?”, he asked, and went on to lament
that other sciences usually view CS as merely “supporting”
Another Computer Scientist suggested that CS has made a mistake by
thinking that the field is about the creation of software and
software systems. He argued that algorithms and software engineering should not
be at the heart of what we do, but instead, suggested that CS should
relabel itself as the field that focuses on more abstract “computational thinking”
or one that “provides solutions to computational problems”. Each of
these positions is symptomatic of an underlying problem: instead of being proud
of our great accomplishments, such as the creation of the Internet and powerful
interactive computer systems that have changed the way people around the world work
and play, some computer scientists seem stuck in the doldrums, feeling disappointed and
wishing for more academic prestige.
How Did We Get To This Point?
Maybe it's endemic. After all, fields like Philosophy made a
similar transition — in the quest for prestige, they relabeled
themselves as “thinkers” rather than “doers”. Such a
transition can indeed help members of a field feel better about
themselves. Collectively, they can decide that they are superior
to other academics because they operate above the fray of everyday
existence. Only the elite in their field can understand and
appreciate the true essence of thinking. Unfortunately, the euphoria
is short-lived: in a few years, the field becomes detached from the
real world and slides toward irrelevancy.
Maybe it's a youthful misunderstanding. Unlike fields such as mathematics and physics with
a history that spans thousands of years, CS is a young discipline that has grown rapidly.
Perhaps, CS is like a teenager — not fully mature, and not yet
confident about its place in the world.
Maybe it's living in the shadow of the Internet. A few years ago,
I was shocked by a series of research proposals in which each
researcher claimed their proposed project would create a replacement
for the Internet that was bigger, better, faster, more reliable, more
secure, more energy efficient, easier to use, and easier to manage.
Instead of analyzing tradeoffs, the researchers had picked up the habit
of hyperbole that was once reserved for marketing. In fact,
whenever a computer scientist says that CS should really be in the
business of providing “solutions” to computational problems, I wonder
if they have unwittingly picked up the latest marketing trend: instead
of marketing products and services, high tech companies in Silicon
Valley market “solutions”. With research proposals making
outrageous claims and marketing hype pervading our discussions, it's
no wonder computer scientists have developed an inferiority
complex — many are dreaming about becoming superheroes.
Maybe it's living in the shadow of Microsoft and iPhones.
When an average person hears the words “computer scientist”,
they usually assume complete knowledge of every computer and networking
product ever created. In reality, of course, no one can be familiar with
all available applications and systems, nor can they remember a
catalog of vendors, products, releases, and patches. Thus, if a
computer scientist attempts to help a friend or family member with
a computer problem, they can quickly feel inadequate.
Maybe it's insecurity. Indeed, many
computer scientists feel uneasy because their research
lacks impact. They avoid talking about the big successes in
the field because they were not personally involved. More important,
big successes can make one feel threatened. When
the Internet project came along, for example, some computer
scientists declared that, unlike their own research, the study of
computer networks did not have significant intellectual depth.
Others flatly declared that networking was “not part of computer
science and never would be”. In retrospect, trying to exclude
networking was silly and futile, but such attempts happen so often
that it may indicate an underlying problem.
Maybe it's the culture. Much of the culture in an academic field
is passed along in universities. If faculty members repeatedly
imply that CS is inferior through their lack of enthusiasm and
inability to articulate a clear vision, students may adopt the view.
Even if faculty don't make a direct statement, students are likely
to read between the lines, sense attitudes, and pick up subtle
hints. Ableson and Sussman of MIT once remarked that Computer Scientists
have “math envy” — they wish they were real mathematicians.
So, they write lots of equations to give the impression that they are
doing deep mathematics. Undergrads are often impressed, and conclude
that the equations mean faculty are incredibly smart. Later in their
careers, it must be disappointing when they realize that the equations
do not match reality.
Top grad students often see through the ruse and start
questioning the validity of the research. In the end, however,
even grad students can walk away with a subconscious impression that
mathematics is to be envied and CS is merely a cheap imitation.
What Can We Do To Correct The Problem?
A few suggestions.
Change the breed: filter admissions. Here's a chance for
multidisciplinary research: work with psychologists to
devise a test that can be administered to students who apply to
CS programs. If an applicant is prone to develop math envy
or envy of other fields, send the applicant to another department.
It should only take about four years before we see a significant
change in the students emerging from undergrad programs. In another
six or seven, we'll see a change in the young faculty, and the herd
Change the culture to one that celebrates contributions and
achievement. Assure CS faculty that the rest of academia isn't
better or more prestigious than CS — it's just that those areas
have spent many decades justifying their existence and defending
their importance. As an undergrad majoring in physics and
mathematics, for example, I saw the situation clearly. By the time
we were sophomores, physics majors knew that physics “owned” the
entire universe from subatomic particles to astrophysical phenomena.
Physics had a well-deserved reputation as the most difficult major on campus,
so everyone assumed physics majors were very smart. But
there was more: faculty repeatedly assured us that everything in the
universe followed physical principles. Once we understood physics,
they asserted, everything else could be derived as a consequence.
Thus, the physics faculty gave the impression that even chemistry
and biology were offshoots of physics — uncovering principles
of energy and matter formed the heart of science. Other academic
groups each instill pride in their students. For example, math
majors are told that mathematics “owns” the abstract universe and
chemistry majors are assured that chemists do important work while
physicists merely fiddle around with string theory or build bigger
and bigger atom smashers looking for smaller and smaller (i.e., less
consequential) subatomic particles. CS needs to create a culture of
pride in the field and our accomplishments.
Discard the idea that “thinking about computing” in the abstract is
somehow more prestigious than “thinking about novel ways to design
and build computing systems”. The promotion of abstract thinking
divorced from reality appeals to computer scientists who are drawn
to mathematics or who engage in the practice of discovering flaws
rather than building. Abstract thinking can seem alluring because
it simultaneously removes the requirement that assumptions need to
match reality and places CS above the fray of having to understand
real systems and practical constraints. Moving CS from building
computer systems only to “thinking” about computing completely
misses a key point: if it stops dealing with the real world of
computers and software, CS will become irrelevant. We will
end up with angels dancing on the heads of pins, and another
discipline will move in to take over the aspects of computer
science that have significant influence.
Set up mini training sessions for faculty. Enable CS faculty to learn
enough about commercial products to be literate. There are two
benefits. First, if computer scientists can learn enough to be
slightly ahead of an average user, they will feel better. Second,
if they understand the limits of commercial products, faculty
will help devise ways to improve them. The good news is that little
is required to stay ahead of the general public. Many problems
have a trivial fix (e.g., plug it in or reboot it). Someone with
a little technical knowledge who proceeds logically can seem like
an expert when compared to an average user. Thus, a small
amount of training can create confidence.
Launch a publicity campaign. Remember that over the past
decades, CS has changed the world. Instill pride in our
accomplishments. Stress that we figured how to build the complex
computation and communication systems that average users take for
granted. Keep everything lighthearted, but remind students why CS is
a leader among academic disciplines. Smile and wink, but
announce that physicists and chemists are really only kept around
because they “help” computer scientists. After all, we need
results from device physics to help us create smaller, faster
transistors and we need chemists to improve the fabrication of
silicon chips. Physicists also help us create better
lasers for optical networks, and have been especially helpful in
designing smaller, more efficient antennas for wireless networks.
Sure, antenna design is only a minor piece of networking (and
not deeply intellectual like the protocol design work Computer Scientists
have done), but it's nice that physics can help.