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
Learner Career Outcomes
Learner Career Outcomes
Hebrew University of Jerusalem
Ranked among the top academic and research institutions worldwide, the Hebrew University of Jerusalem is Israel's leading university and premier research institution. Serving 23,000 students from 70 countries, the Hebrew University produces a third of Israel’s civilian research and is ranked 12th worldwide in biotechnology patent filings and commercial development. The Hebrew University was founded in 1918 by visionaries including Albert Einstein, Sigmund Freud, Martin Buber and Chaim Weizmann. It is located on three campuses in Jerusalem and a fourth in Rehovot. Visit the website at http://new.huji.ac.il/en. Join our online learners community at https://www.facebook.com/groups/hujimooc/.
- 5 stars
- 4 stars
TOP REVIEWS FROM BUILD A MODERN COMPUTER FROM FIRST PRINCIPLES: NAND TO TETRIS PART II (PROJECT-CENTERED COURSE)
This is by far one of the best online-courses I have completed. Thumbs up, it was well worth my time and it will definitely help me on my never-ending journey of becoming a better software developer.
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!
This is a lot harder than Part 1, and parts of a it were a bit tedious but the bulk of (writing the Jack compiler) was very good. I will be recommending it to friends.
Superb course. Great presentation and course material. Projects are challenging but fun at the same time. Highly recommend for all levels of software developers.
Frequently Asked Questions
When will I have access to the lectures and assignments?
Access to lectures and assignments depends on your type of enrollment. If you take a course in audit mode, you will be able to see most course materials for free. To access graded assignments and to earn a Certificate, you will need to purchase the Certificate experience, during or after your audit. If you don't see the audit option:
- The course may not offer an audit option. You can try a Free Trial instead, or apply for Financial Aid.
- The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.
What will I get if I purchase the Certificate?
When you purchase a Certificate you get access to all course materials, including graded assignments. Upon completing the course, your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile. If you only want to read and view the course content, you can audit the course for free.
Is financial aid available?
Yes, Coursera provides financial aid to learners who cannot afford the fee. Apply for it by clicking on the Financial Aid link beneath the "Enroll" button on the left. You’ll be prompted to complete an application and will be notified if you are approved. Learn more.
Do I have to take Nand to Tetris Part I before taking Nand to Tetris Part II?
Nand to Tetris Part I and Nand to Tetris Part II are two separate and stand alone courses. Although it is recommended to take Part I before taking Part II, you can take any of these courses, in any order that suites you.
How much computer science do I have to know before taking this course?
The only requirement is programming ability at the level acquired in typical introduction to computer science courses.
Which programming language do I have to use in order to complete the assignments in this course?
We expect learners to submit assignments in any version of Java, or Python. We will assume that you have basic programming ability in these languages, including a basic ability to understand and write simple object-based programs.
How many assignments do I have to submit in order to pass the course?
The course consists of 6 projects (programming assignments), numbered 7, 8, 9, 10, 11, 12, and an optional project, numbered 4. In order to pass the course you must submit at least 5 projects out of projects 7, 8, 9, 10, 11, and 12. (The project numbering scheme maintains consistency with the project numbers in the Nand to Tetris Part I course)
Will I earn university credit for completing the Course?
More questions? Visit the Learner Help Center.