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

Learner Reviews & Feedback for Build a Modern Computer from First Principles: From Nand to Tetris (Project-Centered Course) by Hebrew University of Jerusalem

4.9
stars
3,494 ratings

About the 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....

Top reviews

AI

Jun 13, 2021

Undeniably one of the best computer science courses. The advertising isn't false! This course permanently changed my perspective on hardware and software along with the relationship between the two...

MM

Feb 17, 2017

An excellent course provided by phenomenal professors! Everything is broken down into simple, easily understandable portions, and leaves you with a clear idea how to proceed to solve a given problem.

Filter by:

1 - 25 of 1,058 Reviews for Build a Modern Computer from First Principles: From Nand to Tetris (Project-Centered Course)

By Helio R

Sep 16, 2020

I just can't recommend this course. What should have been someone explaining you all ins and outs of how to make a computer from scratch is in fact someone showing you a brief introduction of what the section we will study is about, followed by a 'we are hiding information on purpose, do it yourself!'. The professors are trying just way too hard to hide any information about how to actually do what you are supposed to do in order to not give the answer away, that they're actually teaching absolutely nothing in practice, leaving you to go through hours and hours of google and forums search, letting you completely unprepared and with no idea on how to even start doing the project. It is just absolutely frustrating.

What is supposed to be: "Hey, do you want to learn how to use our HDL language? Heres some exercises explained step by step all the ins and outs, the syntax, how to do this and that, how the chips integration works, how to actually link chips, some more examples, some more exercises, until you are comfortable enough to actually start doing the chips! Have any doubt on how to implement a specif chip? Don't worry, heres more explanation of this particular chip, followed by some more examples to get you really knowing the chip!"

What you get: "Hey, here's our HDL language. The syntax is something like that, but we are hiding information on purpose, try it yourself. Ah, the project? You just need to implement X chip, it takes this in and outputs this output. And again, we will hide all information you might need so we don't give away the answer. Heres some documentation which will, again, hide the majority of information you might need. Good luck!"

By Peter K

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!

By Clyde T

Aug 23, 2020

This was so much fun, so satisfying and I learned a lot. I'm a software engineer. We do so much work in high-level languages that it's great to be reminded how computing machinery gets the job done.

By Agustin N

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

By Brendon L C

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

By Shawna C

Apr 17, 2019

The instructional videos for this class move way too quickly for a beginner. I had to use lots of other sources to even begin to understand how to do the projects. This class is not for beginners.

By Sean E

May 14, 2019

A fascinating and incredibly well-made course. Check out my Medium article as to why you should be taking this course: https://medium.com/@seandlg/what-nand2tetris-has-taught-me-about-computers-and-more-importantly-about-learning-aebc84af3030

By Jon I

May 11, 2017

A very enjoyable class, which takes you from the basics of logic gates, through constructing larger logical units such as an ALU, through to machine code, and finally (the last, and definitely hardest section) writing your own assembler for the 'Hack' instruction set. Every stage has been carefully thought through by the instructors, and a lot of effort obviously went into finding forms which would be accessible for the beginner to construct (for example, every machine code instruction occupies exactly one 16 bit word, and the instructions themselves carefully designed to make the CPU control logic as easy as possible to implement).

For an even lower level of computer construction, this course is complemented very well with the series of videos that Ben Eater is creating on YouTube - https://www.youtube.com/user/eaterbc/videos - detailed the construction of a very basic 8-Bit 'Simple As Possible' computer from discrete logic chips. He goes into a lot of detail about the construction of various Flip Flops, for example, whose existence and abilities are just assumed in this course. On the other hand, for a higher level look at computers, the natural followup to this course is Nand to Tetris Part II, which is also on Coursera.

By Mithilesh V

Jan 2, 2019

A wonderful course which covers the fundamentals of computers from scratch. The instructors have done an amazing job at explaining the basics, without any pre-requisite. The lectures were well-planned and the projects were crucial in strengthening the basics. It was an enlightening experience and I recommend it to anyone who is bewildered by the sheer complexity of today's computers. If you have the will to learn, go ahead and take this course!

By Pierre H

Jun 21, 2021

This course is interesting, but it shows why 90% of people never finish their MOOCS

It starts really well, with a bunch of examples, and well designed classes..

Then suddendly, around week 4, everything goes south : the classes become very long, very theoretical, you go from 10 exercises to only 2, and you have to digest an enormous amount of theoretical knowledge before actually trying things out practically.

The ratio of theory/practice should be 30% theory, 70% practice to learn well.

In this course, it's 90% theory and 10% practice, which is disappointing.

By Benjamin A B

Feb 4, 2020

software doesn't work. Bad vibe on the forums.

By Madhavi M

Feb 18, 2017

An excellent course provided by phenomenal professors! Everything is broken down into simple, easily understandable portions, and leaves you with a clear idea how to proceed to solve a given problem.

By alvaro H

Dec 2, 2019

The teacher with grey long hair talks to fast and seems like he gets nervous in front of the camera, its hard to follow what he says also because of his speed at talking and accent.

By rimita d

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

By Vignesh S K

Oct 26, 2019

Pluses are :-

Great Projects !!

Like the saying "Simplicity is beauty", both the authors' presentations were very simple

I thoroughly enjoyed the course.

Minuses are :-

Justification for the behaviour of Half-Adders & Full-Adders was not covered.

Magic of ALU control bits was not explicitly explained.

In project6, since Assembler was not written in Binary language, the hardship of making a real assembler in machine language was not felt leaving the project a little unsatisfactory.

Final Verdict :-

Thank you so much for making this course.

You guys have written, an Assembler, Hardware-emualtor, Cpu-emulator etc.

And the graphics that comes with "Program & Data Flow" option is simply icing on the cake.

And to top this, this entire course can be audited free of cost.

This is a thankless service you guys have regardlessly rendered.

Great Respect & Massive Gratitude i have for you guys.

Thank you so much. Much appreciated

By Hyun-joo K

Feb 16, 2020

I graduated my university long time ago, and hard to experience very low level approach to computers in my field experiences. This course offers refreshing what I had learned very long time ago - the principles and mechanisms of computer designs and low level software development with opcodes and assemblers.

I think this course is very helpful for current university students and everyone interested in computer designs and software development in very low level with assemblers because nowadays there is too small chances to work in such a low level environment.

For both quite experienced people and new comers in computing, I dare recommend this course. Experienced people can refresh what they had learned very long time ago, and New comers can get well-designed knowledges and understandings for low level computing.

By Vibin J

Mar 21, 2023

Exceptional course

The Best and simplest explanations on how computing devices works

The best course I have ever done

“If you can't explain it simply, you don't understand it well enough.”

Albert Einstein

By Andrea D B

Sep 10, 2019

Really good course, made with care. I learned a lot.

Learning and thinking all the steps to go from a NAnd gate (and a DFF) all the way to a CPU hardware.

The best part for me the last project, where I coded a full Assembler that output machine language that I could run directly on the CPU i built!

By Husham E K

Feb 12, 2018

I recommend this course for anyone who's learning about digital design and computer architecture. Now when I look to other courses I understand the material very well and easier than before. It took me long time to understand this and when I took this course, everything since become more easier.

By Stephen

Mar 24, 2018

A very helpful course to whom wishes to understand the underlying hardware of computers. Not too hard and not too easy. The difficulty is just suitable for non-professional enthusiasts. This incredible course can teach you how to build a computer from scratch in merely several weeks!

By Shawn C

Apr 16, 2018

This is an incredible course, the best among my ever-took MOOCs. If you want to know how computer works at machine level, for example, how the memory is random accessible, how CPU fetch instructions from memory and execute it, you mustn't miss it.

Sincere thanks to Noam and Shimon.

By Dario A

Jul 28, 2016

Very interesting course for those who want to fully understand the inner workings of a computer.

However, the utilities offered are a bit neglected. Be prepared to fight bugs on your own.

By 石亿友

Apr 11, 2021

Two professors and their groups make the procedure of making a computer architecture easier for people like me who is interested in learning more about CS by doing. For me, it is a little difficult to make it. The difficulties come from two aspects: the language level and my poor knowledge of computer. But I'm really happy doing this course. Thank you , Noam and Shimon and the people in the groups! I'm Chinese university student coming by curiosity.

By A. S I

Jun 14, 2021

Undeniably one of the best computer science courses. The advertising isn't false! This course permanently changed my perspective on hardware and software along with the relationship between the two...

By Akshay V

Nov 5, 2018

After being a software engineer for about 4 years now , this course helped me to explore the mystery of how a computer works which we high level programmers take it for granted . I highly recommend this course to anyone who wants to work as a software engineer , the course material is so well designed that I completed the course in two weeks without getting bored , now on to Part II .