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

470 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:

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

por 李俊宏

18 de ago de 2017


por Yi L

28 de jun de 2020

Super great course!

por Will J

12 de jan de 2020

Excellent course!

por Devashish T

17 de nov de 2022

Simply Amazing

por Isaac C S

1 de mar de 2021

Amazing Course

por Wooil S

21 de mar de 2021

best of best

por tangella l

24 de jul de 2018

Great course

por Anran

19 de jun de 2019

A true gem!

por Geovanni P C

16 de jan de 2020


por Code A A

9 de nov de 2017


por Serjey G I

23 de jan de 2019


por Bussetty S S

12 de abr de 2021


por Himanshu M

4 de jul de 2020


por Stuart H

6 de jul de 2022

A very good and thorough course.

One downside when compared to the first part however, was the lack of the book chapters. In the first part of the course, many of the chapters were available, and I found them extremely helpful. However, while I frequently wanted the written material in this part, only one or two were available. The required material was findable in the videos, but searching through videos, and reading big tables of grammars, api contracts etc which I need to implement, is much less convenient than having a written document.

por Cheryl

17 de fev de 2020

Although the teaching was still great, the projects were more of a slog to get through and took way more time. Most of the projects were to build "translators" (in another language such as Java or Python that is otherwise unrelated to the course) to bridge the low level language of the computer to a programming language. While I can understand the learning that comes with how this is done and techniques to use, I felt that there was just too much programming relative to the lessons.

por Brandon W

4 de fev de 2021

One of the best MOOCs I've ever taken. Some of the parts during numbers of projects were tricky enough to spend hours Googling and searching for an answer. However, you may find the answers in the discussion forum on Coursera or nand2tetris forum. It is definitely not an easy course, but worthwhile to take. One thing if I may append, some of the lecture PDFs still contain contents that may give fellow learners some amount of frustrations. I hope those will be fixed soon.

por Nathan B H

6 de fev de 2022

It was a fun course, yet it's super involved! Please be sure to have a solid understanding of computer programming and computer science before you take this course!

por Benedek R

3 de set de 2018

It was a bit superficial. Homework helped to practice the basics. I prefer more detailed and more deep lectures.

por Knowledge M

15 de abr de 2021

The Exercises were a bit hard, but everything else was fantastic!

por Ehud K

2 de fev de 2017

very interesting, good lectures,

por Tudor J

1 de mar de 2022

Overall, the course was good. But it has problems:

First, there are technical issues with the automatic grader (the program that checks the assignments' correctness). Despite the proffessors' sympathy for the Java programming language, the grader uses a very old version of the language. I found that out the hard way after already writing the first programming assignment in Java. I had to spend 2 hours refactoring the newer Java features out of my code. And yet, the grader still didn't accept my submission because it could not find the main file, despite it literally being there! (Problem that was only reported after the Java compiler succssefully parsed all of my refactored code). I ended up giving up on Java and I translated the assignment into Python. This time, I had learned my lesson and I began with a dummy submission that printed the version of the Python language the grader was using to the standard output, which also confirmed that the grader was indeed working properly. At the time of writing this, the version was Python 3.8.6.

Second, despite reporting, and posting about, the issues, nothing has been done to address the problem. And this is not ok. The maintainers of a supposedly high quality course such as this should regularly update the programming languages their grader supports to the latest versions, as well as inform the course taker about which versions are currently supported.