Hello Brian,<br><br>I do not teach (much to my regrets) but I have been thinking about what you describe.<br>See below.<br><br><div><span class="gmail_quote">On 12/14/06, <b class="gmail_sendername">Brian Blais</b> &lt;<a href="mailto:bblais@bryant.edu" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">

bblais@bryant.edu</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hello,<br><br>I have a couple of classes where I teach introductory programming using Python.&nbsp;&nbsp;What
<br>I would love to have is for the students to go through a lot of very small programs,<br>to learn the basic programming structure.&nbsp;&nbsp;Things like, return the maximum in a list,<br>making lists with certain patterns, very simple string parsing, etc.&nbsp;&nbsp;Unfortunately,
<br>it takes a lot of time to grade such things by hand, so I would like to automate it<br>as much as possible.&nbsp;</blockquote><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

I envision a number of possible solutions.&nbsp;&nbsp;In one solution, I provide a function<br>template with a docstring, and they have to fill it in to past a doctest.&nbsp;&nbsp;Is there a<br>good (and safe) way to do that online?&nbsp;&nbsp;Something like having a student post code,
<br>and the doctest returns.&nbsp;&nbsp;I'd love to allow them to submit until they get it, logging<br>each attempt.</blockquote><div><br>I may have a partial solution.&nbsp; I (co-)wrote a program called Crunchy (<a href="http://crunchy.sf.net" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">

crunchy.sf.net</a>) which, among other features, allow automated correction of code that has to satisfy a given docstring. As it stands, it only allows self-evaluation i.e. there's no login required nor is the solution forwarded to someone else.&nbsp; (This has been requested by others and may, eventually, be incorporated in Crunchy.)&nbsp; So, as a tool for learning, it's working; the grading component is simply not there.&nbsp; However, the code is open-source and you could adopt it to your needs ;-)
<br><br>André<br>&nbsp;</div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Or perhaps there is a better way to do this sort of thing.&nbsp;&nbsp;How do others who teach<br>Python handle this?<br><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;thanks,<br><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Brian Blais<br><br>--<br>-----------------
<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="mailto:bblais@bryant.edu" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">bblais@bryant.edu</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://web.bryant.edu/%7Ebblais" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://web.bryant.edu/~bblais</a><br>_______________________________________________<br>
Edu-sig mailing list<br><a href="mailto:Edu-sig@python.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">Edu-sig@python.org</a><br><a href="http://mail.python.org/mailman/listinfo/edu-sig" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://mail.python.org/mailman/listinfo/edu-sig</a><br></blockquote></div><br>