Mark Guzdial, a leading researcher in computing education, blogged a few days ago about the Texas Advanced Computing Center's training program for computational scientists, and asked, "Given the importance of computational science, what do all scientists and engineers need to know about high-performance computing?" As you might expect, I replied to say that the question was almost always premature: we should first ask what scientists and engineers need to know about computing in general before tackling HPC.
Mark has responded with a post on the CACM blog that quotes me, and puts Software Carpentry in a larger context:
...by 2012, there will be about 3 million professional software developers in the United States, but there will also be about 13 million end-user programmers—people who program as part of their work, but who do not primarily develop software... these end-user programmers don't know a lot about computer science, and that lack of knowledge hurts them. He find that they mostly learn to program through Google. In his most recent work, he is finding that not knowing much about computer science means that they're inefficient at searching.
He then goes on to quote Alan Kay's "Triple Whammy" of core concepts:
- Matter can be made to remember, discriminate, decide, and do.
- Matter can remember descriptions and interpret and act on them.
- Matter can hold and interpret and act on descriptions that describe anything that matter can do.
and asks, "How do we frame [this] in a way that fledgling scientists and engineers would find valuable and learnable?" I agree that these ideas are at the heart of computing, but trying to map them directly to "here's what you do on Tuesday morning" is a really big step. I hope that our concept map is one of the intermediate steps, but there have to be many, many more.