# A Note on Language Levels

DrScheme presents Scheme via four different : Beginning Student, Intermediate Student, Advanced Student, and Full Scheme. The first three are called teaching languages.

We designed the teaching languages based upon our observations of students in classes and labs over several years. Beginning students tend to make small notational mistakes that produce syntactically legal Scheme programs with a radically different meaning than the one intended. Even the best students are then surprised by error messages, which might mention concepts not covered in classes, or other unexpected behavior.

The teaching levels are not ideal for instructors. They are particularly unhelpful for implementing libraries to support course material. But the levels were not designed for this purpose. Instead, in order to protect students from unwanted mistakes and to provide them with libraries based on language constructs outside of their knowledge, DrScheme provides an interface designed specially for instructors: . A Teachpack is a that is implemented in Full Scheme; it imports the functions from the teaching languages and the graphics run-time library. The exported values are automatically imported to the run-time of the read-eval-print loop when the student clicks . In short, Teachpacks provide students the best of both worlds: protection from wanton error messages and unexpected behavior, and powerful support from the instructor.

We strongly encourage instructors to employ language levels and Teachpacks. In our experience, the restriction of the teaching languages do not interfere with students' programming needs up to, and including, junior-level courses on programming languages. It gives students a more productive learning experience than raw Scheme, and simplifies the interface between library and user code.

We also strongly encourage students to point out this page to their instructors.

Please follow the links on this page for more information. If you have additional questions or comments, please contact us at scheme@cs.rice.edu.