
The problem
Nand to Tetris students build a computer from logic gates up, and they do it in a browser IDE. The Bitmap Editor, which students use to draw sprites for their Jack games, was a standalone 1,357-line HTML file that sat outside the React app.
What I built
- PR #627: rewrote the Bitmap Editor (originally by Erik Umble) as a React page. New utilities encode each row as 16-bit two's-complement words and generate both Jack Memory.poke code and Hack assembly, and the drawing is saved in local storage.
- PR #619: redesigned the Settings page and added the File System guide.
- PR #615: replaced the CSS tooltips with a React portal that measures itself and picks the side that fits in the viewport.
- PR #601: fixed a Jack compiler editing bug. PR #597 added the Bitmap Editor user guide, and PR #626 uploaded the course staff's updated user guides.
- Outside the IDE: a release-packaging workflow for nand2tetris/projects (PR #6) and a browser grader that runs a project ZIP against the course tests.
Results
- All 6 PRs were reviewed and merged by the maintainer and run on nand2tetris.github.io/web-ide.
- Supported course learners on Coursera as part of the teaching staff.