[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.