Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2740 commits
Select commit Hold shift + click to select a range
7f68eac
whoops, forgot to git add these tests
Jun 13, 2018
04da8a4
added new import tests
Jun 13, 2018
2ba806c
tiny
Jun 13, 2018
c8611dc
updated
Jun 13, 2018
c878231
tiny
Jun 13, 2018
1bdd93e
added support for a 'new' IMPORTED_FAUX_PRIMITIVE type
Jun 13, 2018
5324579
subtle simplification!
Jun 14, 2018
931af51
compiled
Jun 14, 2018
4e9a1f9
Update unsupported-features.md
Jun 14, 2018
11a4f3a
more flexible type check in objInAlwaysNestTypes
Jun 14, 2018
39bbda7
added
Jun 14, 2018
5461d71
added Python backend support for rendering default argument values
Jun 14, 2018
28b46d0
added frontend support for rendering python default arguments
Jun 14, 2018
bf61ded
compiled
Jun 14, 2018
b170a90
added regression tests
Jun 14, 2018
85ac747
Update unsupported-features.md
Jun 14, 2018
43f37d3
Update unsupported-features.md
Jun 14, 2018
bd41da7
added some subtlety to what's considered an externally-defined object
Jun 14, 2018
6b90cfd
supported printing of class fields/values in INSTANCE_PPRINT
Jun 14, 2018
069ec17
compiled
Jun 14, 2018
ab0a3e9
filtered out some trivial __str__ printouts for cleanliness
Jun 14, 2018
b9e1588
updated test suite
Jun 14, 2018
4be56a6
added new tests
Jun 14, 2018
8e13e6c
added support for a lot of more python module imports
Jun 15, 2018
8b54706
test suite updates
Jun 15, 2018
f63456d
slightly cleaned up rendering code
Jun 15, 2018
3be4914
compiled
Jun 15, 2018
9fc71e1
test updates
Jun 15, 2018
c4a28b4
cPickle isn't in py3, redundant with pickle anyhow
Jun 15, 2018
0ebcbcc
updated list of allowed python modules in html footer
Jun 15, 2018
b0e5cb2
cut out cPickle and sqlite since they don't work on py3
Jun 15, 2018
8275bc0
compiled
Jun 15, 2018
75b7740
updated tests
Jun 15, 2018
8abaeeb
remove inspect as well
Jun 15, 2018
1c69f95
bam
Jun 15, 2018
cc989ed
don't ban any python builtins anymore; that's just security by obscurity
Jun 16, 2018
2f896ca
minor
Jun 16, 2018
3a09dbe
more robust version of prior tweak
Jun 16, 2018
86890e6
added test
Jun 16, 2018
0ef9848
Update unsupported-features.md
Jun 16, 2018
4db336a
small footer tweaks
Jun 16, 2018
8e3b0aa
added experimental python-anaconda cokapi backend
Jun 16, 2018
96026f8
minor
Jun 16, 2018
3a35152
added tree.trace test
Jun 16, 2018
4994cfc
added /exec_pyanaconda* endpoint
Jun 16, 2018
c6fa4d8
tiny
Jun 16, 2018
2fd8869
added --allmodules option
Jun 16, 2018
765c69c
Merge branch 'master' of github.com:pgbovine/OnlinePythonTutor
Jun 16, 2018
6eae578
started cleaning up cruft from pg_logger.py
Jun 16, 2018
20b5d9a
removed more crufty old code
Jun 16, 2018
2508c98
move preemptive module loading to right before user code is run
Jun 16, 2018
f45605e
moar
Jun 16, 2018
871cc93
bugfix
Jun 16, 2018
dbba720
minor
Jun 16, 2018
57d934d
preload optimizations
Jun 17, 2018
57df711
minor
Jun 17, 2018
894dd04
comments
Jun 17, 2018
9c32a31
more generalized preimport heuristic using ast.parse()
Jun 17, 2018
bc66ed2
added experimental py3anaconda option for running Python with Anaconda
Jun 17, 2018
f9af216
added pyanaconda experimental option for running python with anaconda
Jun 17, 2018
bda8b72
compiled
Jun 17, 2018
beb3d46
Merge branch 'master' of github.com:pgbovine/OnlinePythonTutor
Jun 17, 2018
b7b3ad0
pythontutor_hide now supports unix-style shell globs,
Jun 17, 2018
1b816d8
put '\n' -> '<br/>' into htmlspecialchars
Jun 17, 2018
25cf753
compiled
Jun 17, 2018
2dd53b3
added more documentation and signaling for "Python 3.6 with Anaconda"
Jun 17, 2018
dff3e1c
compiled
Jun 17, 2018
53dea9c
Update unsupported-features.md
Jun 17, 2018
9ae2cc2
Update unsupported-features.md
Jun 17, 2018
86c619d
Update unsupported-features.md
Jun 17, 2018
48fe6a8
support options in /exec_pyanaconda_
Jun 17, 2018
0d2c867
passed raw_input_json into cokapi.com jsonp calls
Jun 17, 2018
8e6ac6f
Merge branch 'master' of github.com:pgbovine/OnlinePythonTutor
Jun 17, 2018
e35cf56
remove struct and glob from allowed modules
Jun 17, 2018
82a30ec
added a 'generate_json_trace.py' string check for externally-defined …
Jun 17, 2018
d6ae301
updated tests a bit
Jun 17, 2018
de36c05
started implementing #pythontutor_inline_type: option
Jun 17, 2018
a312a99
implemented first draft of '#pythontutor_hide_type:'
Jun 17, 2018
a1165da
added anaconda into iframe-embed-demo.html
Jun 17, 2018
a3d9175
subtle
Jun 18, 2018
40caa94
test suite updates
Jun 18, 2018
a12e0c3
disable pg-hello-geolocate due to ipstack.com API limits
Jun 22, 2018
94e7c54
disabled pg-hello-geolocate in frontend
Jun 22, 2018
220d8e4
compiled
Jun 22, 2018
6493f82
added numEditCodeEventsByClientId subtlety (see comments for details)
Jun 22, 2018
3589c35
tiny
Jun 22, 2018
579867b
added a noRepeats option to get live help survey questions
Jun 25, 2018
0dcdacc
compiled
Jun 25, 2018
fb0b822
restored older behavior before mid-June 2018 change to defaults
Jul 5, 2018
ce32d2d
compiled
Jul 5, 2018
70bfcf1
Fix #229 - remove unprotected localStorage access.
Jul 24, 2018
a06adc2
Merge pull request #232 from liffiton/patch-1
Aug 9, 2018
9119be4
added liffiton acknowledgment and compiled his changes
Aug 9, 2018
9d6ddfd
no survey when requesting help
Aug 9, 2018
d4f94d3
compiled
Aug 9, 2018
5372e47
added a warning about non-python code not working right now
Aug 13, 2018
1484b71
added small note
Aug 13, 2018
6581521
added some dependencies
Aug 13, 2018
8112a2c
ok now only C, C++, and Ruby are broken
Aug 13, 2018
aa7b4b1
Merge branch 'master' of github.com:pgbovine/OnlinePythonTutor
Aug 13, 2018
3b685b8
yay c/c++/ruby no longer broken
Aug 19, 2018
d5a8db6
added error message for https execution of non-python code
Aug 19, 2018
f8575db
added a second backup server for cokapi
Aug 28, 2018
f8e380c
minor cosmetic update
Sep 12, 2018
1439b6e
Update unsupported-features.md
Dec 12, 2018
1cd3ce6
update numbers
Jan 8, 2019
a209fda
Merge branch 'master' of github.com:pgbovine/OnlinePythonTutor
Jan 8, 2019
3b2e21e
Update unsupported-features.md
Feb 3, 2019
c60b615
Update unsupported-features.md
Feb 3, 2019
cc56c70
Update unsupported-features.md
Feb 14, 2019
959195a
Update unsupported-features.md
Mar 24, 2019
1d1de71
shut down chat due to server problems and other technical issues
Mar 24, 2019
8f08623
build
Mar 24, 2019
e85038b
Update unsupported-features.md
Mar 24, 2019
8fef50a
added more official live chat mode shut down message due to technical…
Mar 24, 2019
c704386
Update unsupported-features.md
Mar 24, 2019
a0a81c3
Update index.html
Mar 25, 2019
46d82b2
Update unsupported-features.md
Mar 26, 2019
9956bd4
revived live chat and other tweaks
Mar 26, 2019
76cdc9c
build
Mar 26, 2019
18c7f9b
tweaked wording
Mar 26, 2019
8963608
build
Mar 26, 2019
c6b858f
always enforce kickban via IP address
Mar 26, 2019
266b786
typo fix
Mar 26, 2019
36d380b
bugfix
Mar 26, 2019
6a89159
removed small in-situ survey
Mar 26, 2019
75a5bcd
build
Mar 26, 2019
0b3ca74
adjusted error messages
Mar 27, 2019
d75badd
build
Mar 27, 2019
cf6d440
minor revert of opt-shared-sessions.ts
Mar 27, 2019
45f87e3
Update unsupported-features.md
Mar 31, 2019
feefbd9
added more serious warnings about server load
Apr 2, 2019
d0c544a
build
Apr 2, 2019
fd2ba25
Update unsupported-features.md
Apr 6, 2019
d81ca0e
disabled shared sessions in opt-live due to server resource limitations
Apr 10, 2019
0a7d3eb
compiled
Apr 10, 2019
ebf2081
Merge branch 'master' of github.com:pgbovine/OnlinePythonTutor
Apr 10, 2019
d921bc1
removed goo.gl url shortener since that service has shut down
Apr 10, 2019
1c60f3e
compiled
Apr 10, 2019
a87fe1b
Update unsupported-features.md
Apr 10, 2019
9050195
Update unsupported-features.md
Apr 10, 2019
3a65070
Update unsupported-features.md
Apr 10, 2019
9adfca5
Update unsupported-features.md
Apr 10, 2019
7c454d6
Update unsupported-features.md
Apr 10, 2019
06a697e
Update history.txt
Apr 10, 2019
23b40d8
Update history.txt
Apr 10, 2019
563d410
Update unsupported-features.md
Apr 14, 2019
dcc3bff
zip up togetherjs log files after each one is filled
Jun 10, 2019
e0655fb
tiny error check
Jun 10, 2019
e0a64e5
better error message for if you're possibly behind a firewall
Jun 21, 2019
80ac1ac
compiled
Jun 21, 2019
1f1932a
Update unsupported-features.md
Jul 26, 2019
69e5d5d
minor index.html tweak and added .htaccess
Aug 16, 2019
3f88144
updated chat messages
Aug 26, 2019
110dd6f
compiled
Aug 26, 2019
5e38ea2
Update unsupported-features.md
Oct 3, 2019
2948836
Update unsupported-features.md
Oct 10, 2019
e7aa3ae
Update unsupported-features.md
Oct 10, 2019
0576033
Update unsupported-features.md
Oct 10, 2019
e716461
Update unsupported-features.md
Oct 10, 2019
aa6284f
Update unsupported-features.md
Oct 10, 2019
f63b58a
Update unsupported-features.md
Oct 11, 2019
15e8acd
Update unsupported-features.md
Oct 11, 2019
5187994
Update unsupported-features.md
Oct 11, 2019
ce19ffd
Update unsupported-features.md
Oct 11, 2019
ed58ea5
Update unsupported-features.md
Oct 11, 2019
76b6cc6
Update unsupported-features.md
Oct 11, 2019
ae5f3ae
Update unsupported-features.md
Oct 12, 2019
e24240d
Update unsupported-features.md
Oct 12, 2019
1d36d8f
Update README.md
Oct 12, 2019
6993b7e
Update history.txt
Oct 16, 2019
055334a
Update unsupported-features.md
Oct 16, 2019
f2c787a
Update unsupported-features.md
Oct 16, 2019
93be6a0
added
Oct 19, 2019
8907603
Update unsupported-features.md
Oct 19, 2019
099dbc0
Update unsupported-features.md
Oct 19, 2019
279cf7f
Update unsupported-features.md
Oct 19, 2019
0563b26
Update unsupported-features.md
Oct 19, 2019
f497114
updated
Oct 19, 2019
9cd168e
simplified the UI by removing excess text and also
Oct 19, 2019
f1ca170
compiled
Oct 19, 2019
fc33389
Update unsupported-features.md
Oct 19, 2019
83e15eb
Update unsupported-features.md
Oct 19, 2019
daa37d3
Update unsupported-features.md
Oct 19, 2019
778cd8b
Update unsupported-features.md
Oct 19, 2019
a209d2e
Update unsupported-features.md
Oct 19, 2019
06cd914
Update unsupported-features.md
Oct 19, 2019
9b73698
Update unsupported-features.md
Oct 19, 2019
2bf0451
got rid of eureka surveys in live mode, and also cleaned up footer a …
Oct 19, 2019
3379748
compiled
Oct 19, 2019
4c580ef
cleaned up UI a bit more and moved "Step N of M"
Oct 20, 2019
0c2ecf9
compiled
Oct 20, 2019
27dc702
Create wishlist.md
Oct 20, 2019
1a73c02
Update wishlist.md
Oct 20, 2019
3bfa2db
Update wishlist.md
Oct 20, 2019
e86ce9d
Update wishlist.md
Oct 20, 2019
779be0c
Update wishlist.md
Oct 20, 2019
cf53d52
Update wishlist.md
Oct 20, 2019
2026119
Update wishlist.md
Oct 20, 2019
2dd9cd6
Update wishlist.md
Oct 20, 2019
1deac7e
Update wishlist.md
Oct 20, 2019
c842ba6
Update wishlist.md
Oct 20, 2019
33ff7f5
Update wishlist.md
Oct 20, 2019
c1d1671
Update wishlist.md
Oct 20, 2019
7cf6bb1
Update wishlist.md
Oct 20, 2019
98caacb
Update wishlist.md
Oct 20, 2019
c9d5b5e
Update wishlist.md
Oct 20, 2019
f6e3096
Update wishlist.md
Oct 20, 2019
68367e6
Update wishlist.md
Oct 20, 2019
a5b2300
Update wishlist.md
Oct 21, 2019
dd9f97f
Update wishlist.md
Oct 21, 2019
eb220d7
Update wishlist.md
Oct 21, 2019
6fd8695
Update unsupported-features.md
Oct 21, 2019
3782eb1
Update wishlist.md
Oct 21, 2019
4a0aa2d
Update wishlist.md
Oct 21, 2019
8259e3b
Update wishlist.md
Oct 21, 2019
4a638c0
Update wishlist.md
Oct 21, 2019
f05a4c1
Update unsupported-features.md
Oct 21, 2019
7b200f7
Update wishlist.md
Oct 21, 2019
51084bc
bah
Oct 21, 2019
9d01d69
sterner error message
Oct 21, 2019
a36ff22
minor updates due to new versions of dependecies
Apr 30, 2020
1c27993
graph page
May 11, 2020
e1cec51
keep v5 start v6
May 11, 2020
2552920
responses to request
May 12, 2020
64fba23
graph visualizer updated
May 12, 2020
eae5eec
delete file after used
May 12, 2020
247d8f3
igraph to pygraphviz
May 19, 2020
da59b6c
add route for graphs
May 19, 2020
43388dc
graphs are apearing n frontend
May 19, 2020
eddd415
update
May 22, 2020
ee4663b
add visitReturn_stmt
May 22, 2020
6d18482
break and continue cases
May 22, 2020
1a9a919
upgrade DFG with loop clusters
May 26, 2020
33ce8c2
minor updates
Jun 4, 2020
3c434e3
update on subgraphs of DFG
Jul 7, 2020
a5da043
create img, display and delete it
Jul 10, 2020
c51f23f
update visualization of graphs
Jul 14, 2020
e2fac3a
add info about the graphs
Jul 29, 2020
6398e07
removed an ambiguity od DFG
Sep 21, 2020
9606a78
correct return case on CFG
Sep 30, 2020
ba6d9e8
add colors to edge on CFG
Oct 5, 2020
261ca26
change arrow type of false FCG
Oct 5, 2020
0d7e52a
taking care of multiple initialization
Oct 5, 2020
bc95044
just graphs
Apr 27, 2021
ba293f2
removed prints
Apr 27, 2021
4c9c89c
images to img/
Apr 28, 2021
f6f146d
Revert "just graphs"
Apr 28, 2021
216253a
just graphs
Apr 28, 2021
a7120a4
just graphs
May 4, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
21 changes: 21 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
*.out
*.out_py3
*.out_py36
*.pyc
*.pyo
v4-cokapi/feedback/cokapi-feedback.db
coding-the-matrix/
node_modules/
google-analytics.txt
webfaction-deploy.sh
v3/opt_togetherjs/*.json
# for regression tests
*.out.png
*.diff.png
*.fail.png
v3/opt_togetherjs/ipstack-geolocation

v4-cokapi/backends/javascript/node-v6.0.0-darwin-x64/

# this .gz file is too big to fit into a github repo
v4-cokapi/backends/java/jdk-8u20-linux-x64.tar.gz
Empty file added .gitmodules
Empty file.
21 changes: 21 additions & 0 deletions LICENSE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
Copyright (C) Philip J. Guo (philip@pgbovine.net)

Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

137 changes: 0 additions & 137 deletions README

This file was deleted.

76 changes: 76 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
Python Tutor -- http://pythontutor.com/ -- helps people overcome a fundamental barrier to learning programming: understanding what happens as the computer executes each line of a program's source code. Using this tool, you can write Python, Java, JavaScript, TypeScript, Ruby, C, and C++ programs in your Web browser and visualize what the computer is doing step-by-step as it executes those programs.

This tool was created by [Philip Guo](http://pgbovine.net/) in January 2010. [See project history](history.txt).

[List of unsupported features and known bugs](https://github.com/pgbovine/OnlinePythonTutor/blob/master/unsupported-features.md)

The latest development version of the code is in [v5-unity](v5-unity/),
although lots of legacy documentation still resides in [v3](v3/).


### Quick Start

BY FAR the most preferred way to use Python Tutor is via the official website, since it contains the latest updates: http://pythontutor.com/

You can use [iframe embedding](v3/docs/embedding-HOWTO.md) to easily embed visualizations on your webpage.

If you want to run locally on your own computer, to run Python visualizations try:

```
pip install bottle # make sure the bottle webserver (http://bottlepy.org/) is installed
cd OnlinePythonTutor/v5-unity/
python bottle_server.py
```

You should see the visualizer at: http://localhost:8003/visualize.html

... and the live programming environment at: http://localhost:8003/live.html

However, it can be hard to run your own visualizer locally for
non-Python languages, since there are complex dependencies in v4-cokapi/ that
I haven't yet cleanly packaged up. By default, the local version you run will
*call my own server to run the non-Python backends*, so please be mindful of
your bandwidth usage.

For further directions, see [Overview for Developers](v3/docs/developer-overview.md) or explore the [rest of the docs](v3/docs/).


### Acknowledgments

For code or security contributions:
- Irene Chen - experimental holistic visualization mode - v3/js/holistic.js
- John DeNero - helping with the official Python 3 port, bug fixes galore
- Mark Liffiton - localStorage bug fix
- Chris Meyers - custom visualizations such as v3/matrix.py and v3/htmlFrame.py
- Brad Miller - adding pop-up question dialogs to visualizations, other bug fixes
- David Pritchard and Will Gwozdz - Java visualizer and other frontend enhancements
- Peter Robinson - v3/make_visualizations.py
- Peter Wentworth and his students - working on the original Python 3 fork circa 2010-2011
- Security tips and vulnerability reports: Aaron E. (https://arinerron.com), Chris Horne (https://github.com/lahwran), Joshua Landau (joshua@landau.ws), David Wyde (https://davidwyde.com/)

For user testing and feedback from instructors' perspectives:
- Ned Batchelder
- Jennifer Campbell
- John Dalbey
- John DeNero
- Fredo Durand
- Michael Ernst
- David Evans
- Paul Gries
- Mark Guzdial
- Adam Hartz
- Sean Lip
- Fernando Perez
- Tomas Lozano-Perez
- Bertram Ludaescher
- Brad Miller
- Rob Miller
- Peter Norvig
- Andrew Petersen
- David Pritchard
- Suzanne Rivoire
- Guido van Rossum
- Peter Wentworth
- David Wilkins

... and many, many more!
Binary file added board.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading