[Edu-sig] Thonny, a new IDE for teaching programming
Andre Roberge
andre.roberge at gmail.com
Sun Mar 6 17:59:32 EST 2016
On Sun, Mar 6, 2016 at 6:23 PM, Al Sweigart <al at inventwithpython.com> wrote:
> How does it compare to Philip Guo's Python Tutor?
> http://www.pythontutor.com/ I really like how this tool can trace
> forwards and backwards through the program.
>
PythonTutor is indeed a fantastic tool!
>
> Also, less popular is a tool I wrote for visualizing how expressions get
> evaluated. It's called ShowEval: http://inventwithpython.com/showeval/
>
>From what I can see, showeval requires explicit pre-encoding of the result
of each steps (whereas Python Tutor produces those automatically). One can
essentially obtain similar results automatically (i.e. without
pre-encoding) using Reeborg's World.
(link to the new, development version
http://reeborg.ca/reeborg.html?lang=en&mode=python)
1. Enter the following code in the editor (adapted from showeval)
eggs = ['dogs', 'cats', 'moose']
a = ''.join(eggs)
a = a.upper()
a = a.join(eggs)
2. Click on the magnifier icon at the top right corner of the editor; this
will open a "watch" variable window
3. Execute the program by clicking on the "play" icon under the header bar,
at the top right
4. Watch the values of the variables change
---
* You can click on the "step" button (immediately to the right of the
"play" icon) to execute each statement one at a time. At the moment, one
sometimes needs to click it multiple times to go to the next statement.
* Alternatively, one can change the speed of the animation by inserting the
following call
think(time_in_ms)
at the top of the program.
* If one steps through the program one line at a time, it is possible to
step backwards; click on "Additional options" at the top. This will bring
a window with multiple additional buttons, including one which does a
"reverse" step.
* Instead of automatically adding new variables as they are created, one
can add expressions to watch using add_watch() e.g.
add_watch("a+a")
for the example above. A "complete" example could be:
think(1000)
add_watch("a+a")
eggs = ['dogs', 'cats', 'moose']
a = ''.join(eggs)
a = a.upper()
a = a.join(eggs)
André
Note: I gave the link to the development version, even though it is
currentlynot quite as complete as the "old" one,
http://reeborg.ca/world.html, since the latter will soon be obsolete).
Note 2: for additional help on available functions, insert help(reeborg_en)
as a statement in a Python program and execute it.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/edu-sig/attachments/20160306/7cc48491/attachment.html>
More information about the Edu-sig
mailing list