You are on page 1of 2

What Everyone Needs to Know About Computation

John Barr Steve Cooper Mike Goldweber Henry Walker


Ithaca College Purdue University (Moderator) Grinnell College
barr@ithaca.edu coopers@acm.org Xavier University walker@math.grinnell.edu
mikeyg@cs.xu.edu

Categories and Subject Descriptors computer literate. Ten years ago we could assume that stu-
K.3.2 [Computers and Education]: Computer and Infor- dents knew what a folder or directory was, how to create,
mation Science Education—Computer Science Education rename, and move files, how to install programs, and even
how to change basic operating system settings. Today we
find that none of these skills are prevalent. Instead, students
General Terms are experts at finding papers on the Web, installing apps on
Design, Experimentation their cell phones, and are masters at all sorts of communi-
cation and social networking technologies from cell phones
to texting to Facebook.
Keywords The traditional view of computer literacy sees this trend
Non-major courses, Curriculum, Computational Thinking as an unfortunate development that needs to be reversed
through computer literacy/non-major level courses. Stu-
dents should be forced to learn computation, abstraction
1. SUMMARY (such as folders and files), and the basics of maintaining
For a variety of reasons there has been a renewed interest their operating system. But is this true? What do students
in non-major level computer science courses. One reason really need to know?
for this is that non-major courses are seen as potentially in- The discipline of computer science is dedicated to develop-
creasing both interest and enrollment in computer science ing computational tools. One aspect of this goal is to make
courses. Another reason is the rising popularity of “compu- the tools more accessible and flexible. As the discipline ma-
tational thinking.” Furthermore, as computation becomes tures, the tools it produces have also become more mature.
the cornerstone of research methodologies, if not professional Compare, for example, the iPhone against all previous smart
practice, in the natural, physical and social sciences, includ- phones. Certainly the iPhone is no less useful or powerful
ing, as well, a growing influence in the humanities, the de- than previous phones. Yet users no longer need to know the
mand from external departments/programs for non-major arcania of folders, the simultaneous use of multiple buttons,
level service courses has began to rise, albeit slowly. and stupefying navigation techniques.
This raises some interesting questions to the CSE commu- The lesson to take from this simple look at cell phone tech-
nity. Given that one offers a single non-major level course, nology is not that users are becoming less adept. Rather the
what should be the topics covered as distinct from the tech- lesson is that users have mastered the technology that exists
nologies used to convey those topics? What learning out- today, not the technology that existed ten years ago. The
comes are most desired? Finally, the competency, or at gritty details of computation and communication have been
least serious introduction of which technological skills, if any, abstracted out and users no longer need to master these de-
should be considered mandatory (e.g. programming). tails to use these tools effectively. Just as some people would
In short, what should a non-major/minor student who argue that computer scientists do not need to be masters of
takes one course in computer science come away with know- assembly language programming to be successful today, the
ing and being able to do? Possibly orthogonal to this is average user of technology no longer needs to master the de-
the question: What should any liberally (college) educated tails of computation to be an effective user of computation-
person know about computation at this point in time? based technology.
This panel will outline four different perspectives on this
important question in addition to engaging the audience in
a discussion regarding the answers to the questions raised. 3. MICHAEL GOLDWEBER
It is instructive to consider a proposed course, not just
against other proposed courses, but against no course at all.
2. JOHN BARR After all, both automotive and telephone technology are as
Our experience at Ithaca College is that students entering ubiquitous as computation, yet the vast majority can suc-
from high school have, over the last 10 years, become less cessfully utilize both technologies without any grounding,
i.e. non-majors college course, in either physics or mechan-
ical engineering. Taking this argument further one might
Copyright is held by the author/owner(s).
SIGCSE’10, March 10–13, 2010, Milwaukee, Wisconsin, USA. conclude that other disciplines which require knowledge of
ACM 1-58113-798-2/04/0003. computation would be satisfied by either requiring an intro-

127
ductory major-level CS course or covering what aspects of instructors can analyze the correctness of any proposed solu-
computation are needed in their own courses. tions. While not essential, machine-executable instructions
This position argues that a meaningful non-major level also can be helpful in determining reviewing correctness.
CS course should therefore not be concerned with skill ac- In this regard, pseudo-code is no better than a formally-
quisition. Instead it should focus on the discipline’s deep defined programming language. If the pseudo-code is defined
intellectual contributions; which may be described as algo- tightly enough, then it might as well be machine readable.
rithmic problem solving, harnessing abstraction to manage If pseudo-code is not tightly defined, then it is open to the
complexity, and the automation of an algorithmic solution. same ambiguities as English or another natural language.
Of these, I believe that algorithmic problem solving is not Overall, I conclude introductory courses for both non-majors
only the most important, but also the one where the greatest and majors should include a significant component of pro-
success can be achieved. gramming as a mechanism to express ideas carefully and
Algorithmic problem solving has a number of standard precisely.
paradigms; brute force, greedy, divide and conquer, dynamic
programming, etc. In addition to these techniques are the 5. STEVE COOPER
important notions of problem reduction, when a new prob-
J. Wing has indicated that she considers computational
lem can be recast as an instance of a different, previously
thinking to be the process of abstraction. Though Wing goes
solved problem, and the recognition and handling of “hard”
on to focus on the “goodness” of abstractions from an engi-
problems. Whether or not one ever intends to automate a
neering point of view (examining such measures as efficiency,
given problem’s solution, being able to approach and even-
correctness, and software engineering considerations such as
tually solve a given problem using one or more of these tech-
simplicity, elegance, usability, modifiability, maintainability,
niques is a highly valued skill.
cost, etc.), the bottom line is that any approach towards pre-
Consider a non-major level course that involves no pro-
senting computational thinking for the masses needs to focus
gramming, no discussion of objects, encapsulation or poly-
on the process of abstraction. Of course, teaching the pro-
morphism, but examines a wide variety of problems drawn
cess of abstraction is a daunting task, attempting to tackle
from a plethora of problem domains and has students prac-
one of Brooks’ essential difficulties (referred to as software
ticing how to develop solutions to these problems. Just as
invisibility) inherent in software engineering.
a liberally educated person should be versed in how mathe-
If a non-majors course needs to help students understand
maticians determine truth/solves problems; conjecture and
the process of abstraction, it seems to me to be necessary to
proof, or how natural and social scientists do the same; re-
provide the students meaningful contexts from which they
producible experiments informed via the scientific method,
are comfortable in exploring abstraction. Certainly my own
they should also be versed in how computer scientists do
work with Alice (www.alice.org, www.aliceprogramming.
the same; application of problem reduction and/or the use
net) provides the context of animation and storytelling from
of standard algorithmic paradigms.
which to explore abstraction. Scratch (scratch.mit.edu) is
an alternative. Guzdial’s work with media computation uses
4. HENRY WALKER the manipulation of sound, images, and video as an alter-
Much discussion by panelists here and by others through- native context from which to explore abstraction. Roberts’
out the computing community supports the view that intro- work with the ACM Java Taskforce provides instructors with
ductory computing courses should involve problem solving. a powerful library of graphics and other routines from which
In principle, I too support the idea that problem solving to construct their own contexts. Robots are another con-
should be central to computer science courses — for non- text, as is the programmable clothing of Lilypad Arduino.
majors, majors, and anyone else. In courses, I would hope And there are many others. It is also not necessary to fo-
that students would tackle problems and gain experience at cus on programming in providing the context. It is cer-
finding solutions. However, I wonder how students (or the tainly possible to explore abstraction through the contexts
general citizenry) will state and explain their solutions, and of networking and/or communication. It is also possible to
how they will know their proposed solutions are correct. explore computational thinking and the process of abstrac-
I think much is lost if people (students, the general public) tion through domain specific examples/contexts from the
do not have to be precise in stating their solutions. It is rea- geo-sciences, economics, politics, biology, physics, etc. In-
sonably easy to write high-level outlines for many problems structors can demonstrate how computational thinking can
in English, but it does not follow that these approaches can be used to provide abstractions for the modeling of behavior.
be refined to actually work in practice. Algorithmic problem Guzdial’s media computation is used as an example con-
solving illustrates the maxim, “the devil is in the details.” text by which to explain what I mean by the exploration of
This difficulty leads to a dilemma. Although courses for abstraction. A picture is an abstraction for a collection of
both majors and non-majors should emphasize problem solv- pixels. A pixel is an abstraction for a 3-tuple consisting of
ing, omitting some type of programming allows people to be x and y coordinates and a color. A color is an abstraction
sloppy. This observation leads to the conclusion that pro- for a 3-tuple, say of red, green, and blue. And the abstrac-
gramming of some type is needed to sharpen problem-solving tions can continue, by considering how a collection of images
skills. can be considered as a video, etc. The bottom line is that
Of course, one can become caught up in details of pro- a concrete example, meaningful to the student, provides a
gramming languages (some courses seem overly focused here), potential context from which to help students explore the
but there needs to be some way to make solutions precise. process of abstraction.
Whatever the language, students should be able to write
careful and detailed solutions, and the language should have
sufficient expressibility and precision that students and their

128

You might also like