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.
Build a Modern Computer from First Principles: Nand to Tetris Part II (project-centered course)Hebrew University of Jerusalem
About this Course
Skills you will gain
- 5 stars94.28%
- 4 stars4.61%
- 3 stars0.43%
- 2 stars0.21%
- 1 star0.43%
TOP REVIEWS FROM BUILD A MODERN COMPUTER FROM FIRST PRINCIPLES: NAND TO TETRIS PART II (PROJECT-CENTERED COURSE)
What a great way to learn from ground up.
It's the only course I know that takes you on the journey from CPU binary instructions all the way to compiler and OS.
It was a bit superficial. Homework helped to practice the basics. I prefer more detailed and more deep lectures.
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!
I extremely enjoyed this course. It's very recommended to those how wanna know about how computers work indeed.
Frequently Asked Questions
When will I have access to the lectures and assignments?
What will I get if I purchase the Certificate?
Is financial aid available?
Do I have to take Nand to Tetris Part I before taking Nand to Tetris Part II?
How much computer science do I have to know before taking this course?
Which programming language do I have to use in order to complete the assignments in this course?
How many assignments do I have to submit in order to pass the course?
More questions? Visit the Learner Help Center.