Bjarne Stroustrup on what new software developers should learn and what CS is
January 2, 2010 at 3:04 pm 4 comments
The January 2010 issue of Communications of the ACM has an interesting piece by Bjarne Stroustrup, What should we teach new software developers? Why?. He suggests that “the first degree qualifying to practice as a computer scientist should be a master’s,” and that “professors who teach students who want to become software professionals will have to make time and their institutions must find ways to reward them for programming.”
|
I’m pleased that he talks about “software developers” in his title, as opposed to making more global statements about “computer scientists.” He does make the general claim that “The ultimate goal of CS is to help produce better systems.” Is that really the goal? If a scientist writes a 50 line script that enables her to create a visualization or analyze some data in order to gain some new insight, and then throws that script away, isn’t that also a goal of CS? Maybe Stroustrup would also see that 50 line script as a “system,” or maybe he would disagree that there is any “CS” involved in the scientist’s 50 line script. Hamming famously said, “The purpose of computing is insight, not numbers.” I wonder if “systems” are more about “insights,” “numbers,” or something else entirely.
Entry filed under: Uncategorized. Tags: CACM, computing education, image of computing.
1.
Ben Chun | January 3, 2010 at 4:38 pm
I’m not sure if it makes sense to claim an “ultimate goal” for CS as a field any more than it does for, say, biology. There’s a bunch of good things people can do within the realm of the subject as we know it, so we might as well get down to doing them.
One of those things (and a crucial one) is to use computation to gain insight. This is the underpinning, to my mind, for an argument that some CS course should be part of high school graduation requirements. As we live in an increasingly computationally-managed world, it becomes increasingly important for citizens to understand how computation is structured.
Another good thing to do is produce better systems. I can see how Stroustrup has a point here: someone implemented the scripting language your hypothetical scientist used for her 50-line script. And maybe instead of throwing away the 50-line script, a better CS-as-CS practitioner would check it into a source repository of similar scripts, which would inform future work toward building a general tool to support that kind of analysis. Or maybe, as you say, that kind of work isn’t CS, where building the scripting language interpreter is.
I think when we’re talking about developing software, the bigger question is how we ought to evaluate systems to determine if they are “better”. After all, someone might say that, “the ultimate goal of architecture is to help produce better buildings,” and really not have said much at all.
2.
Aaron | January 6, 2010 at 4:32 pm
Time to revisit roles….
3.
Most CS Professors Don’t Program « Computing Education Blog | April 5, 2010 at 8:14 am
[…] Stroustrup pointed out in his CACM piece on Jan 2010: Most CS faculty don’t program. He was particularly focusing on developing […]
4. Bjarne Stroustrup on what new software developers should learn and … | مدونة برامج الكرويتات | May 23, 2010 at 6:30 pm
[…] Visit link: Bjarne Stroustrup on what new software developers should learn and … […]