The TeachScheme! Project: Computing and Programming for Every Student

The TeachScheme! Project aims to reform three aspects of introductory programming courses in secondary schools. First, we use a design method that asks students to develop programs in a stepwise fashion such that each step produces a well-specified intermediate product. Second, we use an entire series of sublanguages, not just one. Each element of the series introduce students to specific linguistic mechanisms and thus represents a cognitive development stage in the learning process. The third reform element is the use of a program development environment that was specifically developed for beginners. This paper presents the project’s premises, the details of its innovations, and a preliminary experience report.

[1]  Robert Hieb,et al.  The Revised Report on the Syntactic Theories of Sequential Control and State , 1992, Theor. Comput. Sci..

[2]  C. W. Tate Solve it. , 2005, Nursing standard (Royal College of Nursing (Great Britain) : 1987).

[3]  Charles Antony Richard Hoare,et al.  Hints on programming language design. , 1973 .

[4]  R. Stallman EMACS the extensible, customizable self-documenting display editor , 1981, SIGPLAN SIGOA Symposium on Text Manipulation.

[5]  Richard S. Bird,et al.  Introduction to functional programming , 1988, Prentice Hall International series in computer science.

[6]  Michael Kölling,et al.  Objects First with Java - A Practical Introduction Using BlueJ (5th Edition) , 2002 .

[7]  Richard C. Holt,et al.  SP/k: a system for teaching computer programming , 1977, CACM.

[8]  Gerald J. Sussman,et al.  Structure and interpretation of computer programs , 1985, Proceedings of the IEEE.

[9]  Matthias Felleisen,et al.  DrScheme: a programming environment for Scheme , 2002, J. Funct. Program..

[10]  R. Kent Dybvig,et al.  Revised5 Report on the Algorithmic Language Scheme , 1986, SIGP.

[11]  William D. Clinger,et al.  Revised3 report on the algorithmic language scheme , 1986, SIGP.

[12]  Rebecca Brent,et al.  Cooperative Learning in Technical Courses: Procedures, Pitfalls, and Payoffs. , 1994 .

[13]  Matthew Flatt,et al.  ProfessorJ: a gradual introduction to Java through language levels , 2003, OOPSLA '03.

[14]  Jonathan Rees,et al.  Revised3 report on the algorithmic language scheme , 1986, SIGP.

[15]  Matthias Felleisen,et al.  How to Design Programs , 2001 .

[16]  Pieter H. Hartel,et al.  Programming by Numbers: A Programming Method for Novices , 2000, Comput. J..

[17]  Robert Cartwright,et al.  DrJava: a lightweight pedagogic environment for Java , 2002, SIGCSE '02.

[18]  Pieter H. Hartelfhg Programming by Numbers { A programming method for complete novicesHugh , 1998 .

[19]  Seymour Papert,et al.  Mindstorms: Children, Computers, and Powerful Ideas , 1981 .

[20]  Sheila Tobias,et al.  Revitalizing Undergraduate Science: Why Some Things Work and Most Don't , 1992 .

[21]  Matthias Felleisen,et al.  The structure and interpretation of the computer science curriculum , 2004, J. Funct. Program..