27 August 2019

Pytch: 'Scratch-oriented programming' in Python

An idea I first started thinking about and working on over four years ago — a stepping stone in the journey from Scratch to Python — finally has a public prototype.

https://www.pytch.org/

Scratch is a wonderful system for beginning programmers. It has a visually attractive environment, a way of creating code with a drag and drop system which avoids the possibility of syntax errors, and a natural concurrency model, where multiple 'sprites' all obey their own 'scripts' at the same time.

At some point, learners want to explore text-based languages. Python is very popular in schools, and of course it is heavily used in the real world too. When trying to learn Python, a learner coming from a Scratch background faces two big changes at once:

  • Instead of assembling their program via drag and drop of interlocking blocks, the learner must type code into a text editor, attending to spelling, syntax, and so on.
  • Instead of an environment providing a set of concurrently running sprites, with built-in behaviours such as movement, costumes, and collision detection, the learner must work with an entirely new runtime and a very different programming model.

The aim of Pytch is to allow the learner to take this journey one step at a time. Pytch lets the learner continues to enjoy a very familiar Scratch-like environment, with graphics, movement, animation, concurrently-running sprites, and so on. However, they write their code as Python text, rather than by using drag-and-drop blocks.

Over the past couple of months, I have worked with Glenn Strong (Trinity College Dublin) on implementing this idea, and there is now a working prototype at https://www.pytch.org/.

At the Scratch Conference Europe 2019, Glenn gave a talk on Pytch, and there was some very positive feedback, so we hope to move the project forward over the coming months.

Please try it!

I would love people to give it a try and let us know (info@pytch.org) what they think. Please be aware that this is an 'engineering prototype'. We know there's lots of work to do. At this early stage we're keen to hear people's thoughts on the general direction of the idea.

Comments are closed.