About this Course
31,823 recent views

100% online

Start instantly and learn at your own schedule.

Flexible deadlines

Reset deadlines in accordance to your schedule.

Approx. 36 hours to complete

Suggested: 7 weeks, each week entailing about 3 hours of video lectures and 10-15 hours programming project....

English

Subtitles: English

Skills you will gain

Computer ArchitectureCompiler ConstructionCompilerOperating System

100% online

Start instantly and learn at your own schedule.

Flexible deadlines

Reset deadlines in accordance to your schedule.

Approx. 36 hours to complete

Suggested: 7 weeks, each week entailing about 3 hours of video lectures and 10-15 hours programming project....

English

Subtitles: English

Syllabus - What you will learn from this course

Week
1
2 hours to complete

Getting Started

...
2 videos (Total 26 min), 1 reading, 1 quiz
2 videos
Project 0 Overview5m
1 reading
Week 1 Overview (start here)5m
8 hours to complete

Machine Language

...
10 videos (Total 187 min), 1 reading, 1 quiz
10 videos
Unit 0.1: Machine Language Overview12m
Unit 0.2: Machine Language Elements17m
Unit 0.3: The Hack Computer and Machine Language15m
Unit 0.4: Hack Language Specification10m
Unit 0.5: Handling Input and Output26m
Unit 0.6: Low-Level Programming, Part I24m
Unit 0.7: Low-Level Programming, Part II21m
Unit 0.8: Low-Level Programming, Part III32m
Unit 0.9: Project 4 Overview19m
1 reading
Module Overview (start here)10m
13 hours to complete

Virtual Machine I: Stack Arithmetic

...
11 videos (Total 188 min), 1 reading, 1 quiz
11 videos
Unit 1.1: Program Compilation Preview12m
Unit 1.2: VM Abstraction: the Stack15m
Unit 1.3: VM Abstraction: Memory Segments9m
Unit 1.4: VM Implementation: the Stack17m
Unit 1.5: VM Implementation: Memory Segments26m
Unit 1.6: The VM Emulator23m
Unit 1.7: VM Implementation on the Hack Platform8m
Unit 1.8: VM Translator: Proposed Implementation12m
Unit 1.9: Project 7: Building the VM Translator, Part I23m
Unit 1.10: Perspective17m
1 reading
Module Overview (start here)10m
Week
2
13 hours to complete

Virtual Machine II: Program Control

...
10 videos (Total 166 min), 1 reading, 1 quiz
10 videos
Unit 2.2: Branching9m
Unit 2.3: Functions: Abstraction22m
Unit 2.4: Function Call and Return: Implementation Preview23m
Unit 2.5: Function Call and Return: Run-time Simulation16m
Unit 2.6: Function Call and Return Implementation25m
Unit 2.7: VM Implementation on the Hack Platform10m
Unit 2.8: VM Translator: Proposed Implementation9m
Unit 2.9: Project 8: Building the VM Translator, Part II26m
Unit 2.10: Perspective12m
1 reading
Module overview (start here)10m
Week
3
13 hours to complete

High-Level Language

...
11 videos (Total 179 min), 1 reading, 1 quiz
11 videos
Unit 3.2: Object-Based Programming20m
Unit 3.3: List Processing21m
Unit 3.4: Jack Language Specification: Syntax5m
Unit 3.5: Jack Language Specification: Data Types8m
Unit 3.6: Jack Language Specification: Classes15m
Unit 3.7: Jack Language Specification: Methods18m
Unit 3.8: Developing Apps using the Jack language and OS18m
Unit 3.9: A Sample Jack App: Square Dance24m
Unit 3.10: Graphics Optimization21m
Unit 3.11: Perspective11m
1 reading
Module Overview (start here)10m
Week
4
12 hours to complete

Compiler I: Syntax Analysis

...
10 videos (Total 131 min), 1 reading, 1 quiz
10 videos
Unit 4.2: Lexical Analysis9m
Unit 4.3: Grammars14m
Unit 4.4: Parse Trees6m
Unit 4.5: Parser Logic20m
Unit 4.6: The Jack Grammar13m
Unit 4.7: The Jack Analyzer10m
Unit 4.8: The Jack Analyzer: Proposed Implementation20m
Unit 4.9: Project 10: Building a Syntax Analyzer15m
Unit 4.10: Perspective12m
1 reading
Module Overview (start here)10m
5.0
54 ReviewsChevron Right

50%

started a new career after completing these courses

40%

got a tangible career benefit from this course

Top reviews from Build a Modern Computer from First Principles: Nand to Tetris Part II (project-centered course)

By RBSep 3rd 2018

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!

By RMMar 19th 2017

Superb course. Great presentation and course material. Projects are challenging but fun at the same time. Highly recommend for all levels of software developers.

Instructor

Avatar

Shimon Schocken

Professor
Computer Science

About 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/. ...

Frequently Asked Questions

  • Once you enroll for a Certificate, you’ll have access to all videos, quizzes, and programming assignments (if applicable). Peer review assignments can only be submitted and reviewed once your session has begun. If you choose to explore the course without purchasing, you may not be able to access certain assignments.

  • 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.

  • 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.

  • The only requirement is programming ability at the level acquired in typical introduction to computer science courses.

  • 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.

  • 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)

More questions? Visit the Learner Help Center.