The TeachScheme! project aims to renovate and expand the computing curriculum at all levels of education, especially secondary schools. Current high school curricula focus on the mechanical aspects of programming, especially details of syntax, libraries, and complex, professional programming environments. As a result, teachers rarely get beyond basic data structures and algorithmic concepts. Hardly anyone ever pays attention to general program design methods.Our project combats this image of computing as a syntactic swamp through a new curriculum whose main focus is a series of program design recipes. The curriculum relies on a very small number of language constructs. Its organization also implies a *tower* of programming languages, derived from Scheme, where each language extends the previous one. Our programming environment, DrScheme, implements this tower and thus succeeds in protecting beginners from inadvertent interference from advanced portions of the language. DrScheme is also designed to report errors at a level that matches the student's current understanding of the language. This trio of instructional material, language tower, and programming environment frees students to focus on the systematic design of programs, and wastes virtually no time on memorizing language features and library calls.
The project team has conducted a series of teacher training workshops over the past four years. The tests of the material in high schools has produced an enthusiastic response. After only a few weeks, beginners can write programs that compute over linked lists and directory trees, generate complex HTML Web sites, and display moving pictures. In addition, algebra teachers report that the TeachScheme! material provides new and exciting motivation for students to study algebra.
My talk will describe the essential components of the project and will explain the long-range goal of moving computing into the center of a liberal arts curriculum.