automatically grading small programming assignments

Caleb Hattingh caleb.hattingh at gmail.com
Fri Dec 15 03:53:35 EST 2006


Hi Brian

You could make great use of XML-RPC here.   XML-RPC is /really/ easy to
use.

Here is a simple example:

http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/81549

You put procedures on the server that will check the args against a the
required result, and report back to the student whether it passes or
fails.

Here is another example using xml-rpc over https, for security:

http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/496786

So, the idea is that the student calls a procedure on the xml-rpc
server (which you set up), and passes his results as an argument, and
your server procedure can return True or False.

One benefit is that if you change the input to the tests, you need only
update the server.    Actually, you could let the procedures on the
server accept test input and student results, and return True or False.
    This would be cool :)

Caleb



On Dec 14, 6:27 pm, Brian Blais <bbl... at bryant.edu> wrote:
> Hello,
>
> I have a couple of classes where I teach introductory programming using Python.  What
> I would love to have is for the students to go through a lot of very small programs,
> to learn the basic programming structure.  Things like, return the maximum in a list,
> making lists with certain patterns, very simple string parsing, etc.  Unfortunately,
> it takes a lot of time to grade such things by hand, so I would like to automate it
> as much as possible.
>
> I envision a number of possible solutions.  In one solution, I provide a function
> template with a docstring, and they have to fill it in to past a doctest.  Is there a
> good (and safe) way to do that online?  Something like having a student post code,
> and the doctest returns.  I'd love to allow them to submit until they get it, logging
> each attempt.
>
> Or perhaps there is a better way to do this sort of thing.  How do others who teach
> Python handle this?
>
>                         thanks,
>
>                                 Brian Blais
>
> --
> -----------------
>
>               bbl... at bryant.edu
>              http://web.bryant.edu/~bblais




More information about the Python-list mailing list