http://www.stsc.hill.af.mil/CrossTalk/2008/01/0801DewarSchonberg.html I feel for these guys, I do. I'll state up front that I'm not a professor or for that matter a software programmer in a "mission critical" project ... like say, air traffic control. So this isn't a perfectly generalized rant. I suspect that there are parts of the software world where the above article might find more traction.
However, while I agree with a lot of what they say ... I disagree with some of the particulars.
ADA. There is no need to ever learn this. Ever. Fortran is almost the same, except if you're going to maintain any math libraries, many of them are still fortran based so you'd have to know it. But ADA and Fortran, aren't something you're likely to encounter in the majority of your work. So why learn it? The same goes for Cobol in case you're wondering.
They suggest that there are a number of habits that the current crop(s) of software engineers aren't learning. So, they suggest that the students learn these languages to learn good habits.
Pardon me, guys, but if you tie the learning of the habits to the languages, languages that folks aren't going to use elsewhere, you're more likely to find that the habits get lost. Case in point, 6.170 used to be taught in CLU. If you've never heard of CLU, there's a reason. It isn't used _anywhere_ except academia. And any habits I learned in CLU I lost years ago. On the flip side, I see LISP all the time, even though it isn't what you might call a primary programming language in almost any company these days. Habits I learned in LISP I still use. And habits I learned in C++ stuck hard because I used it a lot more.
Instead, curricula should focus on teaching the habits that they want students to learn, in the languages that the students are likeliest to use. If Java, or C, or Python, or Rails, are likely to be the PLs that folks use, then the professors needs to learn those languages, warts and all. What is more likely do you think, that 10s of thousands of software engineering students will learn ADA and the skills that these professors claim are associated with it, and then take those skills to Java, or that a few hundred professors could learn Java and then teach habits to their students that they'll carry throughout their careers? Yeah, I thought so. I think that the same mentality that they claim hits students (laziness is one) has hit professors in this regard. I know it is hard to learn a new language every few years, but you're a professor. You can't pull students back to your past, you have to work with them in their present.
Personally, I do agree that students should learn a language like C. Understanding pointers, understanding the memory, knowing the processing beneath the sorts of tools like a Java VM helps them make better decisions later. Hiding everything about the system from them is only going to turn them into software artists, not engineers. But ADA? Fortran? Cobol? Even LISP? These are languages that you'll only see in a very few, narrow corners of the world. Outside of them, forget it. So why build up a framework in a language most of these students are going to discard?
Instead of a good programmer can program ADA in any language, how about a good professor can teach ADA in any langauge.
There, fixed that typo for you, professors.