Welcome to BlockPy!

BlockPy is a web-based Python environment that lets you work with blocks, text, or both. Designed for Data Science and equipped with powerful tools like the State Explorer and Guided Feedback, BlockPy lets students solve interesting and authentic problems.

Interested in making BlockPy problems for your class?

More About BlockPy

The goal of BlockPy is to give you a gentle introduction to Python but eventually mature you into a more serious programming environment (such as Spyder or PyCharm). Long-term, we may support some game/animation design stuff that Scratch/Snap does, but that's not the real goal.

The BlockPy project is aimed at solving some hard technical problems: having a block-based environment for a dynamic language can be tricky - are a given pair of square brackets representing list indexing or dictionary indexing? Our goal is to use advanced program analysis techniques to provide excellent support to learners.

BlockPy owes much of its power to Google's Blockly project, the Skulpt project, Codemirror, and a host of other libraries. For a complete list, see the project GitHub.


Publications related to BlockPy:

The People Behind BlockPy

Austin Cory Bart
Lead Developer
Luke Gusukuma
  • Status: PhD student (Computer Science) at Virginia Tech
Javier Tibau
Dennis Kafura
Clifford A. Shaffer
Eli Tilevich


A major design goal for BlockPy is accessibility, although none of its developers are experts. If you have ideas for how to help us be more accessible, please raise an issue on our GitHub!

If you would like to learn about BlockPy's accessibility information, you can download our VPAT Report.


Want the code? Have an issue? Check out our GitHub repos! Everything is open-source :)

Need to talk to a person? You can contact the lead developer at: