Back to Build a Modern Computer from First Principles: From Nand to Tetris (Project-Centered Course)
Hebrew University of Jerusalem

Build a Modern Computer from First Principles: From Nand to Tetris (Project-Centered Course)

What you’ll achieve: In this project-centered course* you will build a modern computer system, from the ground up. We’ll divide this fascinating journey into six hands-on projects that will take you from constructing elementary logic gates all the way through creating a fully functioning general purpose computer. In the process, you will learn - in the most direct and constructive way - how computers work, and how they are designed. What you’ll need: This is a self-contained course: all the knowledge necessary to succeed in the course and build the computer system will be given as part of the learning experience. Therefore, we assume no previous computer science or engineering knowledge, and all learners are welcome aboard. You will need no physical materials, since you will build the computer on your own PC, using a software-based hardware simulator, just like real computers are designed by computer engineers in the field. The hardware simulator, as well as other software tools, will be supplied freely after you enroll in the course. Course format: The course consists of six modules, each comprising a series of video lectures, and a project. You will need about 2-3 hours to watch each module's lectures, and about 5-10 hours to complete each one of the six projects. The course can be completed in six weeks, but you are welcome to take it at your own pace. You can watch a TED talk about this course by Googling "nand2tetris TED talk". *About Project-Centered Courses: Project-centered courses are designed to help you complete a personally meaningful real-world project, with your instructor and a community of learners with similar goals providing guidance and suggestions along the way. By actively applying new concepts as you learn, you’ll master the course content more efficiently; you’ll also get a head start on using the skills you gain to make positive changes in your life and career. When you complete the course, you’ll have a finished project that you’ll be proud to use and share.

Status: System Design and Implementation
Status: Computer Programming
Course44 hours

Featured reviews

BD

5.0Reviewed Sep 8, 2016

Fantastic. Quite difficult for me, but I learned the material along the way. Fantastic way to train yourself to think logically and parsimoniously. And the computer knowledge is invaluable.

MK

5.0Reviewed Aug 13, 2022

Coming from a high level programming backgroun with a degree in games programming, this course was amazing to fill in the gaps in my knowledge, and solidify low level computer science fundamentals.

SK

5.0Reviewed Sep 16, 2017

Gained a massive knowledge in fundamentals about Machine Language, Assembly Language and Hardware Descriptor Language. Thank you Prof. Nisan & Prof. Schocken for teaching all the sessions

JZ

5.0Reviewed Jul 20, 2017

through this course I literally understand how to computer operates and how it is built from a simple chip Nand to a complex system with ROM/RAM/CPU. The course is great! Highly recommend this!

BC

5.0Reviewed Oct 12, 2017

Really good course. Great explanations of everything and the tools provided make it very easy to implement some very high levels ideas. Would recommend this to anyone interested in how a CPU works

RD

5.0Reviewed May 23, 2021

Thanks to the instructors for bringing forth such an amazing course. The way the course is strucured makes it very interesting and easy to learn. Loved and enjoyed the course and learnt a lot from it

JJ

5.0Reviewed May 7, 2020

The class is straightforward and the right level of detail to make you feel like you really understand the topics. Highly recommend to anyone wanting to understand how computer hardware works!

TX

5.0Reviewed May 24, 2020

I had great fun with the projects! The materials illustrate how processors work clearly, without being overly complex. I think it is a nice introduction to computer architecture and systems.

LW

5.0Reviewed May 29, 2019

Incredible Course. I've never experienced such an learning experience. This course did not just teach me how computers work, more importantly it taught me how to learn and deal with complexity.

Y

5.0Reviewed Jul 16, 2020

this one of the most elegant courses a computer engineer can take in the early beginnings of his undergrad study, it will give him the overall view of digital design and computer architecture.

PK

5.0Reviewed Jan 27, 2019

This was just a wonderful course - exciting, challenging, well organized, and a ton of fun. I really enjoyed every week of it and will recommend it to friends. Thanks so much to Shimon and Noam!

AN

5.0Reviewed Jun 10, 2020

I really liked the course when I watched it at the University; it's concise and interesting I liked the Hardware development part specially, since the development of the assembler was full of bugs

All reviews

Showing: 20 of 1,128

Helio Ramos
1.0
Reviewed Sep 17, 2020
Peter Kinmond
5.0
Reviewed Jan 27, 2019
Clyde Tressler
5.0
Reviewed Aug 24, 2020
Shawna Crile
2.0
Reviewed Apr 18, 2019
Agustin Nieto
5.0
Reviewed Jun 10, 2020
Brendon Le Comte
5.0
Reviewed Oct 13, 2017
Sean Eulenberg
5.0
Reviewed May 14, 2019
Jon Ingram
5.0
Reviewed May 12, 2017
Pierre Hersant
2.0
Reviewed Jun 21, 2021
Benjamin A. Boyce
1.0
Reviewed Feb 5, 2020
Mithilesh Vaidya
5.0
Reviewed Jan 2, 2019
Madhavi Madangopal
5.0
Reviewed Feb 18, 2017
rimita deb
5.0
Reviewed May 24, 2021
alvaro Howard
3.0
Reviewed Dec 3, 2019
Husham Elfadil Ahmed Khartoum
5.0
Reviewed Feb 13, 2018
Vignesh S Kannan
4.0
Reviewed Oct 26, 2019
Hyun-joo KIM
5.0
Reviewed Feb 16, 2020
Vibin
5.0
Reviewed Mar 22, 2023
Andrea Di Biagio
5.0
Reviewed Sep 11, 2019
Stephen
5.0
Reviewed Mar 25, 2018