MS
14. Jan. 2018
This is by far one of the best online-courses I have completed. Thumbs up, it was well worth my time and it will definitely help me on my never-ending journey of becoming a better software developer.
RB
2. Sep. 2018
I'm a 13 year old 8th Grader from California. I loved this course and learned a lot! Thank you Mr.Schocken for putting together such a wonderful course! It was a thrill to finish the course finally!
von Roshan B
•3. Sep. 2018
I'm a 13 year old 8th Grader from California. I loved this course and learned a lot! Thank you Mr.Schocken for putting together such a wonderful course! It was a thrill to finish the course finally!
von Brian C
•9. Sep. 2018
If it's not the absolute hardest course you've taken, it'll be one of the hardest courses you've taken. The workload is staggering. At an Ivy League University you'll have an entire semester + winter break to write a compiler. Here you'll have three weeks. Buckle down & get ready to work hard.
von Ross M
•5. Sep. 2018
Challenging but rewarding.
About a year ago I started mucking about with code with the aim of becoming a web developing. I started with front end and could get away with knowing next to nothing about how computers actually worked and the big software picture. As my interest grew however I quickly became dispirited because I just didn't know enough about what was really going on. Now I no longer feel like a fraud teaching myself code. This course was everything I was looking for.
My only criticism would be the last project. My implementation of the operating system classes passed the tests however it turned out I had let in some really stupid bugs which the tests didn't pick up. This led to easily the most frustrating part of the course as I then discovered most of my classes were incompatible. After the best part of another's weeks work, and several submissions later, I got full marks on the final project. That being said it is probably very difficult to test everything as the classes leave a lot open in terms of implementation.
Thanks a lot. It was a great course.
von Sean E
•14. Mai 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
von Mohammad G
•26. Feb. 2017
The second part of Nand2Tetris is a magical illuminating journey to the inner depths of computer systems including virtual machines, compilers, high level programming and operating systems covering some of the main concepts in computer science such as dynamic memory management, text and graphic representations using input/output devices, math, strings and arrays library implementations...
Like the first part of Nand2Tetris it is magnificently taught and I recommend it to anybody who wants to demystify (some of) the magics of computers for themselves.
However I should warn you that it requires a great deal of commitment and many hours of study, research and programming each week in order to be able to complete the course; Specifically the high level programming project would require some well thought application/game so you might be able to implement it in Jack High Level Language in time and only in one week.
Basic knowledge of a high level programming language like Python or Java is required in order to accomplish the programming tasks of writing an Assembler, a Virtual Machine, a Compiler and also would be helpful when writing the OS in Jack (the native Hack High Level Language).
Finally the last two projects (compiler part 2 and OS) are extremely challenging, specially the second part of the compiler in which I literally was crying for help :D
Excellent job Prof. Shimon Shocken!
von JUN Z
•13. Okt. 2017
Great Course!
The course becomes so hard for me since week 4 when we started developing compiler.
Each assignment I spent 5 hours watching videos and making notes, 10 hours coding, and 10+hours debugging.
My feeling:
It turns out that although it is: time-consuming (I am a master student in environmental management with a full course schedule, projects for week 4,5,6 made me postpone to this section) and mentally challenging (I am not well-educated on software design and algorithms so I spent a lot of time debugging my code, fail, edit, fail, edit,..)
However, the sense of accomplishment when I finally got 100 for each project (almost) is incomparable, unique, and unparalleled. Love this course!
Suggestion
Hope we could redesign the week 4,5,6. The workload exponentially increased and reached the maximum in week 5. My strategy was postponing and postponing until I got time to work the assignment out. I hope we could reestimate the workload (maybe separate week 5, 6 into two weeks, perspectively. The videos are 3+ hours long😂)
In the end, love this course. Shimon and Noam are excellent instructors, their teaching style is very enlightening, the slide animation is great for illustrating processes clearly.
von Marcel S
•15. Jan. 2018
This is by far one of the best online-courses I have completed. Thumbs up, it was well worth my time and it will definitely help me on my never-ending journey of becoming a better software developer.
von Richard M
•19. März 2017
Superb course. Great presentation and course material. Projects are challenging but fun at the same time. Highly recommend for all levels of software developers.
von Jesse W
•13. Juni 2017
This course is a lot more demanding in terms of time and effort compared to "Nand to Tetris Part I." While Part I took me about a week to complete total, for Part II I actually needed the entire week per unit. They estimate about 10 hours per programming assignment, but I found that to be an underestimate. Unlike in Part I, you are expected to be proficient in a high-level programming language such as Python or Java. A lot of the assignments in Part II are similar to Project 6 in Part I (building the assembler). If you did the programming track for that assignment and enjoyed it, then you're ready for Part II. In the end, I feel like all the effort was worth it, since I greatly improved my programming skills and gained a greater appreciation for what goes on "under the hood."
von Sai K G
•17. Aug. 2020
It is a sign of utmost gratitude and thankfulness and respect in India when we touch others feet. I touch the feet of the instructors of this course for curating such an amazingly well-structured course on such an elegant and equally challenging subject and presenting it to the world. I love the way sir Shimon Shocken explained critical topics with such ease and elegance. I am indeed sad that the course has come to an end. The course made me a confident programmer and taught me fundamental concepts of computer architecture and gave me an outlook of how real world problems are solved. The course load really increases week by week but also prepares us with enough competence required for the next week project.
Love you Shimon, Love you Noam. Love you instructors. Such an amazing ride.
von Ben
•9. Sep. 2019
The second part of an extremely rewarding course by instructors who have clearly put a great amount of thought and effort into its design. If you already feel quite comfortable with compilers and operating systems (for instance, you've previously implemented your own compiler from scratch), then maybe it suffices only to take the first part of nand2tetris as a course in computer architecture. If not, then I would highly recommend taking the second part in addition to the first as an introduction to these subjects (part 2 should probably not be taken without part 1 since the software hierarchy developed in part 2, particularly the virtual machine, is designed to run on the specialized architecture introduced in part 1). However, note that part 2 is signficantly more work (at least 2-3 times as much) as part 1. Note also that part 2 requires familiarity with a programming language; if you wish to have your assignments graded by the auto-grader, then this language should come from the list of supported languages. At the time of this writing (September 2019), the auto-grader supports the following languages: C, C++, C#, Elixir, Erlang, Go, Haskell, Java, Lua, Node.js, Perl, PHP, Python 2.7, Python 3, Ruby, Rust, Scala, Swift.
One thing to note about this course is that it is not the result of combining ordinary courses on compiler construction and operating systems and many of the standard topics taught in these courses are not touched upon at all. Rather, the nand2tetris philosophy is one of "learn by doing". This means that, while the lectures do give very clear explanations of what it is you are trying to accomplish, as well as examples of how parts or cases of your problem can be solved, you ultimately have to come up with your own solutions. In the end, your solutions may not be optimal or very elegant, but you will gain a very confident understanding of the details. I believe this makes nand2tetris part 2 an excellent course to take prior to a formal course on compilers or operatings systems.
von mebusy
•30. Juli 2019
I feel that I reviewed more deeply a bunch of courses taught at my university . Thank you.
von Ravindra V
•16. Juli 2017
This is an excellent course giving good view of operating system, compiler and fitting the pieces together. Highly recommended
von Max H
•27. Juli 2017
Almost perfect. But writing the compiler and the operating system took me far more than the projected 10 hours. IMHO, part II should be split into two, and a few more words and guides on how to structure a compiler would be preferable. Also, I think that the programming assignments touch project dimensions, so mentioning version control systems might be a good advise.
Nevertheless, and without a doubt, a fantastic course given by one of the most ambitious and relentless instructors with great teaching skills and dedication to the topic.
von James M
•20. Aug. 2018
Overall, it's an excellent course covering a lot of concepts, definitely the best online course I have done so far. The latter weeks are quite overloaded though, I think it might be better as a slightly longer course, with an additional week focussing on the VM language and the use/history of the stack and heap distinction.
von Graeme G
•29. März 2019
This course has been brilliant. I expected to learn a lot, but I got so much more out of this. Its incredible to see such a powerful machine coming out of such a simple design - a true mark of elegance.
von Akash P R
•6. Okt. 2020
Excellent Course. Understood computers at a very fundamental level. Thanks to the instructors who put together such a well planned and well paced course. Recommended to all.
von Praveen V
•24. Juni 2020
Amazing course. Learnt a lot, and goes in depth, in a very elegant manner, making concepts seem simple, and at the same time, difficult.
von Andrew D
•2. Sep. 2018
One of the best computer science courses I ever had. You start understand how actually things like heap, stack, etc. works.
von Cheng H
•30. Mai 2019
Best ever computer science course I've taken. Though it takes me 7 months to complete both parts, it really worth it!
von Chris P
•17. März 2019
Excellent, challenging course. Learned way more than I expected!
von Guillermo S C C
•18. Mai 2019
The best course ever.
von Alfonso V
•14. Juni 2022
Over the years I have taken many online courses both on this platform and others. Most of those courses have been good or very good. However, I can safely say that both part 2 and part 1 of this course are, without a doubt, the best courses I have taken so far (and the most complex at the same time). The course is flawless in terms of content and practice. You learn a lot at a constant pace. But I would like to highlight two characteristics that have been very important for me: The first one is the passion that teachers Schocken and Nisan transmit. You can tell that they love teaching, and that they have put a lot of effort into providing the students with the necessary tools to do so. The second one is that, finally, after many years, someone has explained to me what a computer is, from the most basic to the most complex. And furthermore, it has not only been theoretical, but has allowed me to experiment with it. For me that is something of incalculable value. Many thanks to Professors Schocken and Nisam, and to all those who have collaborated in the realization of this magnificent course. Translated with www.DeepL.com/Translator (free version)
von Arun C
•28. Sep. 2019
What a fabulous journey the second part was! It was exhilarating to finish off with the operating system. In many years of professional software development, I did not have as much fun as I had in six weeks in this course. Hats off to both Noam Nisan and Shimon Schoken for having conceived, developed, and presented this course in such a nice manner.
I did not receive any feedback for the peer-graded assignment, which is sort-off sad. While I can guess what might have been the reason for the grade given to me, feedback is very useful; I hope Coursera/the instructors can allow access to feedback in the future.
I wish part-2 of the book was also available on the web.
von Martin C
•21. Juli 2020
What professors Nisan and Schocken have done here is absolutely astounding. This course (parts I and II) puts the understanding of how computers work, from low-level hardware to high-level software, into the grasp of anyone who is curious enough and willing to do the work.
I must admit that I have been advocating the course for a number of years before even completing it myself. Now that I have completed it, I am more convinced than ever that anyone who wants to be a professional programmer should have this knowledge as an underpinning.