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

學生對 希伯来大学 提供的 Build a Modern Computer from First Principles: Nand to Tetris Part II (project-centered course) 的評價和反饋

255 個評分
62 個審閱


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....



Jan 15, 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.


Sep 03, 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!


51 - Build a Modern Computer from First Principles: Nand to Tetris Part II (project-centered course) 的 60 個評論(共 60 個)

創建者 George K O

Jun 10, 2019

passionate professors!

創建者 Anran

Jun 19, 2019

A true gem!

創建者 Benjamin W

Sep 09, 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.

創建者 Eugene O

Oct 23, 2019

Thanks for the course!

I came from the first part and really glad I took it.

Though, OS part is pretty difficult. I was forced to look up some hints on the internet for more implementation details.

創建者 Chen A

Oct 24, 2019

After 2 years, i still didnt find something so interesting like this.

創建者 Arun C

Sep 29, 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.

創建者 索明明

Sep 29, 2019

very fun,really from 0 and 1 ,i build my own computer and implements my own code language.What's more i use my own language develop a game!

創建者 Pavneet S T

Oct 17, 2019

Very difficult and rewarding course

創建者 Benedek R

Sep 03, 2018

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

創建者 Ehud K

Feb 02, 2017

very interesting, good lectures,