[Edu-sig] Crunchy Frog 0.3 released

Andrew Harrington aharrin at luc.edu
Wed May 24 19:51:12 CEST 2006

Dear Andre,

Wish list for Crunchy Frog:

1.  Fitting in with my previous brainstorming, the most important thing 
is allowing differential branching based on test or evaluate results.  
The most obvious is an alternate place to go when there is a test 
failure.  With the possibly helpful Python error messages, a learner may 
well be able to go back and fix an error directly, so the suggested 
place to get specific help on the error should be connect to a "Help on 
the error" button, which the learner can choose to press after giving up 
on further editing of the code and further evaluation of the code.

2.  A fancier version of reacting to testing would allow parsing of the 
error output and doing different things based on the error, for instance 
how many tests were passed before the first failure, or even based on 
the particular response to the test that triggered the error.

basically encode logic like
if no error:
  return topic23.html
if first error on test 1:
  return e1.html
elif first error on test 2:
  if output == '5':
     return t2_5.html
  elif output == '17':
    return t2_17.html
   return 2_other.html
elif first error on test 3:
  if ValueError:
    return ve3.html
    return 3_other.html
   return other.html

To allow arbitrary choice, one approach would be to actually allow 
Python code to be specified.  I do not really like that idea:  I would 
prefer not to have to worry about submitted lessons being able to 
execute Trojan code.  Another alternative would be a list, in the order 
of the tests, with a URL for each location the first error could occur.  
In place of a URL there might be a list of  pairs of output string and 
URL.   I would have the final option be taken if none apply.  The above 
logic would translate into something like the following where ... mean 
skip to the last line, and * is a wildcard

topic23.html, e1.html, ["5":t2_5.html, "17":t2_17.html, *:2_other.html], 
[..."ValueError"*:ve3.html, *:3_other.html], other.html

3.  I just checked, you illustrate several "evaluate" windows per page.  
However only one full interpreter seems to work per page or maybe per 
When I want cumulative results, with interspersed lesson details, it 
would be nice to give a response to the last typing, and then expect the 
user to type more into the same environment.  For this we would want to 
copy the history from the last page, insert a new comment above the text 
box to the same interpreter, and then whatever buttons or other new 
stuff is due.  Most flexibly, allow a next page to include a reference 
to insert the body of the last page at the top of the current one, 
followed by current page, with a text box for the interpreter continuing 
with the state for the same interpreter as before.  Ideally allow logic 
something like 2 above to choose what to do next based on what the user 
types or the response.

You should also be able to get a newly initialized  interpreter if you 
do not want to continue using the old one.

4.  I got Crunchy Frog hanging on my Windows XP machine when I clicked 
to start the tutorial.  This was after I had run the tutorial multiple 
times with no problem and terminated normally.  Sorry I do not remember 
what happened to give you a better idea at this point.  I'll try to note 
the error environment more completely if it happens again. 

5.  It looks like you can see previous pages with the Firefox back 
arrow, but things get messed up if you try to interact with an old 
page.  It would be lovely if the program would deal gracefully with that 
-- at least keeping a page ID and noting if an old page is submitted, 
and ignoring it and ?? jumping back to the last page in the sequence ??  
I am not sure how to respond and not lose the sequence completely.

I have further interests in adding and handling meta data.  I will post 
those ideas separately.


Andre Roberge wrote:

>Version 0.3 of "Crunchy Frog" has been released. It can be found at
>Crunchy Frog transforms a "traditional" Python tutorial into an
>interactive session within your favourite web browser. Four modes of
>interaction are currently possible:
>1. One-liner, similar to the typical instruction at the Python interpreter.
>*NEW*  2. Embedded Python shell, within an html page.  This is a bit
>similar to Ian Bicking's HTConsole.
>3. Multi-line Python code, as entered in a traditional editor, and
>executed by Python.
>4. Solutions to doctests, as described by Jeff Elkner in a post on edu-sig.
>Even though it is an early release, Crunchy Frog could probably
>already be useful in a classroom situation. To use it, you will also
>need to have installed Elementtree and CherryPy.
>Suggestion: read the 6 page long "tutorial" included, using your
>favourite browser. Then, start Crunchy Frog, and go through the
>tutorial again. The whole thing should be doable in approximately 15
>minutes (20 for Kirby, according to a previous message ;-) ... if you
>don't spend too much time playing with the new interpreter. :-)
>Edu-sig mailing list
>Edu-sig at python.org
  Andrew N. Harrington
  Computer Science Department      Undergraduate Program Director
  Loyola University Chicago        http://www.cs.luc.edu/~anh
  512B Lewis Towers (office)       Office Phone: 312-915-7982
  Snail mail to Lewis Towers 416   Dept. Fax:    312-915-7998
  820 North Michigan Avenue        aharrin at luc.edu
  Chicago, Illinois 60611          

More information about the Edu-sig mailing list