How are students learning programming in a post-Basic world?

Basic is (mostly) dead. Long live Python as the next starter language?

1 2 3 Page 3
Page 3 of 3

Starter languages make a difference

Filling that slot appears to be a high-stakes decision. "We do not have enough students taking computer science courses at any level to meet the needs of industry -- we have turned a generation of kids completely off to computer science," laments Chris Stephenson, executive director of the Computer Science Teachers Association, in Eugene, Ore.

"The way we taught it, and the tools we used, was disengaging to huge numbers of students," Stephenson adds. "It was taught through drill-and-kill; the tools were not intuitive nor was the environment." A big part of the problem was that the tools used for teaching were the software tools used in industry, although the industry tools were "never intended" for teaching programming.

Chris Stephenson
Not too long ago, programming was taught through "drill-and-kill; the tools were not intuitive nor was the environment," says Chris Stephenson, executive director of the Computer Science Teachers Association.

In recent years, though, the number of students enrolled in computer-science programs has risen dramatically.

Nowadays, "we are thinking about how students learn and how they are engaged, and how to scaffold their learning to make them professionals. In the past three or four years, there has been a real explosion of entry-level computer science tools," Stephenson explains.

Of course, that explosion also works against any restoration of a lingua franca. Meanwhile, the trend in production programming has also been against a lingua franca. Fisher notes that two decades ago it looked like all production programming would take place in C++. But by about 1996 the scale of programs had reached a point where it was no longer cost-effective for programmers to handle all the housekeeping details, something that was required with C++. Java came along about then, and many professional coders switched to it with relief because it handled memory management automatically, she explains.

But Java is object-oriented, and it may fall from favor as a result of the spread of multicore processors and the consequent need for parallelism. With parallel programming, the order of execution matters, and that is much easier to control with a functional language like Python than with a more object-oriented language, she explains. (Not everyone considers Python to be a functional language, however.)

Meanwhile, today's Web applications cannot be efficiently written in one language, because functions are split between desktop software, server software and communications protocols, each optimized for what it does, Fisher says.

"You can expect to see a proliferation rather than a narrowing down of languages," Fisher says. "It will be less important to learn one language well than to be able to learn new ones quickly."

Lamont Wood is a freelance writer in San Antonio.

Next: Midnight programming, 1979 vs. 2011

Copyright © 2011 IDG Communications, Inc.

1 2 3 Page 3
Page 3 of 3
7 inconvenient truths about the hybrid work trend
Shop Tech Products at Amazon