[plt-scheme] A Couple of Questions on DrScheme/Mzscheme

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Sat Sep 28 11:09:35 EDT 2002

Why do young students object to Scheme as a language? Or do they? 

Neil's experience is not all too uncommon with MIT students and 
SICP based courses at other places. There is a large number of 
students who see that they are exposed to ideas beyond the 
regular run-off-the-mill course. Many also understand that, in 
principle, they are being handed a very powerful tool. 

Don't get me wrong .. SICP is a wonderful book and it can be 
the basis of a wonderful course, but SICP cannot possibly be 
the basis of a good introductory course if programming and 
program design are the goal. MIT students become decent programmers
despite this course, not because it. Places with similar students
have the same experience -- and admit it if they have the courage
to analyze what's going on.

You need to do two things in the first course that SICP completely 
fails at, if you want to bring across the power of the approach: 

 1. You need to accept that the second course is NOT going to be
    in Scheme, even if the first one is. The second course must
    be in TCFPL (the currently fashionable PL). Ergo, you need to 
    prepare students for the second course -- with Scheme and a 
    programming philosophy. That's why we called our book 
    "How to Design Programs." 

 2. You need to assign homeworks and projects that indicate how 
    powerful the tool is that you're using in this course. You 
    must make them hate whatever TCFPL is used afterwards, by
    showing them what they think is cool and what TCFPL can't 
    do easily right. 

At Rice, students disliked the Scheme (first) course as much as 
anything when PLT and I took over the course. By the time we left 
they had revolts and town meetings, but student after student got
up to say that the first course is okay. 

If you want to see how we do it at NU, go to my home page and follow
the teaching link to my current course (Fall 2002). If you want to 
read a deeper analysis and design rationale, see the FDPE 2002 paper 
at http://www.ccs.neu.edu/scheme/pubs/ -- for which I should build
a talk right now ... 
Final thought. The power of a PL comes in two ways: 
 1. The power of inherent PL abstraction. As some of you know
    I have developed a theory on that topic, and I think it 
    pretty much holds up. 

 2. The power of libraries to do "real" thinsg in a compact way. 
    There is no theory. There is only hard labor and good taste
    and the ambition to do it as right as possible within these

That's what PLT Scheme is about. And that's where we need everyone's help. 

-- Matthias

Posted on the users mailing list.