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.
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.
par 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!
par 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
par 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
par 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.
par Mithilesh V•
Jan 02, 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!
par Agustín N G•
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
par alvaro H•
Dec 03, 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.
par 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.
par Akshay V•
Nov 06, 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 .
par 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!
par 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.
par Lucas F d S•
Jun 07, 2020
Great course! The instructors make it sound really easy, and when you see the implementation working It really motivates you. The community is really great too, lots of people to help and assist you. No need for any background in Computer Science or Programming to attend and finish this course.
Jun 19, 2016
Computer system internals, hardware and software architectures, concept of abstraction, divide and conquer method, the fun of building hardware, and the fun of writing programs, all combined into this course, in an organised way, I can't think of a better course and a better teaching!
par Stephen H•
Mar 25, 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!
Apr 17, 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.
par Abdulaziz S•
Jun 10, 2020
Really Amazing Course! This course gives a proper insight of how things work on the most fundamental level!
par MORIYA P V•
Jun 22, 2020
It's been a really nice course. I'm a EE undergrad and I did know most of it but it was a fun experience.
par VISHAARAD B•
Jun 11, 2020
Best Course Ever! Watch its Ted Talk for all you need to know about it. They deliver on their promise.
par Kachireddy S R•
Jun 10, 2020
It was really good. It gave me a very good understanding how a computer is built from scratch.
May 31, 2019
any CS people should take this course. the way it delivers is just amazing.
par s v•
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
par 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.
par 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!"
par Benjamin A B•
Feb 04, 2020
software doesn't work. Bad vibe on the forums.
par Ju H K•
Aug 16, 2020
Great course to go over the basics of how a computer works up to the assembler. This is a great introduction to computer organization (hardware) as it goes through various logic gates and builds up to sequential circuits to be able to implement an ALU, memory which then can be used to build a CPU. The course goes over their own variation of HDL and assembly which is a great introduction to those who are not familiar with it. The assembly may look different from what some may be used to but it's designed to be simple for those without computer science background to be able to learn. In fact the entire course is designed to be simple for anyone with enough dedication to be able to build a computer. Therefore, there are some simplifications and "axioms" that are established (i.e. you don't learn about how transistors work in depth, nor are you expected to implement various flip flops and chips that may be a bit too complex).
I particularly like this course as it helps refresh my memory of what I learned when I was in undergraduate. This is a project centered course which contrasts to my undergrad where it was more theoretical (though we did have lab components which was in some sense more in-depth on implementing certain chips). I never tried building a computer theoretically from what I learnt in University and the computer architecture we studied was either too complex or way too time consuming for the average student to implement virtually. This computer architecture was designed just right.