Chevron Left
Retour à Construire un ordinateur moderne à partir de principes de base : de Nand à Tetris (cours centré sur un projet)

Avis et commentaires pour d'étudiants pour Construire un ordinateur moderne à partir de principes de base : de Nand à Tetris (cours centré sur un projet) par Université hébraïque de Jérusalem

3,160 évaluations

À propos du cours

What you’ll achieve: In this project-centered course* you will build a modern computer system, from the ground up. We’ll divide this fascinating journey into six hands-on projects that will take you from constructing elementary logic gates all the way through creating a fully functioning general purpose computer. In the process, you will learn - in the most direct and constructive way - how computers work, and how they are designed. What you’ll need: This is a self-contained course: all the knowledge necessary to succeed in the course and build the computer system will be given as part of the learning experience. Therefore, we assume no previous computer science or engineering knowledge, and all learners are welcome aboard. You will need no physical materials, since you will build the computer on your own PC, using a software-based hardware simulator, just like real computers are designed by computer engineers in the field. The hardware simulator, as well as other software tools, will be supplied freely after you enroll in the course. Course format: 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 5-10 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....

Meilleurs avis


13 juin 2021

Undeniably one of the best computer science courses. The advertising isn't false! This course permanently changed my perspective on hardware and software along with the relationship between the two...


17 févr. 2017

An excellent course provided by phenomenal professors! Everything is broken down into simple, easily understandable portions, and leaves you with a clear idea how to proceed to solve a given problem.

Filtrer par :

51 - 75 sur 967 Avis pour Construire un ordinateur moderne à partir de principes de base : de Nand à Tetris (cours centré sur un projet)

par Lorraine F

15 déc. 2020

I am up to the last project in this course, so I am almost done. I found the projects challenging but so interesting that I just kept at it until I achieved my projects worked. They provide enough tools and test cases to ensure your project will pass when it gets submitted for grading. The lectures provided a lot of information and guidance, so much so, you don't need the book they recommend. I did buy the book, but found that the course notes had everything I needed. I would recommend this course for anyone who wants to virtually build a computer from one simple gate -> the NAND gate...from there you build everything you need. The computer is not a shabby one. You get to see Pong working and build Tetris!!!

par Christian R

11 juil. 2017

Very interesting and enjoyable course. It's pretty neat to go from a NAND gate all the way to an ALU and a CPU.

One word of caution: The course says that no prior programming experience is required. And this is true. *But*, if you've never taken a programming course and never taken a math/logic course that covers boolean logic and such, you might struggle a bit. This is not to say it's overly hard, but without this type of background, expect to spend more time on the basics. (This is said from the point of view of someone with this type of background, and how I imagined people without it would do.)

If you have a programming background, or have an interest/background in electronics, you should have no problem.

par Tiago L

29 mars 2018

From all courses that I took online, this is by far the best.

While this is a subject which I particularly like, this is not the only factor for me to rate this course very high. The instructors are truly educated in the subject, and from the very first lectures it is clear that they put a lot of effort and time in the preparation of this course.

This course opened my mind to the organization of computers, and from here, I was able to understand and do further research on other architectures and projects.

In all, I strongly suggest that you take the time, put in the effort, and attend this course. It will dramatically increase your understanding of computer architecture.

par Artem S

3 févr. 2019

For anyone who's hesitating about this course - you should absolutely take it !

As a working developer in web-development industry without specialized education, I always felt that i missed some core concepts of the computer architecture and i didn't know where should i start. Thanks god, i found this course

I should say this course opened my eyes on a lot of things going on inside the computer, now i understand what i do better and produce better results at my day-to-day job.

During 2 month of studying this course, that was a wonderful journey, thanks to the best teachers Professor Shimon and Noam, thank you both for investing your efforts and time in this course!

par Jon A

30 mai 2017

A truly wonderful course to learn how computers *actually* work from the fundamental level of digital logic circuits all the way up to assembly language, CPUs and RAM. You get to design your own circuits and programs, and test your designs using a wonderful set of free tools developed especially for this course. I would recommended getting the textbook and studying the lecture notes in addition to the video lectures. This course is challenging but oh so rewarding! It is truly an accomplishment when you can figure out how to get something to work! It almost feels like you're actually building your computer system. I LOVE this class. Looking forward to Part II :)

par Андрей Ф

22 mai 2021

This course is awesome! It's the best course in my life and I can't recommend it enough! Brilliant lectors, course is smartly structured and organized. I passed the course in one breathe and now understand how my laptop works from the lowest level and now I know, that assembly language is not even so close difficult as it may seem for a frontend developer like me, rather a little bit tiring to write code in it. I think the course might be especially interesting for developers who are working exclusively with high-level languages and can't imagine how a processor physically executes their code. Big thanks to Noam Nisan and Shimon Schocken who created this course!

par Nenad L

11 juil. 2017

I have bought the book and worked it along this course for the Part 1. Part 2 wasn't available, so I continued working the book and managed to create my own language, compiler (both layers) and quasi-OS.

The amount of supporting facilities is unbelievable: several simulators, code validators, visualisation aids describing how data flows through the machine, etc...

The authors are very down-to-earth lecturers who were able to create a simple yet powerful machine, explain to the audience and then make the audience recreate that very same machine themselves.

I can freely say that this course, paired with the book, moved my understanding of computers the next level.

par Dmitry O

26 mai 2017

It is the great course that explains how to build a computer starting from one simple logic element. Although in Institute, I learned how to create the combination and the sequential logic elements such as Mux, Dmux, ALU, Flip-Flop, Memory and other, and I self-learned how to program in assembler for processors kr580vm80 (i8080), Z80, x86, PIC and AVR controllers I did not know how to build the CPU and entire computer at all. Of course, this knowledge helped me passed the course faster than in six weeks, but after finishing it I have in my mind the entire picture of creating the computer. I thank the authors of the course for their great work.

par Kgotso K

1 mars 2019

No other course could give me a basic understanding of computer architecture in just 6 weeks. This is one of the most creative computer science classes mainly because of the teaching approach. The faculty's combination of hands on assignments and software aids make this the easiest way to demystify the black box that are computers. The only challenge with the course is that the workload is heavy for newbie programmers and the student is advised to seek out YouTube videos to see real circuits in action. Even with the weaknesses in course design, I would rate this a 5 star and highly recommend it to those that can give 10-20 hours a week.

par Артем М

24 mars 2022

It is a nice course to get the "feeling" of how computers actually work. It doesn't provide you with much in-depth knowledge of computer architecture (most of the things in this course are greatly simplified), but it does provide you with a substantial understanding of the underlying processes and, which I think is far more important, it gives a very thorough understanding of what a powerful tool abstraction is and how it is used in computer design.

All in all, I think that this course does not give a lot of practical knowledge, but it does give intuitive understanding, which is excellent in building your Computer Science foundation.

par William C

31 janv. 2022

Overall a great course. Only a couple things were not optimal:

1) The HDL language should have some sort of looping syntax. Without that kind of syntax, one of the projects was very silly at times (just repeating the same lines over and over when we were building repetitive chip parts).

2) The CPU chip should have been broken down into smaller, modular/testable components. There was way too much going on there for a single chip, which made it very difficult to test. However, the instructors explicitly tell you not to try to break it down into smaller components, which to me was a violation of proper software design / modularity.

par Caio D A

25 juil. 2020

This course is, in my opinion, of immense value for developers like me who are too busy learning how to use the latest commercial high-level languages and framework buzzwords. You end up forgetting about fundamentals once you're on the market trying to make a buck. If you are like me, someone who likes understanding how things work under the hood, and have special admiration for developers from the past and those who are capable of writing the tools we developers use (like compilers, OSs, programming languages, etc), then this course is for you. I already feel I'm a better developer now, and I've only done the 1st course ;)

par Frank G

25 janv. 2017

First Class Systems-approach Introduction to Computing! Together with the corresponding Textbook "Elements of Computing Systems: Building a Modern Computer from First Principles" published by MIT Press, this is probably THE BEST and most comprehensive course and Intro available - for both self-educated and degree-educated Knowledge-Seekers - into the vast subject of Computer-Science/Electrical-Engineering. Very practical and hands-on, but still conveying the relevant theory. A great second Computer-Science course, e.g after the traditional "Introduction to Computer Science" and before a dedicated Algorithms module.

par Jason W

12 mars 2021

I recommend this course to anyone who would like to become familiar with computer science concepts related to the low-level operations of a computer. A particularly useful case is for any high-level programmer who may want to understand how hardware executes instructions. The assignments are well designed to enhance comprehension of the course's material. For me personally, I do feel that the information presented about how much time to expect to devote to the assignments was too low of an estimate for about 3 of the assignments. Overall, this course was excellent, especially considering its value and its cost.

par Biruk S

26 nov. 2020

Such an excellent course. I'm a second year software engineering student and wondered a lot about how things work under the hood. Building this well designed computer with a great suite of free software to aid makes this course the best one I've taken so far. I didn't like the last project as much since it didn't seem like I got real insight on how an assembler is built (from my search it looks like it's exhausting work and I can see why they avoided it). All together 100% would recommend to anyone who's curious about computers and would like to explore it in a fun way. Thanks for this wonderful course!!

par Prayag S

2 oct. 2017

This course is THE best course that you can take online. That is if you are interested in understanding and mastering the fundamentals of a modern computer. The course is organised in an excellent manner requiring no prior knowledge whatsoever. Though you do require a hunger to learn and persistence to do the exercises and projects. Simon and Noam are excellent teachers. They teach the concept in a such a manner that not only you understand the concept, they instill a desire to learn more. The teaching aid be it slides, tools and exercises are perfect. You will not go wrong if you take the course.

par Fabrice L

1 janv. 2018

Incredible course!! I still can't believe that I was able to design all these hardware chips, including a CPU in 6 weeks, knowing nothing about it in the first place. It was exactly what I was looking for, a good introduction to hardware without having to take a 6 month class on Computer Architecture.

The material is extremely well done (book, lectures, assignment), the only part I liked less was the forum, mentors reply often by repeating what was said in the lecture which is not helpful.

I learned a great deal, I understand more computer, and I believe I will help me writing better code.


par Curt B

4 mars 2018

While it might be argued that this course is analogous to "building a computer" in a similar way that "painting by numbers" is creating art (meaning that the author's knowledge of computer architecture is akin to the printed and numbered cells; it obscures a level of complexity the student is exposed to, but not required to generate from first principles) there is plenty to learn (and do!) in this short course. It was fun to learn about how transistors help us execute modern life, and have a chance to 'discover' the layers of complexity between Nand-gates and high level programming languages.

par Peng J

8 févr. 2021

High quality! Knowledge is simple but not superficial.

The difficulty of these small projects is very appropriate, it will not make novices feel frustrated, nor will it make professional students like me blindly arrogant.

The most important thing is that through all the projects in this course, I manually completed an extremely simple computer and verified it on the simulator, which made me have a complete understanding of the architecture and feel very happy and confident.. I will also study computer architecture more deeply later, such as pipeline and cache.

Thanks these two lovely teachers.

par Apar

9 janv. 2018

I would highly recommend this course for anyone interested in any level of abstraction between Computer Architecture to Logic gates. I would highly recommend it to senior undergrad or first-year Masters Computer Science/Engineering students. Being a Masters student of Computer Engineering, I loved this course. The only problem is that we cannot use any industrial HDL (like Verilog) for most of the projects. The syntax for the HDL was a nightmare, especially the sub-bus parts. However, any programming language may be used to build the last project, Assembler. I did it in C++.

par Samuel K

18 mars 2020

Excellent course! I have an undergrad degree in Electrical and Computer Engineering and I still feel that I got a lot out of it. It was a great refresher on what goes into making a computer. I took a similar course to this one in college. My college course was a bit more technical but it didn't cover as much breadth or do nearly as good a job of making the connections between the layers of abstraction. I preferred this one much more. I especially appreciated the perspective section at the end of each unit. It always tied a lot together and answered any lingering questions.

par Shriharsh M

21 oct. 2018

Thoroughly enjoyed learning how a computer and its hardware parts are built. The course content is very close to reality and one gets to develop a computer from Nand gates. This might sound outlandish but the beauty of this course is that it shows how a complex concept can be explained with sufficient details using hardware simulation. Of course a lot of details are ignored about the hardware world and focusing on such nitty-gritty isn't needed. Thanks Shimon and Noam for building this course! I recommend this course to everyone who works on software or hardware.

par Joseph B

7 janv. 2017

By constructing a computer from its foundational components, this course demystifies how computers work. You gain insight into how your code is executed by the CPU, how the CPU manipulates memory, even how it works with additional hardware components such as your monitor and keyboard. After going through the first part of the course, you'll gain a deeper understanding of how the code you write runs on hardware. If you are the curious sort and enjoy peeling back layers in order to figure out how things work, you should definitely go through this course.

par Akshat A

11 juil. 2020

Fantastic course. We build up a computer, starting from the NAND gate as the smallest unit, and building all further logic gates, computational units, storage units, input-output devices present in a basic computer. We learn to write assembly language, build hardware which runs on machine language (0s and 1s), and finally finish by writing an assembler to convert the assembly language into machine language.

The assignments are hands-on through the use of multiple simulators which are pretty easy to work with, and I learned a lot through this course.

par Ali A

18 nov. 2016

I love this course, I think it's one of the best I did in the past few years, most of the content are material that I read over twenty years ago, but the style and projects in this course bring the subject to another level.

The course is fun, and by the end of it I had a working virtual computer from the components I built, running machine code from the assembler I wrote. The course is fun, it's clear, simple to follow, and the instructor are great.

The truth is I felt a little sad that the course ended :). Looking forward for the second part of it.