Learn Python programming the easy way with EduBlocks

EduBlocks brings a Scratch-like GUI to writing Python 3 code.
319 readers like this.
3 mistakes to avoid when learning to code in Python


If you are you looking for a way to move your students (or yourself) from programming in Scratch to learning Python, I recommend you look into EduBlocks. It brings a familiar drag-and-drop graphical user interface (GUI) to Python 3 programming.

One of the barriers when transitioning from Scratch to Python is the absence of the drag-and-drop GUI that has made Scratch the go-to application in K-12 schools. EduBlocks' drag-and-drop version of Python 3 changes that paradigm. It aims to "help teachers to introduce text-based programming languages, like Python, to children at an earlier age."

The hardware requirements for EduBlocks are quite modest—a Raspberry Pi and an internet connection—and should be available in many classrooms.

EduBlocks was developed by Joshua Lowe, a 14-year-old Python developer from the United Kingdom. I saw Joshua demonstrate his project at PyCon 2018 in May 2018.

Getting started

It's easy to install EduBlocks. The website provides clear installation instructions, and you can find detailed screenshots in the project's GitHub repository.

Install EduBlocks from the Raspberry Pi command line by issuing the following command: 

curl -sSL get.edublocks.org | bash

Installing EduBlocks through the command line

Programming EduBlocks

Once the installation is complete, launch EduBlocks from either the desktop shortcut or the Programming menu on the Raspberry Pi.

EduBlocks Programming menu

Once you launch the application, you can start creating Python 3 code with EduBlocks' drag-and-drop interface. Its menus are clearly labeled. You can start with sample code by clicking the Samples menu button. You can also choose a different color scheme for your programming palette by clicking Theme. With the Save menu, you can save your code as you work, then Download your Python code. Click Run to execute and test your code.

You can see your code by clicking the Blockly button at the far right. It allows you to toggle between the "Blockly" interface and the normal Python code view (as you would see in any other Python editor).

EduBlocks Blockly toggle

EduBlocks comes with a range of code libraries, including EduPython, Minecraft, Sonic Pi, GPIO Zero, and Sense Hat.

Learning and support

The project maintains a learning portal with tutorials and other resources for easily hacking the version of Minecraft that comes with Raspberry Pi, programming the GPIOZero and Sonic Pi, and controlling LEDs with the Micro:bit code editor. Support for EduBlocks is available on Twitter @edu_blocks and @all_about_code and through email.

For a deeper dive, you can access EduBlocks' source code on GitHub; the application is licensed under GNU Affero General Public License v3.0. EduBlocks' creators (project lead Joshua Lowe and fellow developers Chris Dell and Les Pounder) want it to be a community project and invite people to open issues, provide feedback, and submit pull requests to add features or fixes to the project.

User profile image.
Educator, entrepreneur, open source advocate, life long learner, Python teacher. M.A. in Educational Psychology, M.S. Ed. in Educational Leadership, Linux system administrator.


This looks like a cool project but the installation method of using curl to download an install script and immediately piping that script to bash is an extremely dangerous practice. That is not something that should be taught to children or people educating children.

I fully agree with what your trying to say. I've tried doing Debian packaging but it's not as easy as people think. We do, in all our tutorials, say that it's not recommended and it's at your own risk.

However, we do give the option to do a manual install and have instructions for that too.

In reply to by aclogreco

"I've tried doing Debian packaging but it's not as easy as people think."

I hear you, and RPMs aren't any easier I'm afraid.
I don't know if you have tried it, but OBS (https://openbuildservice.org/) could help you package for different distros.
I just read that you need to upload a .spec file but you might generate a basic one with checkinstall (http://asic-linux.com.mx/~izto/checkinstall/) and tweak it if necessary.

Or you could just use checkinstall to build RPMs and DEBs :)

"We do, in all our tutorials, say that it's not recommended and it's at your own risk."

You should also update your github readme, and/or setup HTTPS for get.edublocks.org to avoid MITM attacks. That would take care of most of the (my) issues with the "curl | bash" method of istallation.


In reply to by Joshua Lowe (not verified)

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.