Computers obviously not harmful (was: Re: [plt-scheme] Computers considered harmful)

From: John Clements (clements at brinckerhoff.org)
Date: Fri May 8 15:07:51 EDT 2009

On May 8, 2009, at 11:45 AM, Noel Welsh wrote:

> On Fri, May 8, 2009 at 6:52 PM, John Clements <clements at brinckerhoff.org 
> > wrote:
>> The bulk of my original posting was clearly garbage.  The only  
>> thing I think
>> is interesting (and I have nothing further to add at the moment) is  
>> the
>> notion that using robots as the lead-in to CS education may lead to  
>> a poor
>> mental model of computation in that it encourages the student to  
>> think of
>> the computer as a large robot with many state variables (a.k.a. main
>> memory).
>
> Depends on the model you use to program the robot -- you can do nice
> FRP on robotics, for example. However, in most robotics courses you'll
> spend a lot of time wrestling with the failures of the hardware, which
> can obscure the main points in a CS introduction.

Ah! No!  Finally something I can disagree with :).   I claim you get  
exactly the same problem using FRP.  It looks like this:

The students work with FRP models, and learn how to control a robot by  
defining behaviors as functions of state variables. When the students  
move to general-purpose computing, they re-use this model, and imagine  
a program as defining behaviors as functions of state variables; in  
this case, though, the state variables are the cells of the memory.

To be somewhat more specific: imagine using an FRP model to program a  
robot to add one to each element of a list:  The robot's state would  
probably include 'what element I'm visiting', and perhaps an 'add one'  
operation.  The point is that even a purely functional solution is  
placed into a robot framework that turns it into a sequence of  
mutations.

That's my thinking, anyhow.

John

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2484 bytes
Desc: not available
URL: <http://lists.racket-lang.org/users/archive/attachments/20090508/27db7ae0/attachment.p7s>

Posted on the users mailing list.