Vviewpoints
DOI: 10.1145/1378704.1378713
Education
Paving the Way for
Computational Thinking
Drawing on methods from diverse disciplines—including computer science,
education, sociology, and psychology—to improve computing education.
TEACHING EVERyONE ON
campus to program is a noble
goal, put forth by Alan Perlis in 1962. Perlis, who was
awarded the first ACM A.M.
Turing Award, said that everyone
should learn to program as part of a
liberal education. He argued that programming was an exploration of process, a topic that concerned everyone,
and that the automated execution of
process by machine was going to
change everything. He saw programming as a step toward understanding a “theory of computation,” which
would lead to students recasting their
understanding of a wide variety of topics (such as calculus and economics)
in terms of computation. 4
ILLUSTRATION BY CHRIS TOPHER SILAS NEAL
Today, we know that Perlis was prescient—the automated execution of
process is changing how professionals of all disciplines think about their
work. As Jeanette Wing has pointed
out, the metaphors and structures of
computing are influencing all areas of
science and engineering. 6 Computing
professionals and educators have the
responsibility to make computation
available to thinkers of all disciplines.
Part of that responsibility will be
met through formal education. While
a professional in another field may be
able to use an application with little
training, the metaphors and ways of
thinking about computing must be
explicitly taught. To teach computational thinking to everyone on campus
may require different approaches than
those we use when we can assume our
students want to become computing
professionals. Developing approaches
that will work for all students will require us to answer difficult questions
like what do non-computing students
understand about computing, what
will they find challenging, what kinds
of tools can make computational thinking most easily accessible to them, and
how should we organize and structure
our classes to make computing accessible to the broad range of students.
Through a few brief examples, I
will show in this column how these