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

Build a Modern Computer from First Principles: Nand to Tetris Part II (project-centered course) (Coursera)
Course Auditing
Categories
Effort
Certification
Languages
Misc

MOOC List 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) (Coursera)
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.

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

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.

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


Syllabus


WEEK 1: Getting Started; Machine Language; Virtual Machine I: Stack Arithmetic

WEEK 2: Virtual Machine II: Program Control

WEEK 3: High-Level Language

WEEK 4: Compiler I: Syntax Analysis

WEEK 5: Compiler II: Code Generation

WEEK 6: Operating System

WEEK 7: Postscript: More Fun to Go



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