Bjarne Stroustrup on Educating Software Developers

The noted developer, a professor at Texas A&M, talks about the problems and challenges in university computer science programs, including the controversy over Java, perceptions of offshoring, and efforts to upgrade CS studies.

Bjarne Stroustrup is a leading figure in modern software development. As the designer of the C++ language  used in everything from the Google search engine to the iPhone  his contribution has impacted countless development projects.

After 24 years as a researcher at Bell Labs, in 2002 Stroustrup became a professor at Texas A&M University, where he holds the College of Engineering Chair in Computer Science. The experience has given him insight into the all-important task of educating tomorrows software developers.

In this interview he speaks frankly about the challenges and problems  and improvements being made  in computer science programs. Among issues like perceptions of offshoring and the need to balance the theoretical with the practical, he addresses complaints by tech companies about the lack of fully qualified CS graduates.

He notes that The US industry could absorb more good developers than there are currently students enrolled in IT-related programs  but not all of those programs and all of those students would qualify as good in this context.

He also talks about CS programs overemphasis on Java, echoing an earlier Datamationinterview of Robert Dewar, a CS professor at New York University. Yet while Stroustrup agrees that Java has been used to dumb down CS programs, ultimately, the problem is one of attitude, more than an issue of programming language.

Despite these concerns, Stroustrup brings a degree of optimism to the process of improving CS programs. He notes that hes not alone in wanting change, that many people and organizations are working to revise and upgrade CS studies. It will take time to know the optimal mix of techniques and subjects, yet great energy is going into the effort all over academia  a vital process if the US is to continue to be competitive in software development.

Bjarne Stroustrup

It's interesting that you left a full-time research job with Bell Labs to take a teaching post -- some might consider a research job to be development Nirvana, with no student meetings, no university demands. What motivated you to become a professor?

Bell Labs was broken up into Lucent Bell Labs and AT&T Labs. The old Bell Labs (AT&T Bell Labs) was indeed remarkably close to the ideal for practical research aimed at changing the world for the better and Im often homesick for it. Unfortunately, it no longer exists.

Its successor organizations  especially AT&T Labs, with which Im still associated as an AT&T Fellow  tried hard to live up to the high standard set by Bell labs, but that was not easy. Part of the secret of Bell labs was a unique mix of practicality and a stable long time horizon for promising ideas  often 10 years.

As far as I know, no current industrial research organization has that. They are under the gun from business people and Wall St. to deliver now; many think that two years is long term. Im sure my managers at Bell labs had a much better idea how long it would take AT&T to benefit from C++ than I did when I started, and how. They probably also had a better idea how much good it could do, yet they encouraged me, supported me through difficult years when results were sparse, and most interestingly from todays perspective encouraged me to spend more time to get more things right.

And that work was done in an organization that had the greatest density of smart, well-educated, hard-working, creative computer scientists I have ever seen. Our interactions were more collegiate than I have seen elsewhere  without those great colleagues, I could not have done the work I did. For a list of names, see this page. Another essential aspect was the range of areas that AT&T was involved in and that Bell Labs consequently received practical challenges from. In particular, I talked with people involved in switching, networking, network management, VLSI design, board layout, billing, satellite communication, speech analysis, routing, graphics, databases, and much much more.

The old Bell Labs doesnt exist anymore  though I will certainly encourage young ambitious researchers to look at AT&T Labs; it has much to offer. I could have stayed in AT&T Labs research center in Florham Park, NJ forever, but the interesting problems from the engineering and development areas werent coming the way they used to do. Also, after 24 years in one place, I felt the need for something new.

Academia was  and is  a challenge for me. Academic research is far more different from industrial research than I had imagined and teaching itself poses a new whole new set of interesting problems for me. When I first graduated, I had a positive dread of becoming a teacher/professor because I had seen too many professors for whom academia was their whole world  they had never seriously experienced the world outside school. I did not want to become such a teacher/professor. 24 years after, I felt I had something to contribute based on my experience.

I also had some  rather naïve  ideas of perusing noble goals with a group of likeminded professors and students, coming closer to the ideals of Bell Labs than was possible in todays economic climate in industry.

Do you feel that university CS programs are properly preparing students for the demands of the marketplace? When I interviewed Robert Dewar, professor at NYU, he claimed that companies are complaining about the lack of skills among computer science graduates. Have you heard these complaints? If so, why do you think these companies are dissatisfied?

I have heard many complaints. Some from large corporations, such as Adobe, Apple, AT&T, IBM, Intel, and Microsoft, and many from companies that are less known for their software. Basically every company I visit has a shortage of qualified software developers. I have even had questions from strangers in airplanes: Youre a professor? In software? Have you got any students? Heres my card.