Toy educational Python IDE

I teach an intro coding class and for years I’ve been using RUR-PLE for a couple weeks introduction to Python before moving into a more general Python IDE. RUR-PLE has fit my needs great, but the desktop version is Windows only and the web version is needlessly complex for students.

So I wrote a web based version that works the way I want it to work, adding in some features that I’d wished the desktop version had.

If you just want to give it a try, it’s live at https://duckcoding.anvil.app/

Basic instructions are the same as the desktop version of RUR-PLE: move, turn_left, pick_beeper, put_beeper, turn_off. The toolbar buttons all have tooltips that describe what they do.

Local storage (via Anvil Extras, thanks!) is used to auto-save the current state of the code and world at all times so a browser crash or accidentally closing the IDE tab won’t lose any work.

Here’s the clone if you’re interested in how anything was done: Anvil | Login

Things that I was not able to get working:

  1. Highlighting the currently running line of code. Skulpt doesn’t have the traceback support needed to get the line number of the currently running line of code.

  2. Being able to stop a program with an infinite loop that doesn’t involve any of the built-in commands. Timers don’t fire unless they can get some processing time, and an infinite loop that doesn’t use any of the built-in commands doesn’t give them any (the built-in commands use sleep to yield processing time regularly).

I’m hopeful that #1 will be added to Skulpt at some point. #2 would be nice, but browsers will prompt about a non-responsive web page eventually.

7 Likes

I just checked it out and it looks cool. It seems to have a nice variety of features. Although I couldn’t understand what this duck graph seemed to be doing? Is it like some sort of code game for kids?

You write code to cause the duck to accomplish tasks in different worlds. I’ve got a set of assignments that lead students from zero coding experience to being proficient in functions, while loops, variables, etc, in a couple of weeks.

The visual representation of what the code is doing helps them get their mind around how Python code executes. That’ll be better once Skulpt implements traceback support and I can highlight the currently executing line of code.

After those first couple of weeks I move them into a more general Python IDE for more complex problems.

That seems like a nice way to teach things. Good luck with it

Thanks! I’m particularly pleased with how the Anvil/Javascript integration allowed doing things like having the resize bar between the editor and the world, having the toolbars, etc.

1 Like