gave solutions that assumed a system
fast enough to eliminate race conditions. Though incorrect, they provide
a starting point for understanding
atomic operations and the interleaving of instructions.
conclusion
In both their correct and incorrect
preconceptions, the 66 students in
our 2006 study apparently began their
first computing course with essentially the same level of intuition as
they began their first course involving concurrency. This similarity suggests students do not gain a deeper
understanding of concurrency as they
advance through the curriculum. As
we have no data indicating that taking nonconcurrency courses provides
skills that help one learn concurren-cy-related material more quickly, it
may be there is no advantage to delaying the introduction of concurrency.
Given the prevalence of concurrency
and its increasing relevance at all levels and applications of CS, we suggest
it may be wise to include concurrency
earlier in the curriculum.
No matter which course introduces concurrency, the problem and
student-proposed solutions in our
study suggest ways to leverage student preconceptions. For example,
instructors could conduct an exercise
like this and choose student-generat-ed solutions for further discussion to
explicitly address common errors. In
particular, they could:
˲ ˲ Emphasize the real-world nature
of the problem, pointing out related
concurrency problems;
˲ ˲ Demonstrate that race conditions
come up even in “fast” systems;
˲ ˲ Use responses that pass the buck
(appearing to solve the concurrency
problem by moving it to another operation without actually solving it) to
help discuss the notion of atomic operations;
˲ ˲ Use a centralized solution to discuss interleaving instructions and
pipelining technique; and
˲ ˲ Use responses that do not scale
well to discuss scaling.
Here, we’ve addressed a rich set of
student responses that represent a
starting point for asking students to
critique proposed solutions, empha-
sizing concepts we know are at the
edge of their preconceptions. All such
concepts could be discussed early or
at least introduced in CS1.
acknowledgments
This material is based in part on
work supported by the National
Science Foundation under grants
DUE-0736343, DUE-0736700, DUE-
0736572, DUE-0736738, DUE-
0736859, and DUE-0736958. Any
opinions, findings, conclusions, or
recommendations expressed here
are those of the authors and do not
necessarily reflect the views of the
NSF. We thank the many students
who responded to the questions used
in this and our other studies; Sally
Fincher, Josh Tenenberg, and the
NSF (through grant DUE-0243242)
who provided us with workspace at
the SIGCSE conferences in 2006 and
2007; Renee McCauley, Sara Miner
More, and Suzanne Westbrook for
help with fall 2006 data collection and
others who collected data for us in
other commonsense projects; and the
anonymous reviewers for their comments and suggestions. An earlier
description of the study, with expanded analysis and discussion, is in the
Proceedings of the Third International
Computer Science Education Research
Workshop. 9
References
1. ben-Ari, M. Constructivism in computer science
education. Journal of Computers in Mathematics and
Science Teaching 20, 1 (Mar. 2001), 45–73.
2. ben-David Kolikant, y. Gardeners and cinema tickets:
high schools’ preconceptions of concurrency.
Computer Science Education 11, 3 (sept. 2001),
221–245.
3. bonar, j. and soloway, e. Preprogramming knowledge:
A major source of misconceptions in novice
programmers. In Studying the Novice Programmer,
e. soloway and j. spohrer, eds. lawrence erlbaum
Associates, hillsdale, nj, 1989, 325–354
4. bransford, j.D., brown, A.l., and Cocking, R.R., eds.
How People Learn: Brain, Mind, Experience, and School.
national Academy Press, Washington, D.C., expanded
edition, 2000.
5. bruce, K.b. and Danyluk, A. event-driven programming
facilitates learning standard programming concepts.
In Companion to the 19th annual ACM SIGPLAN
Conference on Object-Oriented Programming
Systems, Languages, and Applications (Vancouver, bC,
oct. 24–28) ACM Press, new york, 2004, 96–100.
6. Clancy, M. Misconceptions and attitudes that interfere
with learning to program. In Computer Science
Education Research, s. Fincher and M. Petre, eds.
Taylor and Francis Group, london, 2004, 85–100.
7. Committee on undergraduate science education.
Science Teaching Reconsidered: A Handbook. national
Academy Press, Washington, D. C., 1997.
8. Gibson, j.P. and o’Kelly, j. software engineering as
a model of understanding for learning and problem
solving. In Proceedings of the First International
Workshop on Computing Education Research (seattle,
oct. 1–2). ACM Press, new york, 2005, 87–97.
9. lewandowski, G., bouvier, D., McCartney, R., sanders,
K., and simon, b. Commonsense computing (episode
3): Concurrency and concert tickets. In Proceedings
of the Third International Workshop on Computing
Education Research (Atlanta, sept. 15–16). ACM
Press, new york, 2007, 133–144.
10. Miller, l. natural language programming: styles,
strategies, and contrasts. IBM Systems Journal 20, 2
(june 1981), 184–215.
11. onorato, l. and schvaneveldt, R. Programmer/
nonprogrammer differences in specifying procedures
to people and computers. Chapter 9 in Empirical
Studies of Programmers, e. soloway and s. Iyengar,
eds. Ablex Publishing, norwood, nj, 1986, 128–137.
12. Resnick, M. Turtles, Termites, and Traffic Jams:
Explorations in Massively Parallel Microworlds. MI T
Press, Cambridge, MA, 1994.
13. simon, b., bouvier, D., Chen, T.-y., lewandowski,
G., McCartney, R., and sanders, K. Commonsense
computing (episode 4: Debugging). Computer Science
Education 18, 2 (june 2008), 117–133.
14. simon, b., Chen, T.-y., lewandowski, G., McCartney,
R., and sanders, K. Commonsense computing: What
students know before we teach (episode 1: sorting).
In Proceedings of the Second International Workshop
on Computing Education Research (Canterbury, u. K.,
sept. 9–10). ACM Press, new york, 2006, 29–40.
15. smith, j., disessa, A., and Roschelle, j. Misconceptions
reconceived: A constructivist analysis of knowledge
in transition. Journal of Learning Sciences 3, 2 (Apr.
1994), 115–163.
16. stein, l.A. Interactive programming: Revolutionizing
introductory computer science. ACM Computing
Surveys 28, 4es (Dec. 1996), 103.
Gary Lewandowski ( lewandow@cs.xu.edu) is a professor
in and chair of the Department of Mathematics and
Computer science at Xavier university, Cincinnati, oh.
Dennis J. Bouvier ( djb@acm.org) is an associate
professor in the Department of Computer science at
southern Illinois university, edwardsville, Il.
Tzu-Yi Chen ( tzuyi@cs.pomona.edu) is an associate
professor in and chair of the Department of Computer
science at Pomona College, Claremont, CA.
Robert McCartney ( robert@cse.uconn.edu) is an
associate professor in the Department of Computer
science and engineering at the university of Connecticut,
storrs, CT.
Kate Sanders ( ksanders@ric.edu) is a professor in the
Department of Math and Computer science at Rhode
Island College, Providence, RI.
Beth Simon ( bsimon@cs.ucsd.edu) is a lecturer with
potential for security of employment in the Department
of Computer science and engineering at the university of
California, san Diego.
Tammy VanDeGrift ( vandegri@up.edu) is an assistant
professor in the Department of electrical engineering and
Computer science at the university of Portland, Portland,
o R.