jects are the foundation of most modern software today, his results point out
where we can expect to find challenges
in explaining objects to students. Both
Miller’s and Pane’s results encourage
us to think how we might design languages for novices that play to their
natural ways of thinking about specifying computation, like the use of event-based programming in MIT’s Scratch.
In the last four years, a multinational group of researchers has explored
“Commonsense Computing”: what
do our students know before we teach
them? Given a complex task, how do
people without programming knowledge specify an algorithm for that task?
In one paper, Lewandowski et al. 1 explore concurrency—in a complex task
of multiple box offices selling tickets
for a theater, how well do non-program-ming students avoid selling the same
seat twice? The results showed that 97
solutions (69% of the total, drawn from
five institutions) were correct; only 31%
of the solutions (45% of the correct solutions) were distributed, so teachers
of algorithms classes need not worry
about being put out of business. Non-computing students do not naturally
come up with the elegant solutions
that computer scientists have devised.
However, these results suggest that
students can “naturally” think about
concurrency correctly. Problems with
implementing concurrent programs
might stem more from the challenges
in specifying those algorithms in current programming languages, rather
than from the complexity of the algorithms themselves.
Both Pane’s and Miller’s results make
suggestions about the design of programming languages if the goal is to
make computational ideas more accessible to novices. Testing new forms of
programming languages was an area
of active exploration by Thomas R.G.
Green, Elliot Soloway, and others.
In one paper, Green and his colleagues explored alternatives to the
traditional conditional structure. 5 A
typical structure might look like the
structure shown in Figure 1. They tested a new structure where this would be
written as shown in Figure 2. This new
structure makes explicit the condition
education will pave
the way to make
thinking” a 21st
century literacy that
we can share across
for the execution of each clause of the
condition. Green and his colleagues
found that novices were able to correct mistakes using the second form 10
times faster than programs using the
Miller and Pane found that their
participants simply never used an else
clause. Instead, it seemed obvious (“of
course”) what to do when the tested
condition wasn’t true. Miller’s and
Pane’s subjects were doing something
different than Green’s. Writing a task
description is different than reading
and fixing a task description. Green’s
results complement Miller’s and
Pane’s. Novices do not naturally write
the else clause—they think it’s obvious what to do if the test fails. However, conditionals in programs are not
always obvious, and it’s easier for the
novices trying to read those programs
if the conditions for each clause’s execution are explicit.
Paving the Way for
“computational thinking” for all
To make “computational thinking” accessible to students across the entire
campus, we need to understand how
to teach computing better. Computing
education researchers explore how humans come to understand computing,
and how to improve that understanding. Computing education research is a
close cousin to human-computer interaction, since HCI researchers explore
how humans interact with computing
and how to improve that interaction.
Computing education researchers
have found a home in the International
Computing Education Research (ICER)
workshop (whose fourth annual meeting will be held this September in Sydney, Australia; see www.newcastle.edu.
au/conference/icer2008/) and in journals like Computer Science Education
and Journal on Educational Resources
Computing education research
draws on a variety of disciplines to
make computing education better. Social scientists like Jane Margolis, Lecia
Barker, and Carsten Schulte help us to
understand how students experience
our classes (which often differs from
what we might expect as teachers)
and how we can change our classes to
make them more successful for all students. Computing education researchers draw on methods from education,
sociology, and psychology in order to
measure learning about computing
and understand the factors that influence that learning. By making computing education better, we can broaden
access to computing ideas and capabilities. When we can teach every
student programming and the theory
of computation in a way that makes
sense to them for their discipline, we
will see how ubiquitous understanding
of computing will advance the entire
academy, just as Perlis predicted over
45 years ago.
1. Lewandowski, G. et al. Commonsense computing
(episode 3): Concurrency and concert tickets. In
Proceedings of the Third International Workshop on
Computing Education Research (2007), 133–144.
2. Miller, L.A. Natural language programming: Styles,
strategies, and contrasts. IBM Systems Journal 29, 2
3. Pane, J.F., Ratanamahatana, C., and Myers, B. A.
Studying the language and structure in non-programmers’ solutions to programming problems.
International Journal of Human-Computer Studies 54
4. Perlis, A. The computer in the university. In M.
Greenberger, Ed., Computers and the World of the
Future, MI T Press, Cambridge, MA, 1962, 180–219.
5. Sime, M.E., Arblaster, A. T., and Green, T.R.G.
Structuring the programmer’s task. Journal of
Occupational Psychology 50 (1977), 205–216.
6. Wing, J. Computational thinking. Commun. ACM 49,
3 (Mar. 2006), 33–35.
Mark Guzdial ( email@example.com) is a professor
in the College of Computing at Georgia Institute of
Technology in Atlanta, GA.
The Communications “Education” column will feature
commentary on education issues, presenting research
results and opinions that inform how the challenges of
computing education can be best addressed.
© 2008 ACM 0001-0782/08/0800 $5.00