Build a Modern Computer from First Principles: From Nand to Tetris
Nand2Tetris course is organized as projects (build chips) for each abstraction layer. The projects were clear and well defined. The tools were just to the task. The lectures drive the concepts involved to understand the layer that has to be implemented. And the layer it depended on, and the layer that will consume this layer.
The whole course went by building key components in one layer per week. Layer by layer, I created basic gates, MUX, ALU, Register, RAM, CPU, Computer, Assembler. All with NAND gates and using chips built in the previous layer.
I got excited after completing each project one after the other. Which drove me to finish all the 6 weeks course content and projects in 3 days. After completing the first project, I hit a flow. Decided to go with the flow, left out everything else. Once I was able to make all tests pass with the CPU chip I built, I was joyful. One thing I used is to play the video lectures @2x speed. After becoming comfortable with that speed. Watching the video lectures at normal speed, sounded like a slow-motion video. Our brains are so quick to adapt. Just try for yourself.
All credit goes to Noam Nisan and Shimon Schocken. Thank you for designing such a course. And writing an excellent book The Elements of Computing Systems. Coursera is a well-designed platform for learning the content of build a computer starting with first priniciples.
BTW the contents of the book are available for free. Check the reading column for the chapters of the book relevant to each project.
Waiting for Part 2 of the course. I don’t know If I can wait for another month. One option is to just read the book and finish the rest of the projects. And watch the course later.