Publication

“The role of language in teaching programming”
Stephen J. Garland
Proceedings of NECC/5, National Educational Computing Conference, June 6-8, 1983, Baltimore, Maryland, page 1.

Abstract

When teaching students how to write, we must teach them how to write in a specific language such as English or French. When teaching them how to program, we must teach them how to program in a specific language such as Basic or Pascal. In both cases, a language is the vehicle, not the object, of instruction.

Teaching a language involves instruction in vocabulary, spelling, grammar, and punctuation. Teaching writing or programming, on the other hand, also involves instruction in logic, organization, expression, and style.

The reason language becomes an issue in teaching programming is simply that we have a choice. Students have learned their native language much before they learn to write, but generally they must learn a programming language when they learn to program.

A good programming language should enhance our ability to teach programming, not distract attention from that task. It should:

No programming language is perfect by these criteria. Basic is easy to learn, but most of its common dialects cause programmers to obscure, rather than illuminate, the structure of their programs. Pascal has fewer divergent dialects, and it allows us to express many constructs quite nicely; yet it can make other constructs extremely awkward.

The best teaching strategy is to turn this lack of perfection into an asset. Teaching the limitations of a language along with its virtues illustrates dramatically that programming transcends language.