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 2
Page 2 of 3

Diversity is a better plan, some say

Among those who aren't mourning Basic's passing is Kathleen Fisher, a Tufts University professor, an Association for Computing Machinery fellow and former chairperson of the ACM Special Interest Group on Programming Languages. "Today we have the opposite of a lingua franca -- tons of languages," she says. "Different languages are good for different things. Each has its own domain of discourse, and it is best if the application is in the language's domain."

Kathleen Fisher
"Different languages are good for different things," says Kathleen Fisher, Tufts University professor and former chairperson of the ACM Special Interest Group on Programming Languages. "Each has its own domain of discourse, and it is best if the application is in the language's domain."

If Basic had a domain, it was as a starter language, and there are many candidates to replace it, Fisher says.

"The best 'first language' is a hot topic of debate," she says. Some feel that object-oriented languages like Java are the dominant paradigm for today's application-development work and so "we need to train with them," she explains. But educators in particular have to consider how to teach these tools, and object-oriented languages "offer a complex package that needs to be explained all at once," Fisher says. "That's not very satisfying pedagogically."

If any one language is coming to the foreground for teaching programming to a new generation of students at just about all educational levels, it's Python. The "marquee players" in computer science -- the MITs and Carnegie Mellons -- are using Python, she says. Its pieces "can be taught in isolation, which is more suited to pedagogy," she says. "After that, teaching object orientation can be done faster and better."

Python filling the niche

Python also has fans in lower levels of academia. At the Canterbury School, a college prep school in Fort Wayne, Ind., for pre-K to grade 12, "We teach Python because it is easier for kids to actually write productive code right away," says Vern Ceder, former director of technology for the school and currently a Python developer at Zoro Tools.

He tried teaching Java as a starter language in 2002 and gave up after a couple of years. Using Java, the students were unable to finish anything in the first instruction period, as they can with Python, Ceder says. In fact, having anything to show takes several days, and similar projects take two to three times longer with Java than with Python. "It's off-putting for everyone, and not just the students," he notes.

Vern Ceder
"We teach Python because it is easier for kids to actually write productive code right away," says Vern Ceder, former director of technology for the Canterbury School in Fort Wayne, Ind.

As for Basic itself, "Fifteen years ago, when I started, there were lots of kids who had done it, but it's pretty much unheard of today," Ceder says. Its descendent, Microsoft Visual Basic, is "limited to Windows, which leaves out the growing contingent of Mac and Linux users," Ceder says.

As for other free starter languages, Ceder says he has tried Scratch and Alice. "We use Scratch for our fourth graders, and it's good at that age level," he says. "We have used Alice for sixth and seventh graders. But neither is a full programming language." The school has tried teaching some high-school projects in Alice -- including Conway's Game of Life for studying a grid of cells -- and "it was next to impossible" because it's difficult to create two-dimensional arrays in that language, he explains.

Python's usefulness is no surprise to Doug Hellmann, communications director for the Python Software Foundation and a Python-using software developer in Athens, Ga. It was originally derived from an educational programming language called ABC, "and so it's well suited for introductory programmers. If you have any experience, the basics can be picked up in a full day," he says.

"It has a fairly simple syntax," Hellmann says. "A lot of languages use special punctuation or are very verbose, but Python is minimal without being arcane." Among other advantages, he explains, is that users don't have to declare a variable as an integer or a string; people can just start using it. "That makes code a lot smaller and lets you keep it in your head and understand what is going on," he says, adding that "performance is not a bottleneck, especially with modern hardware.

"We want Python to be accessible and widely used, but there is no goal to be as popular as Basic was," Hellmann adds. "There is a lot of room for different languages, but I think that Python fits well into the 'first language' slot."

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