[plt-scheme] automarking again

From: Eli Barzilay (eli at barzilay.org)
Date: Sat Jan 13 00:11:06 EST 2007

On Jan 12, Prabhakar Ragde wrote:
> 
> It's still overkill for me. We have a working electronic submission
> system which my academic support staff understand. To use the handin
> server and client, I'd have to get students to install the plugin,

That's easy enough, you put it up on a web pages, and they either
click or enter a URL.  As a bonus, there is also an auto-updater
facility that can be enabled so you can update this .plt file.


> run the PLT Web server,

You don't need to run the web server -- you put the right options in
the configuration file, and it starts both the submission part and the
embedded web-server part.  If you don't even need the web server
part, you can just ignore it.


> and most importantly, understand how it all works so I can configure
> it,

The documentation even has a "quick start" section, and getting a
proper working configuration should not be difficult at all.


> adapt it to our peculiar local customs, and fix anything that goes
> wrong.

FWIW, it is under active maintenance (which I do), and it is general
enough to have survived a few courses with different styles of
homework submissions.


> Right now I have ways of getting student code into individual
> directories, one for each student, containing assignment directories
> and individual questions within them. I just need to run their code,
> with my tests, in the appropriate language level, and record the
> output.
> 
> I've been looking at your utils.ss but I can only dimly understand
> bits of what it is doing. Threads seem to be involved, and
> namespaces, both of which I know very little about.

Reading through the source code is wrong if you just use it.


> I think I will try to wrap student code in a module declaration with 
> requires to get me access to I/O. I thought I could build a sequence of 
> arguments to mzscheme but it appears not. --PR

This is the kind of stuff that the submission checking code in
utils.ss is doing, it's a pity not to use it.  You can even try to
read on the `check:' macro, use the macro stepper to see what it
expands to, then use similar code directly on a file.


On Jan 12, Robby Findler wrote:
> Maybe the handin server is the right place to start to build a library
> of functions for things like what PR is trying to do?

It's mostly there -- the interface that util.ss provides requires some
port, it should be possible to write some relatively easy code that
uses it with plain files.

-- 
          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                  http://www.barzilay.org/                 Maze is Life!


Posted on the users mailing list.