Choice of Language
The programming language is the single most important choice a teacher
can make, since it is the technology that students encounter the most.
Unfortunately, languages like Pascal and C++---and their programming
environments---are virtually unchanged since the early 1970's, so they
are unable to capitalize on over two decades of computer science
research which can have a direct positive impact on the quality of
education.
For these reasons, we prefer the programming language Scheme, and the programming
environment DrScheme.
DrScheme is described in more detail later in
these slides.
Scheme has many salient features:
- It is far removed from the details of the underlying hardware and
operating system. In languages like C++, students must constantly
worry about details of the architecture their program is running on;
often, these low-level details can produce confusing and even
inexplicable results. These problems do not occur in Scheme.
- Students spend very little time on debugging. This is in direct
contrast to the approach with traditional languages. This is
because, in languages like C++, many errors can only be understood
by examining the innards of the system. The likelihood of this is
severely compounded when students try to use advanced data
structures (which is why teachers often prefer to avoid them). In
Scheme, debugging in this traditional sense does not even exist.
Students instead use advanced tools like program steppers to
understand the behavior of their programs.
- In Scheme, even the smallest expression can be treated like a
complete program, ie, it can be evaluated or stepped
through. Thus students can experiment with small fragments of code
and make sure the fragments work correctly before using them to
build larger programs.
- DrScheme is an interactive environment. Students can enter
expressions and immediately see the result of evaluating them.
There is no lengthy compilation phase, and students are shielded
from unnecessary details like linking. Since the environment offers
rapid feedback, students are encouraged to explore their ideas;
since it is gentle, they are not punished for doing so.
Conventional languages like C++ differ in all these respects. They
create artificial obstacles unrelated to the essence of programming.
Since students must overcome these obstacles before they can feel
comfortable programming, students often develop the incorrect (but
justified) opinion that programming is a mundane and boring activity.
In particular, students who are uninterested in the arcana of
computers, or who seek more creative challenges, are turned off of
computer science entirely.
See a concrete example of how C stacks
up against Scheme.
PLT /
scheme@cs.rice.edu
Last modified at 20:34:32 CST on Saturday, November 22, 1997