begin
Programming the Future
Computing is evolv- ing, and program- ming is evolving alongwithit.
Programming, by
definition, is nothing more
than arranging data in
such a way that it can be
processed by a computer.
However, the term really
encompasses so much more
than what any dictionary
would claim. This issue
of XRDS examines some
fascinating research and
opinion on programming,
from how to teach future
programmers, to coding
on a team in the for-profit
world, to breaking research
on programming bacteria,
and beyond.
The first strand of this
issue explores parallel
programming. How are we
progressing toward truly
harnessing the power of
multi-core computing?
Bryan Catanzaro and Kurt
Keutzer showcase some
great developments at the
Photo: Carlos Rosas
Can computer scientists “program”
E.coli?
Programming
has a human
side, and we
must ensure
programmers
are happy and
productive in
teams.”
University of California-Berkeley that focus on a
unique approach to parallel
programming using
patterns: building blocks
utilized by the programmer
to ensure high quality
parallel code (page 22).
Additionally, Jason Ansel
and Cy Chan from MIT
provide insight into the
PetaBricks compiler—a
great step toward enabling
scalable and portable
performance (page 32).
Soft ware development
is an industry worth
hundreds of billions of
dollars. How do we train
future programmers to
think parallel? A roundtable
discussion on the teaching
of parallel programming
investigates the challenges
in training a new generation
of programmers. Maurice
Herlihy (MIT), William
Gropp (University of Illinois
Urbana-Champaign) and
John Mellor-Crummey
(Rice University) share their
insights (page 28).
The industry has also
given birth to a number
of soft ware development
methodologies, with agile
software receiving a lot
of attention both inside
and outside commercial
environments. David
Largent investigates how
the agile approach to
programming works (page
38). It serves as a reminder
that programming has a
human side, and that we
must ensure programmers
are happy and productive in
teams.