Nand-to-Tetris

Project solutions for the Nand to Tetris course.

Course

The best way to understand how a computer works is to built one from scratch. And that is exactly what Nand to Tetris course does. The course leads students through 12 projects that gradually build a basic hardware platform and a modern software hierarchy. Throughout the processes students gain invaluable hands-on knowledge in the following areas:

It’s a fantastic course and I highly recommend it.

Repository

This repository contains my Nand to Tetris project solutions. The course is comprised of two parts, hardware and software. Each part contains six projects that are self-contained in accordance with the abstraction principle.

Project solutions

Part I: The hardware

First part is dedicated to the design and implementation of a computer hardware named Hack. The repository contains hardware solutions to the following projects.

Part II: The software

Second part starts with the virtual machine design, implements a high level object oriented language called Jack, and ends with compiler and the operating system. The repository contains software solutions to the following projects.

References

The course is based upon The Elements of Computing Systems by Noam Nisan and Shimon Schocken. Also the official course website contains all the project materials and software tools needed.