Welcome to BlockPy!

The dual block/text programming environment with sophisticated autograding and many other cool features!

If you are an instructor or administrator, you can Log in or Register

If you are a student, you should use your school's Learning Management System (e.g., Canvas).


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.

Research

Publications related to BlockPy:

The People Behind BlockPy

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

Accessiblity

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.

Contact

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: