Chevron Left
Voltar para Build a Modern Computer from First Principles: Nand to Tetris Part II (project-centered course)

Comentários e feedback de alunos de Build a Modern Computer from First Principles: Nand to Tetris Part II (project-centered course) da instituição Universidade Hebraica de Jerusalém

438 classificações

Sobre o curso

In this project-centered course you will build a modern software hierarchy, designed to enable the translation and execution of object-based, high-level languages on a bare-bone computer hardware platform. In particular, you will implement a virtual machine and a compiler for a simple, Java-like programming language, and you will develop a basic operating system that closes gaps between the high-level language and the underlying hardware platform. In the process, you will gain a deep, hands-on understanding of numerous topics in applied computer science, e.g. stack processing, parsing, code generation, and classical algorithms and data structures for memory management, vector graphics, input-output handling, and various other topics that lie at the very core of every modern computer system. This is a self-contained course: all the knowledge necessary to succeed in the course and build the various systems will be given as part of the learning experience. The only prerequisite is knowledge of programming at the level acquired in introduction to computer science courses. All the software tools and materials that are necessary to complete the course will be supplied freely after you enrol in the course. This course is accompanied by the textbook "The Elements of Computing Systems" (Nisan and Schocken, MIT Press). While not required for taking the course, the book provides a convenient coverage of all the course topics. The book is available in either hardcopy or ebook form, and MIT Press is offering a 30% discount off the cover price by using the discount code MNTT30 at 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 15 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....

Melhores avaliações


14 de jan de 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.


2 de set de 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!

Filtrar por:

26 — 50 de 138 Avaliações para o Build a Modern Computer from First Principles: Nand to Tetris Part II (project-centered course)

por Maryan H

11 de fev de 2021

What a great way to learn from ground up.

It's the only course I know that takes you on the journey from CPU binary instructions all the way to compiler and OS.


por Ola M

25 de out de 2020

I do not know to be honest, but this course is definitely not for beginners. I liked the lecture also it took lot of time to understand , but the project was very difficult and I spent a lot of time in trying. I will complete another part of the course to be able to better define my opinion.

por Eric E

25 de mar de 2021

The difficulty design of coursework is unreasonable, and the difficulty span is large, which is unacceptable

por Vaibhav S

20 de jul de 2022

First of all, I want to thank Professor Noam Nissan and Professor Shimon Schocken for making such a brilliant course. There is a lot of effort put into making this course.

This is a very informative course for learning how a computer functions internally. It helped me as I am not from a computer science background, as it contains everything that one needs to know and prevented me from wandering on the internet.

For someone starting on this course, I have a few suggestions-

Before starting the course, please ensure you have a decent knowledge of any programming language. Even though the course is for beginners don't think you are going to complete it like other beginners courses. It will take a lot more effort. Also, prepare yourself to devote a lot of time to it. The last 3 assignments took me about 10 days each to complete apart from watching the videos.

And remember if you want to become a better developer this course will help a ton.

Finally, thank you again Professor Noam Nissan and professor Shimon Schocken for this outstanding course, I am waiting for Nand to Tetris part 3.

por Anders P

19 de mai de 2020

From Nand to Tetris part II is an incredibly valuable learning experience giving you the knowledge of all software layers, starting with assembly code all the way to high level code - essential for any professional application developer. Be aware, the work load of part II, in relation to part I, is massive. In my own experience, you'll need three times the time you used to complete part I. My three main suggestions for improving this course are; firstly, to shorten the video lecture, as subjects are repeated somewhat throughout the individual videos, secondly, decrease the weekly projects' scope - they are too massive risking to loose the student along the way, thirdly, provide more information from a single source on how to complete projects - information is currently spread throughout video lectures making it difficult to synthesise, while the information provided is too ambiguous. Having said this, my initial recommendation holds - And I wish you a pleasant experience with it!

por silvercodeify

5 de jan de 2022

My journey started with a game I bought a few months ago. In this game I had to construct some logic gates. I had no idea about these things and started searching the internet for information on the subject. First I landed on nandgames, an online logic gate creation game. And then I found this course. And this course is by far the best I have ever taken.

Building a computer from scratch with all the software and services, seeing all the beauty of the thoughts and ideas behind the machines and algorithms is a real eye opener. There is a lot of hard work to be done in this course, but at the end you have a very good idea of how computers work.

Many thanks to Simon and Noam for offering this course to anyone interested. Thank you for the expert presentation and all the tools and goodies you have created for Nand2Tetris. If there is a third part, I will get it immediately.

por Guo F

12 de out de 2021

A remarkable journey! This course covers a great deal of content, but the projects are well-paced and organized so I never lost the momentum.

The videos are very good company of the book as they give additional information about how to implement the modules.

The official website is also useful:

I was really amazed and inspired by the Cool Stuff on the nand2tetris website. It shows how a simple language can do great things. But I also feel ignoring operator precedence is the most pitiful thing. Maybe it facilitates the implementation but that makes writing buggy Jack programs a lot easier.

Thank you Noam and Shimon.

por Christopher J L

15 de fev de 2021

This is a fantastic course. It gives an in depth dive into computer science via an awesome case study - build your own computer! The pace is good for a user with intermediate experience with software. If you are a beginner with little experience, this course will be hard. The lecturers are very passionate and engaged and it makes for a wonderful learning experience. I would highly recommend doing both part 1 and part 2 of the Nand to Tetris course.

por victor312

7 de mai de 2017

The grading interface could be better but the TA (Eytan) was highly responsive and patient, as well as informative. I think that the grading interface could be improved (output from the automatic grader), I'm not sure if this has been done already. But, this course is a real gem and definitely helps me understand the inner workings of computers, which is important for me as I come from a pure math background. Thank you!

por Daniel N

12 de nov de 2020

This is by very very far the best (and most difficult) course I've ever taken- together with Nand to Tetris Part I. Part II requires much more effort and it took a long time for me but I cannot even begin to describe how fantastic of a journey it has been. It helped me in many different ways to become a better programmer. I'm very grateful for everyone who worked hard for this course to be available! Thanks so much!

por Steven G

21 de jun de 2018

This is a brilliant and very challenging project oriented course. Even as a IT professional doing this course for fun the workload can be very demanding. Be prepared to work hard and for long hours to get through this course. But the tremendous feeling of accomplishment at the end makes it all worthwhile. I have not felt this way since my undergraduate days. Thank you for reigniting my passion.

por James T

12 de jun de 2018

Absolutely phenomenal. One of the best and most instructive courses I've taken. This provided a much deeper understanding of computer internals than I'd previously had, and I'm shocked by how much ground was covered in this course. It took a lot of work, and while it is listed as 'beginner', I imagine it would be quite challenging to complete without having any experience programming.

por Vivek N

7 de jul de 2017

By far the best MOOC I have taken - the focus on actual projects rather than simple quizzes keeps one continuously challenged.

The sense of accomplishment from building the entire stack of computing from ground up is really amazing.

The course instructors are great presenters and orators - there's no chance of getting bored - they bring great enthusiasm and passion into what they teach.

por Vinicius S

1 de set de 2021

This entire course honors what it claims. It has the ability to demystify computers and how they work. And that is great. The sense of accomplishment is enormous, a step forward for anyone studying in this field. It was a long, hard course, but it was worth it. I would like to thank Professors Noam Nisan and Shimon Schocken and all the staff and fellow students. Thank you!

por Yechen H

21 de abr de 2020

This is a great course to a great amount of knowledge about the compiler and programming language, and get some knowledge about the operating system.

I would definitely recommend to anyone in the tech area to take this course and wish I had the chance to take this course early in my career. It would have provided me with great knowledge and understanding.


31 de mai de 2020

Again a very good course. Even this course is a great one but I feel its not for beginners like Part1.Before opting for this course you should have a good knowledge of any programing language. Otherwise you will find it difficult to do some projects. But again the course shows you how the small pieces solve a big puzzle in efficient way.

por Xander L

2 de mar de 2017

Absolutely superb. It's incredible how much ground is covered from start to finish, yet the design of the course, the languages and the computer itself are so elegantly conceived that the creators have achieved the seemingly impossible: to provide a deep understanding of every level of a modern computer system in 8 weeks. Thank you!

por clemera

19 de jul de 2017

This course changed the way I think about programming and computers in many ways. Understanding and implementing the essential abstractions which make computers do their magic was one of the greatest learning experiences I ever had!

I'm thankful to the authors and they have all my respect for putting together such a great course!

por Sam S

27 de mai de 2020

Excellent course. Very engaging projects and a big step up in difficulty / commitment from part 1. Anyone considering this course should likely have a basic knowledge of some programming language (Java, Python, whatever), as the compiler project will be a big challenge if you need to navigate a new language while completing it.

por Sijo X

5 de jan de 2022

Best course aver done! the joy of building a general purpose computer from scratch. It was a tough journey for me but I enjoyed every bit of it. you will learn what happens inside the computer , how the compiler works. what role the OS do , and how we design a language. There is not better way to learn computer science.

por Robert S

11 de jun de 2020

Easily the most challenging and reward course I've taken on Coursera. Would recommend to anyone interested in learning how computers work to take both parts of this course. Be willing to give 10-20 hours each week to work on the programming projects, I was grateful for the extra buffer week to finish up my work.

por Finlay H

29 de jul de 2020

Incredible course, automating testing could have been improved (more coverage of tests and more rigorous tests). However, I don't believe that was the point of the course or important in what was being taught. It has changed the way I view computer science and I have found it truly insightful.

por Dan E

14 de jun de 2021

Some issues along the way where certain things were a bit non-obvious with what was expected of the projects or otherwise would have liked to be able to exchange messages with the instructors on some key questions and issues. But the content is great and I am happy with what I learned.

por Foad V

24 de set de 2017

Just as the first part of the course the second course is equally interesting. So much information to learn from this course yet taught in a very student friendly, intuitive and interactive way. Doing the programming exercises makes this course even more exciting. Check it out!

por Egon R

21 de jul de 2021

Absolutely amazing. Learnt more about hardware design and compilers in these two courses then back in the university. And additionally made a childhood dream of mine come more then true - building a computing system at my own (heck, i even got a compiler and OS as a bonus!)