[plt-scheme] htdp and modules

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Thu Nov 22 12:30:44 EST 2007

On Nov 22, 2007, at 12:14 PM, Jan Christiansen wrote:

> Hi,
> Am 22.11.2007 um 15:18 schrieb Prabhakar Ragde
>> They do support `require', so it is possible that you can import  
>> exactly the functionality you want. However, in a similar  
>> situation, I have chosen to move to Pretty Big.
> this looks fine, too. Is there a possibility to get rid of the #f?  
> In a corresponding lecture the students are taught scheme and they  
> don't learn anything about this extra argument. I would like to  
> stick to this lecture as close as possible.

See previous email for technical details.

English language: Kurs translates as course, Praktikum as lab or lab  

General remark: I shared this with someone from Darmstadt earlier  
today: HtDP languages don't teach Scheme. "After studying HtDP, you  
will know some Scheme-like language. But it is not Scheme and we  
certainly ignore the general libraries until you have an idea of how  
to use them.

The purpose of the subsets is indeed to provide a gentle slope for  
the acquisition of a full language. Using full-fledge languages for  
introductory courses instead means the compiler must assume that you  
know the full language when it explains an error.

We chose Scheme-like languages because we believe that the language  
has the correct attributes for an introductory language."

And in the same message: "Any university-level course that teaches a  
programming language per se is a waste of time and money. Sue your  
university to get the tuition back, if it does.

[Any course that doesn't involve some programming is equally bad.]"

The purpose of university-level courses should be to teach you the  
principles (especially design principles) that empower you to learn  
anything that the world will throw at you. Learning happens by doing,  
so in CS it can only happen via programming. Overlearning the details  
of any language is silly when time is so precious and short at the  
university level. Karlsruhe, where I went to school but didn't study  
CS, the introductory course used Algol 60, Simula 67, Pascal, Scheme,  
C, Haskell, Eiffel, and Java over 20+ years as far as I know. In  
other words, languages become (un)fashionable in a shorter time than  
it takes to graduate in the US not to speak of slow-motion places  
such as Germany.

It is for this reason that we (PLT) made the construction of  
languages inexpensive and easy. One of us (Eli) makes a language per  
week for an upper-level (middler, junior) course on PLs. It is much  
much easier to teach principles with such artificial but realistic  
looking languages than with full-fledged languages. And if you do it  
right, your students can adjust to any language they encounter,  
including ASM.

-- Matthias

Posted on the users mailing list.