Chevron Left
Back to Build a Modern Computer from First Principles: From Nand to Tetris (Project-Centered Course)

Learner Reviews & Feedback for Build a Modern Computer from First Principles: From Nand to Tetris (Project-Centered Course) by Hebrew University of Jerusalem

4.9
stars
3,494 ratings

About the Course

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

Top reviews

AI

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

MM

Feb 17, 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.

Filter by:

76 - 100 of 1,058 Reviews for Build a Modern Computer from First Principles: From Nand to Tetris (Project-Centered Course)

By William C

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

By Deleted A

Jul 25, 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 ;)

By Frank G

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

By Jason W

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

By Biruk S

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

By Prayag S

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

By Fabrice L

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

Thanks

By Curt B

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

By Peng J

Feb 8, 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.

By Apar

Jan 9, 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++.

By Samuel K

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

By Shriharsh M

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

By Joseph B

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

By Akshat A

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

By Ali A

Nov 18, 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.

By Jack F

Feb 10, 2021

Absolutely loved this course. Coming from a background of working with Python for a few years in my career, this course revealed everything I always wondered about what goes on under the hood when I run my code (apart from the compiling step, which is covered in the 2nd part!). The presentations are very clear, everything is explained well, and the satisfaction of completing the projects is brilliant. Highly recommend to anyone without formal computer science training who wants to understand the inner workings of machines.

By Tim S

May 13, 2018

This was a fantastic learning opportunity, even as someone with a degree in computer science and many years experience as a professional in the field. I loved the way this course taught from first principles and encouraged you to think about the abstraction layers behind a computer system. While the chip and assembler created here are somewhat primitive, the course leaves you understanding the principles behind more sophisticated hardware. Huge credit to the team for the thoughtful exercises: they caught me out repeatedly!

By Heiko M

Jan 10, 2017

Just the course I always wanted to take. I've been working for some 5 years in IT as a programmer with a background in mathematics. Since my education in university did not cover the low level details of how things really work deep down, I was always befuddled by the mystery of computers. This course helped to clear things out for me! There is a bit less mystery to it now, but even more admiration. Thank you very much Noam and Shimon for making things so accessible. I am looking forward to building a compiler in part II!

By Cheryl

Oct 13, 2019

Great course that teaches you the basics of the technology from which computers are built. The instructors carefully walk you through the concepts such that the problems feel relatively easy and simple compared to some other courses. If you like challenges, you might not like this approach, but I think it's appropriate for this course (as an introductory course) so that you can pick up the main points and not get frustrated from getting stuck on problems you don't have sufficient knowledge/experience to handle.

By Dimitar T

Jul 19, 2023

One of the best computer science courses out there. The lectures are straight-to-the-point, the provided materials are well done and the assignments are great. A combination of everything really showcases the abstractions on top of which modern computers operate. By the end of the course you will really have a solid mental model of how a computer works. The course is also outstanding in building a foundation that allows for deeper studies after the course. Kudos to the instructors and everyone involved!

By Himanshu T

Jan 1, 2017

I am eternally grateful for everything you both faculty Shimon Schocken, Noam Nisan taught me.Really before the commencement of course I was thinking that this course will be boring.But after I started watching videos, the ultimate guidance and effort done by all the members of this course inspired me a lot.The course content is awesome. I am very happy that I build the computer. It was really amazing experience.Once again millions of thanks to teaching and non teaching staff.

Thank You

Himanshu Tiwari

By Vishal

Oct 5, 2018

This introductory course to computer architecture is just excellent.

It gives you a clean overview of the hardware and software architecture of a computer (albeit, a simple one). Everything you need is provided to you, the content (given in multiple forms) is clear and concise, the exercises give you just enough challenge to enjoy the reward of completing them. It just hits the mark between complexity, understanding and entertainment.

Thousand thanks to the professors/authors for giving this course!

By Sana D

Apr 2, 2017

This is a brilliant course for those who want to learn how computers really work. It takes a bottom up approach to build a computer all the way from logic gates to the CPU and the complete architecture. You get a tremendous sense of satisfaction running a program on a computer that you built.

This course is especially useful for people interested in working in computer architecture or systems, but I would recommend it for everyone studying or working in computer science and engineering.

By Tomas F G

May 23, 2021

This course was all I had hoped for. I couldn't stand looking at a computer as a magic black box and wanted to know how a bunch of transistors wired together could result in such a thing. In a way, I don't think I would call this "fun" as I would with other courses but take that statement lightly. I found it interesting all the way through and the assignments, I think, are easy enough that nobody should get discouraged. I want to thank Noam and Shimon for making this amazing course.

By Thassilo H

Apr 19, 2016

This is one of the best CS courses I've taken so far. It's great to see how easy it is to build a simple yet powerful computer on your own, and it has given me for the first time the feeling of really understanding what's going on at the low level.

The complete course is centered about the project of building a computer, so there are no quizzes and only few theoretical background lectures here. If you want a hands-on introduction to computer engineering, this is the way to go.