Why Scheme?

Matthias Felleisen

A first course on programming must teach principles that students can use for many years to come. Given today's rapid pace of development, it is nearly impossible to predict which programming language and which programming paradigm will be dominant when your students enter the job market. Hence, a first course should teach a language that supports the teaching of principle and otherwise stays out of the way as much as possible. The Rice Computer Science in Schools Project has therefore chosen Scheme as the first programming language.

Scheme has three advantages over traditional languages:

  1. It has a small set of syntactic rules. That is, students can write interesting programs with an extremely small subset of Scheme. The syntax of that subset can be described with ten lines (of BNF).
  2. It is highly interactive. That is, students can develop micro-components of programs in an interactive and playful manner. This form of developments reduces the debugging time by an order of magnitude or more.
  3. It is a good basis for several different programming paradigms, especialling object-oriented design and thinking. That is, once students understand programming à la Scheme, they will have no trouble studying, learning, and using an object-oriented language like Java. In contrast, imperative languages like Pascal or C++ with little or bad support for classes and objects make it difficult for students to master a different form of program design and thinking about programs.

While there are a number of languages that share these characteristics, Scheme is by far the most widely used of those and most easily supportable.

PLT / scheme@cs.rice.edu

Last modified at Tuesday, 12-Oct-1999 11:14:20 CDT