The tsunami of structured scientific
data produced by a new generation of
sensors and the growth of semi-structured and unstructured data from business, entertainment, social networks,
and popular culture have created new
needs for the creative application of our
intellectual amplifier. As the performance of IBM’s Watson system on the
game show “Jeopardy!” illustrated, the
combination of large-scale data, rich algorithm suites, and powerful computing are opening new vistas. Vannevar
Bush’s 1940s vision of a Memex, a device capable of storing, indexing, and
retrieving data from a broad knowledge
base, is now within our reach.
It really is about how we use computing as an intellectual amplifier, allowing humans to be more productive
and more creative by doing what we do
best—asking interesting questions,
ones that span multiple disciplines
and that illuminate opportunities at
their interstices—aided by powerful
analytic and computation engines.
mark Guzdial “from ‘must’ and ‘unsuitable’ to Design Guidelines in computing education” http://cacm.acm.org/
blogs/blog-cacm/106838
march 25, 2011
Matthias Felleisen gave a rousing opening keynote at SIGCSE 2011. There was
a lot to like about the ideas and insights
he presented. I particularly liked the
design-oriented topic list for an introductory CS course, versus a language-oriented one. The latter one looks like
just about any intro course you’ve ever
seen, which makes his point. What I
didn’t like about his talk was the tone
of the rhetoric. “Lesson 1: Your PL/IDE
must support an arithmetic of images.”
“Must”? I loved what they are doing with
images in Racket, but there are other
tools for novices that do lead to success
but don’t support an arithmetic of images. A useful design guideline might
be: “Lesson 1: A PL/IDE that supports
an arithmetic of image engages and
motivates students.” I buy that. I also
buy that there are lots of ways to engage
and motivate students without an arithmetic of images.
Recently, I visited Carnegie Mellon
University where I heard about their
maRK GuzDial
“let’s celebrate
our successes in
computing education
without claiming
that ours is the only
path to that success.”
new introductory curriculum. They introduce computing with an imperative
first course using a language called c-0
(“C-nought”), then follow that with a
second course using functional programming ML. The courses are quite
rigorous in that they place a strong
emphasis on verification and proof as
part of program development. I love
the multilingual, multiparadigmatic
model! Object-oriented methods show
up in a new course, not part of the core
curriculum. Then someone sent me a
link to Robert Harper’s Existential Type
blog, where he claims in the “Teaching
FP to freshman” post, “Object-oriented
programming is eliminated entirely
from the introductory curriculum, because it is both anti-modular and antiparallel by its very nature, and hence
unsuitable for a modern CS curriculum.” Really? “Unsuitable?” The CMU
report, Introductory Computer Science
Education at Carnegie Mellon University:
A Deans’ Perspective, describing the rationale for the new approach is more
careful in its claims:
Although object-oriented programming (in its myriad forms) remains a
dominant theme in industrial software
development, the use of object-oriented
languages, such as Java, at the introductory level introduces considerable
complexity and distracts from the core
goals at the introductory level. It seems
preferable to give fuller coverage of OO
design and implementation methodology
to later in the curriculum to allow more
focused concentration on basics at the introductory level.
I can buy that. That’s a valid criti-
cism, and it does consider where ob-
jects do fit into the curriculum. The
Harper blog post paints all of OO with
a Java brush. Alan Kay recently said in
a comment to a post in my Computing
Education Blog, “By my original defini-
tion of ‘Object oriented,’ neither Java
nor C++ is OO.” Message sending in
Smalltalk and Self is both object-orient-
ed and easily made parallel. Because
Java doesn’t work for the purpose, all
of object-oriented programming is “un-
suitable” and must be “eliminated”?
Daniel Reed is vice president of technology Policy at
microsoft. Mark Guzdial is a professor at the georgia
institute of technology.
© 2012 acm 0001-0782/12/04 $10.00