From Nand to Tetris: Build a Modern Computer from First Principles online course

Yesterday I completed part 1 of the “Nand to Tetris” course by Shimon Schocken and Noam Nisan on Coursera. I finished all the videos and the first 5 projects during lockdown but I delayed the final project because I wanted to try and learn the basics of Java to have another language to play with.

It is a six week course that starts by looking at logic gates, then moves on to using these to build an ALU, followed by memory and a basic CPU. Each week there is a project where you use a hardware description language to create chips that can then be used in a hardware simulator. The CPU and memory chips are combined in the final HDL script you write to form a full computer using the Harvard architecture.

Alongside this you learn about the machine language of the computer and its assembly language. The final project was to create an assembler for the computer using a high level language of your choice. I chose to try and use Java. It was very cool to assemble the supplied machine code for the game Pong and to then be able to run it on an emulator of the CPU I had earlier created using the specifications supplied on the course and the hardware description language.

I really enjoyed the course and look forward to at some point completing part 2, which is another six weeks focusing on software, including a rudimentary OS and a compiler for a higher-level language.

Leave a comment

Design a site like this with WordPress.com
Get started