The choice of which programming language to use in introductory computer science
courses is guaranteed to spark debate in the computer science community. Programming
languages used in computer science instruction have followed various trends or fads within
the computing industry. The language choice has often been between languages which are
currently in wide use by industry for software production. While it is true that computer
science education has a responsibility to achieve a balance between providing training in
current practices within the field and core concepts and theory, it is felt that computer
science education should not be overly influenced by popular trends when choosing a
programming language to use in the teaching of introductory computer science.
Functional programming languages are shown to be useful in the teaching
of the concepts of computer science. The functional language
approach presented in this paper has advantages over imperative languages
in the areas of model building, exposition, experimentation and analysis of algorithms.
Examples using the J and Scheme programming languages, with emphasis on
the use of functional programming notation in exposition are given.
1