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...
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 Peter K•
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 Agustín N G•
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 Sean E•
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 Brendon L C•
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 Helio R•
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 Jon I•
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 Shawna C•
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 Benjamin A B•
software doesn't work. Bad vibe on the forums.
By Mithilesh V•
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 Andrea D B•
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 Clyde T•
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 s v•
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 alvaro H•
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 Hyun-joo K•
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 Justin s•
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 Akshay V•
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 .
By Husham E K•
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 Lucas F d S•
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.
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!
By Stephen H•
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!
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 Evgeny K•
Impressive work had been done by tutors. For me computers were always a black box and now i see logic behind it and to certain extent i can create one from the set of logic gates.
By pushpankar k p•
This is one of the best courses available on the internet. Projects are just at the end of comfort zone. Thank you professor.
By Abdulaziz S•
Really Amazing Course! This course gives a proper insight of how things work on the most fundamental level!
By MORIYA P V•
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.