Translate is an open source programming environment to designed to teach computational thinking. It is written in Javascript and built on Electron to be cross-platform and hackable.


How Translate came to be...

How it works

Written by instructor:

avos = 2 avocado
toms = 2 tomato
lis = 2 lime
oni = 1 onion

mashedAvocados = mash avos with spoon
dicedTomatoes = chop toms with knife
choppedOnions = chop oni with knife
squeezedLimes = squeeze lis with hand
guacamole = mix mashedAvocados, dicedTomatoes, choppedOnions, squeezedLimes with spoon


This is the general syntax used. Behind-the-scenes the program generates a JSON Object corresponding to the code written. Once this file is saved in Translate with the Description and the Name filled out, it can be opened from Translate.

The instructor may then take the student through the declarations, showing them 2 avocados and writing the line:

avos = 2 avocados

One way to communicate functions is to produce a physical box once each material is declared. The box acts as a "function box." Given the material, and the function performed, the student can select from a knife, a hand, or a spoon to put on top of the box, and then pass through the material. Say they choose to mash the avocados with a spoon, they place the spoon on the function box, pass the avocado through, and recieve mashed avocados. In turn, the following code is produced:

mashedAvocados = mash avos with spoon

Once the final product is produced, you present it:


Computational Thinking

As this project was approached we looked at modern day programming languages and computing to see which aspects of computer science we wanted to include in the functionality and learning process of Translate. Most college/high school students are using languages like Java, C++ and Swift for programming, and Python and similar languages for scripting. As there are such a variety of syntax and functionality differences in these languages, we tried to discern what the base model for writing an algorithm in any of these languages would be.

Variables / References
mashedAvocados = mash avos with spoon
Options / Keywords
guacamole = mix mashedAvocados, dicedTomatoes, choppedOnions, squeezedLimes with spoon



Function Box Learning Materials Programming Tomato




Translate uses a number of open source projects to work properly:


To run go to translate/dist/


Translate works on the following platforms