[racket] classroom response system

From: Danny Heap (heap at cs.toronto.edu)
Date: Tue May 21 13:58:25 EDT 2013

Thanks for the responses and pointers to projects underway.  Matthias
(and others) have convinced me that being able to open URLs from the
file menu isn't really necessary --- we can move exercises to-and-from
the server independently.  The fact that John's student is looking
into integrating DrRacket's Stepper with the Online Tutor is
fascinating --- that's what Andrew uses with the current (Python)
version of the classroom response.  I'm a bit nervous about having my
students use possibly-diverging versions of the Stepper, so we'll
probably focus on local instances of DrRacket and its stepper for
now.

Thank you again for the generous response.

On Fri, May 17, 2013 at 05:34:10PM -0700, John Clements wrote:
> 
> On May 17, 2013, at 1:36 PM, Danny Heap wrote:
> 
> > A colleague has developed a classroom response tool that allows
> > students to download exercises, write solutions, and then either
> > visualize the execution of their solution or run unit tests, and then
> > submit their solution.  The instructor can display a histogram of of
> > the submissions that passed various tests, and then sample some of the
> > interesting examples to discuss with the class (all this assumes
> > wireless coverage for the classroom).
> > 
> > This is currently implemented for Python, but my colleague wants to
> > extend it to other languages.  He has a student looking into the
> > feasibility of implementing it for DrRacket, with the rough idea
> > being:
> > 
> > 	-- Students and instructors run local instances of DrRacket
> >           (hence access to the Stepper for student languages)
> > 	-- Run the tests either client- or server-side in a sandbox
> > 	-- Get files to/from DrRacket to server somehow
> > 
> > Since either students or the instructor will want to load files that
> > are stored remotely (either starter code for exercises or student
> > submissions), we're trying to figure out how DrRacket can open code
> > that lives at a URL in the definitions pane.  Any suggestions are very
> > welcome.  Also, anyone who is curious about the project is welcome to
> > contact Andrew Petersen <andrew.petersen at utoronto.ca>.
> 
> Sounds very cool, and eminently do-able. Besides the existing stepper, I had a student that started looking at integrating DrRacket's stepper with Philip Guo's "Online Python Tutor". Let me know if you want pointers to some code.
> 
> John
> 

On Sat, May 18, 2013 at 08:24:51AM -0400, Arjun Guha wrote:
> Hi Danny,
> 
> We've successfully used TestFest a number of times and Brown and other universities. TestFest is not built into DrRacket as you suggested, but it is a Web app. We have students copy and paste their programs and test cases into the Web app separately. The system then runs everyone's program against everyone else's tests.
> 
> Shriram wrote an article about it in our departmental magazine (pages 36--37):
> 
> http://www.cs.brown.edu/about/conduit/conduit_v17n2.pdf
> 
> If you're interested, the code here:
> 
> https://github.com/brownplt/testfest
> 
> The README file covers installation.
> 
> Arjun
> 
> On May 17, 2013, at 7:23 PM, Joe Gibbs Politz <joe at cs.brown.edu> wrote:
> 
> > Arjun Guha (CC'ed) wrote TestFest in Racket
> > (https://github.com/brownplt/testfest) a few years ago to run
> > students' tests and implementations against one another.  It seems
> > pretty close to what you want, and might be a good place to start.
> > 
> > Cheers!
> > Joe
> > 
> > On Fri, May 17, 2013 at 4:36 PM, Danny Heap <heap at cs.toronto.edu> wrote:
> >> A colleague has developed a classroom response tool that allows
> >> students to download exercises, write solutions, and then either
> >> visualize the execution of their solution or run unit tests, and then
> >> submit their solution.  The instructor can display a histogram of of
> >> the submissions that passed various tests, and then sample some of the
> >> interesting examples to discuss with the class (all this assumes
> >> wireless coverage for the classroom).
> >> 
> >> This is currently implemented for Python, but my colleague wants to
> >> extend it to other languages.  He has a student looking into the
> >> feasibility of implementing it for DrRacket, with the rough idea
> >> being:
> >> 
> >>        -- Students and instructors run local instances of DrRacket
> >>           (hence access to the Stepper for student languages)
> >>        -- Run the tests either client- or server-side in a sandbox
> >>        -- Get files to/from DrRacket to server somehow
> >> 
> >> Since either students or the instructor will want to load files that
> >> are stored remotely (either starter code for exercises or student
> >> submissions), we're trying to figure out how DrRacket can open code
> >> that lives at a URL in the definitions pane.  Any suggestions are very
> >> welcome.  Also, anyone who is curious about the project is welcome to
> >> contact Andrew Petersen <andrew.petersen at utoronto.ca>.
> >> 
> >> 
> >> --
> >> Danny Heap
> >> BA4270                  416-978-5899
> >> heap at cs.utoronto.ca     http://www.cs.utoronto.ca/~heap
> >> ____________________
> >>  Racket Users list:
> >>  http://lists.racket-lang.org/users
> 

On Tue, May 21, 2013 at 02:48:34AM +0300, Matthias Felleisen wrote:
> 
> This sounds like a neat idea and like Joe and John said, "eminently doable." 
> 
> While it sounds like you want to add a menu entry to DrRacket so that students can "Open URL" instead of "Open File", I think you're better off having students download files from URLs and open them from their command line instead. We run our labs that way, it works well, and it is a no-effort solution. 
> 
> Otherwise I'd also recommend that you look at the handin collection, which allows students to submit solutions to a server and instructors to accept solutions and run tests on them. 
> 
> Since the teaching languages come with their own test mechanism (see check-expect), running instructor supplied tests is as easy as supplying files with 'broken' definitions that fail all tests. Clicking 'run' in DrRacket runs these tests and tells students how their solution is doing. 
> 
> -- Matthias
> 
> 
> 
> 
> 
> On May 17, 2013, at 11:36 PM, Danny Heap wrote:
> 
> > A colleague has developed a classroom response tool that allows
> > students to download exercises, write solutions, and then either
> > visualize the execution of their solution or run unit tests, and then
> > submit their solution.  The instructor can display a histogram of of
> > the submissions that passed various tests, and then sample some of the
> > interesting examples to discuss with the class (all this assumes
> > wireless coverage for the classroom).
> > 
> > This is currently implemented for Python, but my colleague wants to
> > extend it to other languages.  He has a student looking into the
> > feasibility of implementing it for DrRacket, with the rough idea
> > being:
> > 
> > 	-- Students and instructors run local instances of DrRacket
> >           (hence access to the Stepper for student languages)
> > 	-- Run the tests either client- or server-side in a sandbox
> > 	-- Get files to/from DrRacket to server somehow
> > 
> > Since either students or the instructor will want to load files that
> > are stored remotely (either starter code for exercises or student
> > submissions), we're trying to figure out how DrRacket can open code
> > that lives at a URL in the definitions pane.  Any suggestions are very
> > welcome.  Also, anyone who is curious about the project is welcome to
> > contact Andrew Petersen <andrew.petersen at utoronto.ca>.
> > 
> > 
> > -- 
> > Danny Heap
> > BA4270			416-978-5899
> > heap at cs.utoronto.ca	http://www.cs.utoronto.ca/~heap
> > ____________________
> >  Racket Users list:
> >  http://lists.racket-lang.org/users
> 


-- 
Danny Heap
BA4270			416-978-5899
heap at cs.utoronto.ca	http://www.cs.utoronto.ca/~heap

Posted on the users mailing list.