Scheme for education 
Author Message
 Scheme for education

Hi!

I'd like to know your opinion about using DrScheme for educational
pupose. We are using MIT-Scheme, but I tried DrScheme yesteray and
I found nice the way it shows the bindings... But it's a pity we have
to re-evaluate the whole buffer at each executions...
Despite this little problem, I'm sure it would be easier for students
to use DrScheme because the interface is more friendly (no
Escape-Meta-Alt-Control-Shift like commands...).

What's your opinion ?
--
///// Christophe Darlot         Laboratoire d'Informatique de Besan?on /

///         http://www.*-*-*.com/ ;    ///
// Flying is easy ; you just have to miss the floor while falling...////
/                                                     Douglas Adams/////



Mon, 09 Apr 2001 03:00:00 GMT  
 Scheme for education

Quote:

> [About DrScheme]
>                                            But it's a pity we have
> to re-evaluate the whole buffer at each executions...

It would have been easier to make this behave like old-style Schemes,
but we went to some effort to make it work this way.  Therefore, I
hope you understand the rationale behind this.  Our reasons are
documented in the paper available from the DrScheme page:

  http://www.cs.rice.edu/CS/PLT/packages/drscheme/

You may wish to read the paper to understand our motivation.  It's
certainly been a huge win for our students, and the student lab
assistants (who took previous versions of the course without this
feature) have said they wish they had it, which tells us we're doing
something right (maybe brainwashing (-:).

'shriram



Mon, 09 Apr 2001 03:00:00 GMT  
 Scheme for education
   Date: 22 Oct 1998 11:17:09 -0500


   > [About DrScheme]
   >                                               But it's a pity we have
   > to re-evaluate the whole buffer at each executions...

   It would have been easier to make this behave like old-style Schemes,
   but we went to some effort to make it work this way. ...

As a educational user who is not an "insider", I'll add my thoughts on
the "functional" (DrScheme) vs. "imperative" (MIT Scheme) interaction
style.  Namely, it seems to be yet another case where when one
switches (probably in either direction, though I've only tried one)
the new style seems quite unreasonable.  However, for those who are
newly being indoctrinated, either can be made quite natural.

The great advantage is in getting rid of those pesky "what you see is
not what you've got" bugs.

In my mind the biggest downside is that multi-file projects are not
treated on a first-class basis.  With the MIT Scheme model, you can
zap definitions in from as many different buffers as you want, and it
is no better or worse than from one.  But with DrScheme, if you try
doing the obvious thing, you find that each file buffer gets loaded
into its own private REPL, unable to interact with the definitions
from other files.  The solution (at least, the best I've found so far)
is to have one "main" file buffer associated with the REPL
(interaction window) that contains nothing but load expressions
loading the various real files in. Then each real file is in its own
file buffer, with no associated REPL.  The routine for trying the
program out is now no longer to just hit Execute.  Instead it is to
hit Save in each modified file buffer and then hit Execute in the main
one.  This is a "second class" treatment of the multiple-file case,
because I once more have to take explicit pains to avoid "what you see
is not what you've got".  Namely, if I forget to save out one of the
file buffers, when I hit Execute my load expressions will happily load
in the old version that is in the file system.

If I had one wish-list item for DrScheme, it would be to improve in
some way the handling of multi-file projects.  I'm not sure what the
best way to do this would be.  Possibilities include:

 (1) Providing an explicit mechanism for associating multiple file
     buffers with a common interaction window, such that hitting
     Execute loads them all in, and such that one is warned upon doing
     an evaluation if any of them have been modified since the last
     Execute.

 (2) Provide a warning when a load expression loads in a file that is
     currently open in a dirty file buffer.

On the whole, I've got to say that I like DrScheme very much. It has
an honored place among the Scheme implementations I recommend for use
with the Concrete Abstractions textbook.

-Max Hailperin
 Associate Professor of Computer Science
 Gustavus Adolphus College
 800 W. College Ave.
 St. Peter, MN 56082
 USA
 http://www.gustavus.edu/~max/



Tue, 10 Apr 2001 03:00:00 GMT  
 Scheme for education

Quote:

>If I had one wish-list item for DrScheme, it would be to improve in
>some way the handling of multi-file projects.

Considering how customizable DrScheme is in other respects, I suggest
that the easiest solution would be to allow users to choose not to get
a separate repl per file!


Tue, 10 Apr 2001 03:00:00 GMT  
 Scheme for education
Christophe, Max and Brian, thanks for your comments.

DrScheme is undergoing fairly significant improvements, implemented
mainly by Robby Findler.  These revisions revolve around better
support for handling what you call "multi-file" projects.  (Since this
is the late '90's, our emphasis isn't on files but on modules, hence
the quotes.)

For now, I should point out that there is a facility in DrScheme that
can help the instructor of introductory courses, namely the library
mechanism.  If the reason students are using multiple files is to
include libraries, then the DrScheme library mechanism is probably a
superior solution (though it still is a hack compared to where we'd
like to be).  I believe Max knows about our libraries, so I suspect at
least for him, he really does mean students developing large projects
with multiple files of source.  In that case, yes, we too just
`require' each of the files in the principal source document, and deal
with synchronizing the files manually.  But for our high school and
intro college courses, libraries have been a very handy solution.  For
example, they provide the support code for the extended exercises in
our lecture notes, How to Design Programs.

'shriram



Tue, 10 Apr 2001 03:00:00 GMT  
 
 [ 5 post ] 

 Relevant Pages 

1. Scheme in Education Web Page

2. Scheme in education

3. Kaizen Strategy for APL Education

4. APL Education mailing list

5. Education centre for Dolphin 5?

6. A request for historical information for a computer education project

7. Education Centre typo; STB question

8. Education Centre MSI file

9. HTML version of the Education Centre available?

10. Don't getting started the Help Site, the Tutorial and the Education Centre

11. Education Centre .msi not considered "valid"?

12. Newbie Install/education center problem

 

 
Powered by phpBB® Forum Software