About this Course
4.9
170 ratings
44 reviews
100% online

100% online

Start instantly and learn at your own schedule.
Flexible deadlines

Flexible deadlines

Reset deadlines in accordance to your schedule.
Hours to complete

Approx. 36 hours to complete

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

English

Subtitles: English...

Skills you will gain

Computer ArchitectureCompiler ConstructionCompilerOperating System
100% online

100% online

Start instantly and learn at your own schedule.
Flexible deadlines

Flexible deadlines

Reset deadlines in accordance to your schedule.
Hours to complete

Approx. 36 hours to complete

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

English

Subtitles: English...

Syllabus - What you will learn from this course

Week
1
Hours to complete
2 hours to complete

Getting Started

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

Machine Language

...
Reading
10 videos (Total 187 min), 1 reading, 1 quiz
Video10 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
Reading1 reading
Module Overview (start here)10m
Hours to complete
13 hours to complete

Virtual Machine I: Stack Arithmetic

...
Reading
11 videos (Total 188 min), 1 reading, 1 quiz
Video11 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
Reading1 reading
Module Overview (start here)10m
Week
2
Hours to complete
13 hours to complete

Virtual Machine II: Program Control

...
Reading
10 videos (Total 166 min), 1 reading, 1 quiz
Video10 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
Reading1 reading
Module overview (start here)10m
Week
3
Hours to complete
13 hours to complete

High-Level Language

...
Reading
11 videos (Total 179 min), 1 reading, 1 quiz
Video11 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
Reading1 reading
Module Overview (start here)10m
Week
4
Hours to complete
12 hours to complete

Compiler I: Syntax Analysis

...
Reading
10 videos (Total 131 min), 1 reading, 1 quiz
Video10 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
Reading1 reading
Module Overview (start here)10m

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.