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) 학습자 리뷰 및 피드백

5.0
251개의 평가
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 https://mitpress.mit.edu/books/elements-computing-systems. 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....

최상위 리뷰

MS

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.

RB

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!

필터링 기준:

Build a Modern Computer from First Principles: Nand to Tetris Part II (project-centered course)의 60개 리뷰 중 1~25

교육 기관: Brian C

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

교육 기관: Sean E

May 14, 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

교육 기관: Jun Z

Oct 13, 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.

교육 기관: Ross M

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

교육 기관: Roshan B

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!

교육 기관: mebusy

Jul 30, 2019

I feel that I reviewed more deeply a bunch of courses taught at my university . Thank you.

교육 기관: Mohammad G

Feb 26, 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!

교육 기관: Max H

Jul 27, 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.

교육 기관: James M

Aug 20, 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.

교육 기관: Jesse W

Jun 13, 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."

교육 기관: Richard M

Mar 19, 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.

교육 기관: Ravindra

Jul 16, 2017

This is an excellent course giving good view of operating system, compiler and fitting the pieces together. Highly recommended

교육 기관: Cheng H

May 30, 2019

Best ever computer science course I've taken. Though it takes me 7 months to complete both parts, it really worth it!

교육 기관: Guillermo S C C

May 18, 2019

The best course ever.

교육 기관: Graeme G

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

교육 기관: Andrii D

Sep 02, 2018

One of the best computer science courses I ever had. You start understand how actually things like heap, stack, etc. works.

교육 기관: Serjey G I

Jan 23, 2019

splendid

교육 기관: Shriharsh M

Feb 15, 2019

What an effort by the teachers! Such complex concepts simplified for a large and varied target audience. I thoroughly enjoyed doing the exercises for this course. I am eager to take up the part 3 whenever it comes out.

교육 기관: Piotr L

Mar 01, 2019

Great, highly recommended.

교육 기관: Chris P

Mar 17, 2019

Excellent, challenging course. Learned way more than I expected!

교육 기관: Qiang K

Jan 21, 2018

This is the life-changing course!

교육 기관: dracula

Dec 08, 2017

Tough, Boring but useful

교육 기관: Marcel S

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.

교육 기관: pengwei

Jul 20, 2017

The best introduction of computer science course forever, I will recommend it to others. Thanks.

교육 기관: Luis G C

Sep 13, 2017

It's the most amazing course that i've ever taken. Thanks Noam and Shimon for your work.

I eagerly await the continuation of the course.