TCEA State 1998 Slides


Introduction

The ETS has recently mandated that the AP Computer Science exam test students for their knowledge of C++. However, the curriculum extends far beyond C++. In particular, mastering the curriculum takes three things:

Note that the first two are independent of C++.

It is therefore reasonable to ask whether C++ is in fact the best language to use to teach the first two topics. Our ideal programming language would contain several features:

The last of these is somewhat subtle and perhaps the most important. Just as, in mathematics, teachers (rightly) care more about the correct method than the correct answer (which can be obtained through wrong steps), teachers of programming should care that the programming language stop and signal all errors so that students can tell when something goes wrong.

In addition, we have all seen that students learn best when they are given interesting and exciting material to work with. Therefore, the ideal language should provide simple yet powerful support for learning-friendly features like graphics. Finally, the programming environment should be designed with the needs of beginners---not of sophisticated professional programmers---in mind. As we will see, these needs can differ widely.

We believe that C++ has none of these features, and is thus thoroughly unsuitable as an introductory language. Its flaws are especially pronounced when excellent alternatives are available.

PLT / scheme@cs.rice.edu

Last modified at 22:38:04 CST on Sunday, February 08, 1998