Get started with custom lists to organize and share courses.

Sign up

Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

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

Hebrew University of Jerusalem via Coursera

2 Reviews 962 students interested
Found in Computer Science
  • Provider Coursera
  • Cost Free Online Course (Audit)
  • Session Upcoming
  • Language English
  • Certificate Paid Certificate Available
  • Start Date
  • Duration 7 weeks long
  • Learn more about MOOCs

Taken this course? Share your experience with other students. Write review

Overview

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.

This is a self-contained course: all the knowledge necessary to succeed in the course and build the various systems will be given as part of the learning experience. The only prerequisite is knowledge of programming at the level acquired in introduction to computer science courses. All the software tools and materials that are necessary to complete the course will be supplied freely after you enrol in the course.

This course is accompanied by the textbook "The Elements of Computing Systems" (Nisan and Schocken, MIT Press). While not required for taking the course, the book provides a convenient coverage of all the course topics. The book is available in either hardcopy or ebook form, and MIT Press is offering a 30% discount off the cover price by using the discount code MNTT30 at https://mitpress.mit.edu/books/elements-computing-systems.

The course consists of six modules, each comprising a series of video lectures, and a project. You will need about 2-3 hours to watch each module's lectures, and about 15 hours to complete each one of the six projects. The course can be completed in six weeks, but you are welcome to take it at your own pace. You can watch a TED talk about this course by Googling "nand2tetris TED talk".

*About Project-Centered Courses: Project-centered courses are designed to help you complete a personally meaningful real-world project, with your instructor and a community of learners with similar goals providing guidance and suggestions along the way. By actively applying new concepts as you learn, you’ll master the course content more efficiently; you’ll also get a head start on using the skills you gain to make positive changes in your life and career. When you complete the course, you’ll have a finished project that you’ll be proud to use and share.

Syllabus

Getting Started

Machine Language

Virtual Machine I: Stack Arithmetic

Virtual Machine II: Program Control

High-Level Language

Compiler I: Syntax Analysis

Compiler II: Code Generation

Operating System

Postscript: More Fun to Go

Taught by

Shimon Schocken

Help Center

Most commonly asked questions about Coursera Coursera

Reviews for Coursera's Build a Modern Computer from First Principles: Nand to Tetris Part II (project-centered course)
5.0 Based on 2 reviews

  • 5 stars 100%
  • 4 star 0%
  • 3 star 0%
  • 2 star 0%
  • 1 star 0%

Did you take this course? Share your experience with other students.

Write a review
  • 1
Alex A
5.0 2 years ago
Alex is taking this course right now, spending 10 hours a week on it and found the course difficulty to be medium.
I completed the first course (nand2tetris pt.1) on Coursera and was extremely satisfied. With an extensive sysadmin/software background, the first course was absolutely mind-blowing, mostly because it focused on hardware and asm - things I knew nothing about.

However, the second course (nand2tetris pt.2) is exclusively focused on software. You need to write code, and lots of it, to complete the assignments. It's definitely challenging, but for someone with quite a few years of programming experience, it won't necessarily be "fun", particularly if programming is part of your day jo…
Was this review helpful to you? Yes
Matias A
5.0 3 weeks ago
by Matias completed this course, spending 7 hours a week on it and found the course difficulty to be hard.
Has I said for the first part of the course, this course is perfect, look no further in the seemingly endless catalogue of great computer science courses that you will find on the internet.

The units are immaculate, the presentation is totally spotless, simple and clear, the videos professionally made, the book is amazing, I would continue but I ran out of positive adjectives.

This course focuses on the software hierarchy that modern computers rely on, from the translation of the high-level code paired with a standard library/operating system to virtual machine code, …
Was this review helpful to you? Yes
  • 1

Class Central

Get personalized course recommendations, track subjects and courses with reminders, and more.

Sign up for free

Never stop learning Never Stop Learning!

Get personalized course recommendations, track subjects and courses with reminders, and more.