Feb 18, 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.
Aug 23, 2020
This was so much fun, so satisfying and I learned a lot. I'm a software engineer. We do so much work in high-level languages that it's great to be reminded how computing machinery gets the job done.
by Mohammad G•
Nov 16, 2016
I love you guys, Noam Nisan and Shimon Schocken, for this tremendously successful course! I never thought I could acquire even a basic understanding of the inner computer structure in less than 6 weeks and honestly at first I had doubts if I would be able to finish it and now by your help we have created yet another computer!
You are the brilliant example of how a proper education system can hugely intensify the students' learning abilities.
I Surely recommend this course to everybody regardless of their study/educational background in order to "demystify" the computer in their minds.
However, I need to remind others that the course sometimes really challenges you and you might need to think a bit hard to solve the projects. Nonetheless the teaching materials are extremely sufficient for resolving any kind of problem you might have, given you spend enough time on it!
I am eagerly waiting for the second part of the course.
My heartfelt thanks goes to everyone, Coursera and any other individual and instructors, who has made this wonderful course available to the world!
by Nils H•
Aug 02, 2019
If your want to understand how computers work THIS is the course you should take. I've started with programming about two years ago. Very often I have asked myself "How does this *magic* all work?"
So I've looked at different programming languages (even read a bit about assembly) but nothing was able to enlighten me ass much as the nand2tetris course.
I'd like to thank the two creators for offering this amazing trip from nand-gates to actually having a usable assembly language that the user even writes and assembler for. Just Wow!
Side-note: Since the course consists of a lot of video material, I'd like to point out, that I watched the videos on 1.5x. By doing so you'll get through the information bits much quicker and for me it still wasn't an issue to follow, because there is always a lot of side material where you can look up stuff, once you get to the exercises.
by Pranav B•
May 29, 2020
Quoting Richard Feynman - " What I cannot create, I do not understand"
I have done 3 years of computer science in university. This has been better than most of those courses! Don't think twice about taking this course, definitely go for it. It begins from the very basics - building simple chips like AND, OR gates and slowly putting these parts together into a CPU, memory (ROM,RAM) and finally building an assembler. The course was indeed very satisfying. It summed up most things I've learned in college and putting it all together really gives you a feel of how 'real' it is. I have no complaints. The instructors are awesome. Unlike a few courses around here, answers aren't spoon-fed to learners. You will definitely enjoy building these components and watching them work. What are you waiting for?
by Zach W•
Jul 22, 2017
This course is incredibly interesting, and I would HIGHLY recommend it to anyone who's remotely interested in computers and technology (which must be the case if you're reading this!). I've been programming for a while and have built a rudimentary GameBoy emulator, so I had some level of familiarity with assembly and machine language going in to this course; but despite all this, the raw mechanics of how a computer works on a logic-gate level were basically indistinguishable from magic to me prior to taking this course.
The course covers an impressively diverse array of topics, which serves not only to keep the course consistently fresh and engaging, but also to give the student solid foundations in many different areas on which they can later choose to build on (I know I will be).
by Christopher H D•
Aug 13, 2016
This course is an outstanding survey from logic gates through assembler. At the end you will have the gate level design of an elementary CPU and RAM, and the mysteries of machine code will be revealed. I am an older learner returning to computer science after a twenty-year absence. I had previously been exposed to this material, so I was refreshing my knowledge. It took me about 5-6 hours per week. If someone is brand new to these concepts, the syllabus may move a bit fast for them, and they should expect to spend some additional time to absorb the material. It is an outstanding survey course that together with part II will help you understand how all the hardware and software layers of a computer system fit together. I recommend this course without reservation.
by Pushkar D•
Nov 12, 2017
I can't praise this course enough! It transforms your working knowledge of computer systems into a clear picture of what is happening behind the scenes. In this part 1 of the course, I learnt how basic gates are used to make more complex chips such as ALU, CPU and Memory. This helped me understand the application of Boolean Algebra in computer science. Next, I understood how instructions are executed on the computer and that computer architecture design is quite complex (although a simple one is presented here). Week 5 assignment is the toughest, in my opinion. Finally, the course ended with an assignment to write an assembler (something I have been wanting to do at least once in my life i.e writing translators). The satisfaction level for this course is a 10/10.
by Michael D•
Apr 09, 2018
While I'm already a software engineer and have taken introductory EE courses, I have never gotten the full picture of how software is interacting with the hardware. When you code, you usually think of branching as choosing to execute one segment of code or another. While this is true for a lot of jump executions, it was also really interesting to see how the hardware is constantly doing multiple execution paths at the same time when working with registers/ram addresses. It starts to paint a better picture of the under-the-hood performance and optimization, and gives an idea of how advanced CPU instructions like SSE might work. All of this is done in such an approachable way in this course. I feel like assembly is more approachable to me now, as well.
by Daniel A•
Nov 29, 2019
This is an amazing course. You really get to build a (virtual) computer by yourself and step-by-step. They give you the necesary guidance, but still leave you room to think by yourself when completing each step of the project. It is amazing how they manage to strike this delicate balance.
The conferences and slide presentations are really good, and also the software they provide.
The computer you will build is a masterpiece of simplicity, yet a full-functioning universal computer. Its simplicity allows you to really understand the internal workings of any computer and truly grasp the real power of Boolean logic. Truly awesome.
And the whole project of building this computer develops like a game: It´s realluy fun.
I loved this course.
by Nat S•
Apr 14, 2019
Wow. What can I say except for the fact that this course was fantastic. I completed all 6 weeks as an auditor, and thoroughly enjoyed it. Although the design is simple compared to modern day computers, I feel like I have a solid foundation of how the hardware layer of a computer works and interacts. The difficulty level is about right and assumes no knowledge of programming - there is a no programming option for the final week project. I would recommend doing the programming version though. It's a great, rewarding challenge.
Overall, the quality of the lecturing, as well as the tools provided, and the clear passion for the subject from Professors Schocken and Nisan make this a must take course for everyone interested in computers.
by Muthukumar U•
Jun 01, 2020
One of the Most Amazing & Admiring Courses in Computer Science that raises a Curtain to take everyone " A Great Journey Inward into the Computer Science". I always had a Zeal to learn how computer works and keen about what happens when a "Hello World" Program gets executed. This Course "Build a Modern Computer from First Principles" is a feast to the all enthusiasts to understand "Computer Architecture" in Practical. Infact , I am Bowing to the Professors "Shimon Schocken and Noam Nisan" for their Outstanding Efforts in crafting this Wonderful Course and Practical Tools and aspiring Everyone and Teaching Complex things at ease. I believe you will too ...
Kitos Coursera !!!! for being Wonderful for such Maverick Courses.
by Christian R•
Jul 11, 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.
by Tiago L•
Mar 30, 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.
by Artem S•
Feb 03, 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!
by Jon A•
May 30, 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 :)
by Nenad L•
Jul 11, 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.
by Dmitry O•
May 26, 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.
by Kgotso K•
Mar 01, 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.
by Caio D 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 Prayag S•
Oct 03, 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 02, 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.
by Curt B•
Mar 04, 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 Apar B•
Jan 10, 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 P K•
Mar 19, 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.