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
- Computer Architecture
- Compiler Construction
- Operating System
Syllabus - What you will learn from this course
Virtual Machine I: Stack Arithmetic
Virtual Machine II: Program Control
Compiler I: Syntax Analysis
- 5 stars94.51%
- 4 stars4.43%
- 3 stars0.42%
- 2 stars0.21%
- 1 star0.42%
TOP REVIEWS FROM BUILD A MODERN COMPUTER FROM FIRST PRINCIPLES: NAND TO TETRIS PART II (PROJECT-CENTERED COURSE)
Great course! it was hard for me but I finished with a feeling of accomplishment.
Thanks to the authors.
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.
tough journey but what I learned in this course worth it. excellent design of course and provides basic foundation for understanding high level language.
One of the best classes I've ever taken, better than most of my college classes. It was fantastic every step of the way.
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.