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.
Offered By
Build a Modern Computer from First Principles: Nand to Tetris Part II (project-centered course)
Hebrew University of JerusalemAbout this Course
Could your company benefit from training employees on in-demand skills?
Try Coursera for BusinessSkills you will gain
- Computer Architecture
- Compiler Construction
- Compiler
- Operating System
Could your company benefit from training employees on in-demand skills?
Try Coursera for BusinessOffered by
Syllabus - What you will learn from this course
Getting Started
Machine Language
Virtual Machine I: Stack Arithmetic
Virtual Machine II: Program Control
High-Level Language
Compiler I: Syntax Analysis
Reviews
- 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)
Best ever computer science course I've taken. Though it takes me 7 months to complete both parts, it really worth it!
It was an insightful and challenging adventure. Thanks Noam and Shimon! Looking forward for the ideas to come.
It really deepened my understanding of computers and helped me to be a better programmer. It is more challenging than the first part.
It was a bit superficial. Homework helped to practice the basics. I prefer more detailed and more deep lectures.
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.