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

Full curriculum breakdown — modules, lessons, estimated time, and outcomes.

Overview: This project-centered course guides learners through the construction of a modern computer system from the ground up, starting with elementary logic gates and culminating in a fully functional general-purpose computer. The course is structured into six modules, blending theoretical concepts with hands-on projects using Hardware Description Language (HDL) and a hardware simulator. With an estimated total time commitment of approximately 30 hours, this course is ideal for beginners seeking a deep understanding of computer systems, with no prior experience required. Each module builds progressively, reinforcing knowledge through practical implementation.

Module 1: Introduction

Estimated time: 1 hours

  • Course overview and structure
  • Role of abstraction and implementation in systems design
  • Introduction to Boolean algebra
  • Concept of building a computer from first principles

Module 2: Boolean Functions and Gate Logic

Estimated time: 5 hours

  • Implementing Boolean functions using logic gates
  • Introduction to Hardware Description Language (HDL)
  • Specifying gates and chips using HDL
  • Simulating and testing 15 elementary logic gates

Module 3: Building an Arithmetic Logic Unit (ALU)

Estimated time: 5 hours

  • Designing adders using logic gates
  • Constructing a full arithmetic logic unit (ALU)
  • Performing arithmetic and logical operations
  • Understanding the ALU as the computing core of the computer

Module 4: Memory and Registers

Estimated time: 5 hours

  • Designing registers and memory systems
  • Implementing RAM using HDL
  • Understanding memory hierarchy and data storage

Module 5: The Hack Computer

Estimated time: 5 hours

  • Integrating the ALU and memory components
  • Building the Hack computer architecture
  • Understanding functionality and control flow of the Hack computer

Module 6: Machine Language and Assembler

Estimated time: 5 hours

  • Learning the Hack machine language
  • Developing an assembler
  • Translating assembly code into machine code

Prerequisites

  • No prior experience in programming or electronics required
  • Basic familiarity with technical concepts is helpful
  • Willingness to engage in hands-on, project-based learning

What You'll Be Able to Do After

  • Understand how computers work at the most fundamental level
  • Implement digital logic circuits using Hardware Description Language (HDL)
  • Build core computer components such as the ALU and memory systems
  • Construct a complete, functioning general-purpose computer
  • Develop an assembler to translate assembly language into machine code
View Full Course Review

Course AI Assistant Beta

Hi! I can help you find the perfect online course. Ask me something like “best Python course for beginners” or “compare data science courses”.