Algojammer: Visualizing algorithms with experimental Python code editor
Do you take part in algorithm competitions such as Code Jam? Maybe you are just interested in the visualization of algorithms? Algojammer is an experimental code editor and debugger for writing algorithms in Python. The project is currently unfinished, but perhaps you can help contribute!
Created by Chris Knott, Algojammer is an experimental code editor and debugger for writing algorithms in Python. This unique code editor helps make the abstract visible. Let’s explore what inspired its creation and how interested programmers can help expand its vision.
There are helpful screenshots on GitHub as well as a demo on YouTube that shows the code editor in action:
Add another variable
Algojammer was initially designed to help people get ahead in algorithm competitions such as Code Jam.
Users write their algorithm on the left-hand side of the interface (the contents are the “Maincode”). On the right-hand side is the Timeline, which shows the Execution of the code. In the Timeline, you can easily zoom in and scroll through the visual representations of each Step.
Go Step-by-Step in detail and see which part of the code corresponds with the visualization. This makes the algorithm much more than abstractions.
Just as the name suggests, Metacode is code written about code; it is “code that we write about the Maincode’s Execution”. It helps users express the code they are writing. Unlike other code editors, Algojammer creates a distinction between Maincode and the Metacode.
Metacode output goes on Sheets, which Knott describes as “scraps as paper – messy, temporary aids to help with comprehension”. These little notes are not part of the overall algorithm and can be crumpled up and thrown away after working with them, just like scratch paper.
It is worth mentioning that Algojammer was inspired by the works of computer scientist Bret Victor. Bret Victor is best known for his award-winning interface design and innovative ideas on the future of programming and engineering. Chris Knott specifically mentions Learnable Programming and Inventing On Principle as inspiration. (These are amazing resources for anyone with even a remote interest in programming or tech innovation. At the very least, Bret Victor’s work will give your brain an aerobic workout.)
By showing the code visually, Algojammer is calling up one of the lessons that Bret Victor taught in Learnable Programming: “Make flow visible“. Visualizing algorithms is an important step in understanding them at a higher level.
Knott states that unfortunately, he has no current plans for Algojammer. However, he invites others to provide constructive criticism or help contribute. Futhermore, keep in mind that the current build is not final. If you decide to run it, expect to have the occasional crash and keep the unfinished nature in mind when providing a critique.
On GitHub, Knott writes: “Unfortunately I have reached the limits of my enthusiasm, ability and ideas at the moment, so I am putting it out slightly early in the hopes that other people can help, or at least to stimulate some interesting discussion.”
We hope to expand the reach of this call and perhaps some of our readers will help contribute. This project shows such a genuine passion for programming that we know some people will be inspired by.