[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: peasant revolt against DrScheme!




Mike, 

I also thought for a long time that showing kids how closures are objects
and that one can build objects with closures is a good way to expose them 
to OOP and the whole notion of objects. 

In all honesty, I have come to doubt that the message-dispatching style of
Scheme is a good way for novices to learn about OOP. For those who have 
already studied C++/Java classes and objects, probably yes. For the others,
an explanation of how something works doesn't explain how you're to use it. 

In HtDP I have followed the strategy to swamp them with functions that look
similar in the first few sections. Then we say: hey all these things look 
alike. They must look alike because the design recipe takes you through
similar stages in the development. How can we do better? ABSTRACT! Let's
keep pushing this theme, and soon functions as first class values come
out. Now let's look at GUIs. Well we really need to attach functions to
buttons and rulers and sliders and menus and so on. Aha: we really need
functions as first-class values. So in short: go from concrete to abstract,
always emphasize how to use the thing rather than what it looks like on the
inside. 

-- Matthias