Build a Modern Computer from First Principles: From Nand to Tetris (Project-Centered Course) (Coursera)

Build a Modern Computer from First Principles: From Nand to Tetris (Project-Centered Course) (Coursera)

In this project-centered course* you will build a modern computer system, from the ground up. We’ll divide this fascinating journey into six hands-on projects that will take you from constructing elementary logic gates all the way through creating a fully functioning general purpose computer. In the process, you will learn - in the most direct and constructive way - how computers work, and how they are designed.

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

What you’ll need: This is a self-contained course: all the knowledge necessary to succeed in the course and build the computer system will be given as part of the learning experience. Therefore, we assume no previous computer science or engineering knowledge, and all learners are welcome aboard. You will need no physical materials, since you will build the computer on your own PC, using a software-based hardware simulator, just like real computers are designed by computer engineers in the field. The hardware simulator, as well as other software tools, will be supplied freely after you enroll in the course.
Course format: 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 5-10 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
Introduction
Course introduction and overview, the roles of abstraction and implementation in systems design, the road ahead.
Boolean Functions and Gate Logic
We will start with a brief introduction of Boolean algebra, and learn how Boolean functions can be physically implemented using logic gates. We will then learn how to specify gates and chips using a Hardware Description Language (HDL), and how to simulate the behaviour of the resulting chip specifications using a hardware simulator. This background will set the stage for Project 1, in which you will build, simulate, and test 15 elementary logic gates. The chipset that you will build this module will be later used to construct the computer's Arithmetic Logic Unit (ALU) and memory system. This will be done in modules 2 and 3, respectively.

WEEK 2
Boolean Arithmetic and the ALU
Using the chipset that we've built in the previous module, we will now proceed to build a family of adders -- chips designed to add numbers. We will then take a big step forward and build an Arithmetic Logic Unit. The ALU, which is designed to perform a whole set of arithmetic and logical operations, is the computer's calculating brain. Later in the course we will use this ALU as the centerpiece chip from which we will build the computer's Central Processing Unit, or CPU. Since all these chips operate on binary numbers (0's and 1's), we will start this module with a general overview of binary arithmetic, and only then delve into building the ALU.

WEEK 3
Memory
Having built the computer's ALU, this module we turn to building the computer's main memory unit, also known as Random Access Memory, or RAM. This will be done gradually, going bottom-up from elementary flip-flop gates to one-bit registers to n-bit registers to a family of RAM chips. Unlike the computer's processing chips, which are based on combinational logic, the computer's memory logic requires a clock-based sequential logic. We will start with an overview of this theoretical background, and then move on to build our memory chipset.

WEEK 4
Machine Language
A critically important aspect of building a new computer system is designing the low-level machine language, or instruction set, with which the computer can be instructed to do various things. As it turns out, this can be done before the computer itself is actually built. For example, we can write a Java program that emulates the yet-to-be-built computer, and then use it to emulate the execution of programs written in the new machine language. Such experiments can give us a good appreciation of the bare bone "look and feel" of the new computer, and lead to decisions that may well change and improve both the hardware and the language designs. Taking a similar approach, in this module we assume that the Hack computer and machine language have been built, and write some low-level programs using the Hack machine language. We will then use a supplied CPU Emulator (a computer program) to test and execute our programs. This experience will give you a taste of low-level programming, as well as a solid hands-on overview of the Hack computer platform.

WEEK 5
Computer Architecture
Let's recap the last four modules: we've built some elementary logic gates (module 1), and then used them to build an ALU (module 2) and a RAM (module 3). We then played with low-level programming (module 4), assuming that the overall computer is actually available. In this module we assemble all these building blocks into a general-purpose 16-bit computer called Hack. We will start by building the Hack Central Processing Unit (CPU), and we will then integrate the CPU with the RAM, creating a full-blown computer system capable of executing programs written in the Hack machine language.

WEEK 6
Assembler
Every computer has a binary machine language, in which instructions are written as series of 0's and 1's, and a symbolic machine language, also known as assembly language, in which instructions are expressed using human-friendly mnemonics. Both languages do exactly the same thing, and are completely equivalent. But, writing programs in assembly is far easier and safer then writing in binary. In order to enjoy this luxury, someone has to translate our symbolic programs into binary code that can execute as-is on the target computer. This translation service is done by an agent called assembler. The assembler can be either a person who carries out the translation manually, or a computer program that automates the process. In this module and final project in the course we learn how to build an assembler. In particular, we'll develop the capability of translating symbolic Hack programs into binary code that can be executed as-is on the Hack platform. Each one of you can choose to accomplish this feat in two different ways: you can either implement an assembler using a high-level language, or you can simulate the assembler's operation using paper and pencil. In both cases we give detailed guidelines about how to carry out your work.

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

Related Courses

Introduction to Psychology (Coursera) Coursera
Yale University

Introduction to Psychology (Coursera)

What are people most afraid of? What do our dreams mean? Are we natural-born racists? What makes us happy? What are the causes and cures of mental illness? This course tries to answer these questions and many others, providing a comprehensive overview of the scientific study of thought and behavior. It explores topics such as perception, communication, learning, memory, decision-making, persuasion, emotions, and social behavior. We will look at how these aspects of the mind develop in children, how they differ across people, how they are wired-up in the brain, and how they break down due to illness and injury.

Nov 23rd 2026
5-12 Weeks
Aprendiendo a aprender para jóvenes (Coursera) Coursera
Universidad Austral

Aprendiendo a aprender para jóvenes (Coursera)

Aprender a aprender para Jóvenes es para ti, para darte una visión práctica de cómo aprender más profundamente y con menos frustración. Las lecciones de este curso pueden ayudarte a aprender muchos temas y habilidades diferentes. Tanto si te gustan los idiomas como las matemáticas, la música o la física, la psicología o la historia, te divertirás mucho y aprenderás MUCHO sobre cómo aprender.

Nov 16th 2026
3 Weeks
Exploring Psychology's Core Concepts | 走进心理学 (edX) EdX
Tsinghua University,TsinghuaX

Exploring Psychology's Core Concepts | 走进心理学 (edX)

How do you interpretThe Da Vinci Code? Isa sleepwalker aware of themselves? Is language before the mind or the contrary? This course will answer these questions and more with psychology theories. How to decipher the Da Vinci Code? Does a person know that he is sleepwalking? Which came first, language or thought? This course will use the latest and coolest psychological theories to answer these questions.

Self Paced
Self-Paced
Introducción al diseño de hardware con Verilog (edX) EdX
Galileo University,GalileoX

Introducción al diseño de hardware con Verilog (edX)

Aprende el lenguaje de descripción de hardware Verilog, utilizado en la industria en el diseño de hardware digital y microprocesadores a la medida. En la actualidad, el hardware de soporte en sistemas digitales se suele diseñar en un solo circuito integrado FPGA (Field Programmable Gate Array), en parte debido al abundante espacio físico que ocuparía una implementación con varios circuitos integrados dedicados para este fin.

Self Paced
Self-Paced
World War 1: Trauma, Memory, Controversy (FutureLearn) FutureLearn
The Open University

World War 1: Trauma, Memory, Controversy (FutureLearn)

Explore the traumatic effects of WW1 on soldiers and civilians. Discover how we remember and debate the history of this war. In this free online course, you will study the social, cultural, medical and diplomatic history of the First World War. Topics range from physical and mental trauma suffered by combatants to the traumatic experiences of civilians in wartime.

Self Paced
4 Weeks
The Many Faces of Dementia (FutureLearn) FutureLearn
University College London

The Many Faces of Dementia (FutureLearn)

Gain a unique insight into dementia through the stories, symptoms and science behind four less common diagnoses. Explore key issues in dementia care and research, through four less common forms. Dementia is one of the foremost priorities in global health and is estimated to affect over 44 million people worldwide.

Self Paced
4 Weeks
Computer Science: Algorithms, Theory, and Machines (Coursera) Coursera
Princeton University

Computer Science: Algorithms, Theory, and Machines (Coursera)

This course introduces the broader discipline of computer science to people having basic familiarity with Java programming. It covers the second half of our book Computer Science: An Interdisciplinary Approach (the first half is covered in our Coursera course Computer Science: Programming with a Purpose, to be released in the fall of 2018). Our intent is to demystify computation and to build awareness about the substantial intellectual underpinnings and rich history of the field of computer science.

Nov 2nd 2026
5-12 Weeks
Aprendendo a aprender: ferramentas mentais poderosas para ajudá-lo a dominar assuntos difíceis (em Português) [Learning How to Learn] (Coursera) Coursera
Deep Teaching Solutions

Aprendendo a aprender: ferramentas mentais poderosas para ajudá-lo a dominar assuntos difíceis (em Português) [Learning How to Learn] (Coursera)

Este curso dá-lhe acesso fácil a técnicas de aprendizagem de valor inestimável, usadas por especialistas em Arte, Música, Literatura, Matemática, Ciência, Esportes e muitas outras disciplinas. Vamos aprender sobre a forma como o cérebro usa dois modos de aprendizagem muito diferentes e como ele encapsula (em "pedaços") informações. Também vamos falar sobre ilusões de aprendizagem, técnicas de memória, lidar com a procrastinação, e as melhores práticas apresentadas pela investigação a ser mais eficaz em o ajudar a dominar assuntos difíceis.

Jul 6th 2026
4 Weeks
Introducción a la Psicología (Coursera) Coursera
Universidad Austral

Introducción a la Psicología (Coursera)

¿Qué es el inconsciente? ¿Qué es la autoestima? ¿Qué es el apego y cómo incide en los vínculos adultos ? ¿Cómo funciona nuestro cerebro y cómo se modifica a lo largo de la vida? En este curso se abordarán estos interrogantes y diversos temas vinculados con la Psicología desde una mirada académica y mediante el estudio de los principales autores que han realizado significativos aportes a esta ciencia.

Nov 9th 2026
5-12 Weeks
Psicología (Coursera) Coursera
Universidad de Palermo

Psicología (Coursera)

¿Qué estudia la psicología? ¿Qué hacen los psicólogos? ¿La conciencia, qué es? ¿Y el estrés? ¿Cómo aprendemos? La sensación y la percepción ¿son lo mismo? ¿El lenguaje depende de las ideas? ¿O será que nuestro pensamiento es dependiente del lenguaje que hablamos? ¿Querés conocer las respuestas a estos interrogantes? En este curso de Psicología podrás explorar sobre todo esto y mucho más. Al culminar su recorrido no solo vas a haber aprendido sobre las bases del cautivante mundo de la psicología, sino que contarás con herramientas que te permitirán conocerte mejor.

Nov 2nd 2026
4 Weeks