C++ creator Bjarne Stroustrup reimagines how coding is taught

Published April 15, 2025, 11:21 p.m., last updated April 15, 2025, 11:21 p.m.

At a Computer Science Education Seminar talk Thursday, C++ creator Bjarne Stroustrup shared his thoughts on the role of C++ and what needs fixing in programming education. C++, a programming language that builds on the C language by adding objects, is currently the world’s second most popular programming language, according to the TIOBE Programming Community Index.

Stroustrup has spent decades working in both academia and industry, with roles at Morgan Stanley and Bell Labs, where he designed C++ in 1979. Now, he is a professor of computer science at Columbia University. 

Drawing on his vast array of experiences, Stroustrup argued that programming education needs more variability. He notes that one of the biggest failures in education is that courses “teach programming as one thing for everybody.”

In his teaching, Stroustrup hopes to inspire students who are eager to learn more and mentioned a controversial idea among many universities: fewer computer science students overall. 

“Far too many students study software and software development in general,” Stroustrup said.

He also addressed a new view for teaching computer science. To Stroustrup, a uniform approach to computer science education ignores the reality that different types of programming require different skill sets. As an example, Stroustrup pointed out that writing code for a web app is not the same as developing infrastructure for a mega corporation like Google. Yet, many intro courses treat them as identical. 

To attack this issue, Stroustrup advocated for splitting courses into three different tracks.

One would serve nonprofessionals, or those who only want basic tools. The second caters to scientists who want to focus on application-based programming instead of theory. The third emphasizes engineers or specialists who want to dive deeper into the complexities of software engineering.

Stroustrup noted that he’d also like to see improvements in programming textbooks. As someone who has read many wordy textbooks that overemphasize syntax and rarely build toward important concepts, he said he has found that many books spend an entire chapter on how to write an if-statement. 

“[When] you are about three years old, you know if the light is red, stop. [If] the light’s green, you can walk,” he joked.
“That’s it.”

While many universities — including Stanford — teach Python in introductory-level computer science courses, Stroustrup believes C++ can offer students a unique access to hardware and performance optimization. He notes this comes with difficulty. As it stands, he feels as though many current approaches fall short because they don’t guard against students from getting into the weeds of the C++ language.

Chris Gregg, a computer science professor at Stanford, wrote to The Daily that “Stroustrup is a giant in the field of programming languages and a visionary engineer.”

Gregg wrote that the computer science department is always looking to improve its introductory courses for the future and that “hearing Bjarne share his insights in our CS Education Seminar was both inspiring and timely.”

Micheal Paper, a first-year graduate student in computer science, expressed his gratitude for the talk. “[It] was very thoughtful for knowing what are important aspects of teaching C++, teaching programming, teaching all of it,” Paper said.

Stroustrup also reflected on his motivations for creating C++. One key reason, he explained, is that he wanted a language that could work at a high level and close to the hardware. To him, C++ had to be a language that wasn’t just elegant, but could run fast enough on machines. 

“If you don’t have device drivers, memory managers, schedulers and such, you better build them, and you have to have a language that builds in it,” Stroustrup said. 

When asked for specifics about different languages, Stroustrup made it clear that he dislikes “language wars,” and that his policy is not to attack other languages or C++ applications. Instead, he pointed out a broader issue in computer science education when many university courses focus on individual language features without showing students how to use them together. 

“I don’t consider anyone a professional if they only know only one language,” he said, noting that there’s a difference between knowing a language’s syntax and knowing how to write good code. 



Login or create an account