Overview of course structure and objectives.
Introduction to the nand2tetris curriculum.
Basic concepts: What is a computer, and how does it work?
Logic gates: AND, OR, NOT, NAND, NOR.
Boolean expressions and truth tables.
Simplifying logic circuits using Karnaugh Maps.
Building basic circuits in a simulator.
Design and implementation of multiplexers, decoders, and encoders.
Binary arithmetic: Adders and subtractors.
Project: Build a simple 4-bit adder circuit.
Flip-flops and latches.
Designing and analyzing counters and shift registers.
Introduction to clock signals and their role in digital circuits.
Functions of an ALU in computation.
Designing and simulating an ALU.
Project: Implement a 4-bit ALU.
How memory works: RAM vs. ROM.
Designing memory units: Registers and data storage.
Project: Create a simple memory architecture.
Basics of machine language and binary instructions.
Writing simple assembly code.
Translating high-level instructions into machine language.
The von Neumann architecture.
The fetch-decode-execute cycle.
Project: Build and simulate a basic CPU.
Integrating memory, ALU, and control logic into a cohesive system.
Introduction to operating systems and their role in managing resources.
Final Project: Design and simulate a functional computer system.