
Nand to Tetris (also known as The Elements of Computing Systems) is one of the most unique and rewarding computer science courses available. It takes you on a hands-on journey where you build a complete, general-purpose computer system — starting from basic logic gates all the way up to a high-level programming language and operating system — using nothing but the humble NAND gate.
Course Overview
The course is divided into two main parts:
- Part 1 (Hardware): Projects 1–6 — Building the hardware platform
- Part 2 (Software): Projects 7–12 — Building the software stack
The 12 Projects
- Boolean Logic — Build basic gates (And, Or, Not, etc.)
- Boolean Arithmetic — Adders, ALU
- Memory — RAM, registers, counters
- Machine Language — Low-level programming
- Computer Architecture — Assemble the full CPU + memory
- Assembler — Write your own assembler 7–8. Virtual Machine — Stack-based VM 9–11. High-Level Language (Jack) — Compiler
- Operating System — Build a simple OS
Web-Based IDE vs Downloaded Version
| Feature | Web IDE | Downloaded Version |
|---|---|---|
| Installation | None | Requires unzip + Java |
| Internet Required | Yes | No (offline) |
| Interface | Modern, clean | Classic (older look) |
| File Management | Automatic, browser-based | Manual |
| Performance | Good for most projects | Slightly faster for heavy use |
| Recommended by authors | Yes (primary) | For backward compatibility |
Recommendation: Start with the Web IDE for convenience, but keep the downloaded version as backup.
links to both below:
