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