Duncan Innes on Scheme

High school math teacher Duncan Innes wrote:
I have been teaching scheme for two weeks now ( 4 two hour classes) and I am quite happy. Students seem to understand functional abstraction so seamlessly that it does not seem possible. They are far more advanced than the AP C++ students who have to get by CodeWarrior projects, "int main() {...return 0}", functions prototypes, libraries, and all the other crap you have to skip over before they can write an intersting program. There is nothing I have done in the Scheme class that I haven't been able explain fully, whereas I have had to leave a lot of stuff in C++ out until it makes any sense.

Some anecdotes:

Duncan Innes
Maine School of Science and Mathematics
Limestone, Maine

Matthias Felleisen responds:

Students who have seen C++ first often claim that "Scheme is harder than C++". WHY? I have heard this for 12 years and here is my conjecture:
  1. If Scheme is taught with something like the design recipe, you can ask the student to justify why a student did what he did. They hate that, because then they have to think.
  2. With Scheme you can quickly teach concepts that are beyond the scope of what these students have seen -- and yet they don't understand how to do things. They are still waiting for the "else" and the ";" and the "while" and, boom, here you are teaching functions.
  3. C++ has lots of syntax to get right, Scheme has almost none. As long as you are fixing syntactic mistakes, you're making progess. You're plodding along. There is no design recipe and you make small, syntax-oriented steps. Nobody can challenge you - yet. Because it might turn out to "work". Plodders love that.
  4. And last but not least: you can assign students to solve 4 or 5 problems per hour when they usually did 1 problem, if that much. And if they did, they could spend a good amount of time getting the right number of spaces into the output, putting a few extra | and + and & in, etc. Nice stuff for doodeling time away. Practice with problem solving? No way!
So yes, perhaps it is "harder" -- but with good reason.

Stephen Bloch / sbloch@adelphi.edu